Genel yönetim görevleri

EMM'ler, Android'e yönelik kurumsal çözümlerinde bu kılavuzda gösterilen görevler gibi bir dizi tipik yönetim görevini uygulayabilir. Örnek kod, Java için Google Play EMM API İstemci Kitaplığı®'nı kullanır.

Kullanıcı arama ve kullanıcı ayrıntılarını alma

Google Play EMM API'lerinin birçoğu; uygulama yükleme, yararlanma haklarını alma ve lisanslama gibi kullanıcılarla ilişkili bazı görevleri yerine getirmek için enterpriseId'a ek olarak bir userId'ın da olmasını gerektirir. Bazı çağrılar için kullanıcı nesnesi gerekir.

Bir kuruluş Managed Google Play Accounts'u kullanıyorsa kullanıcı e-posta adresleri ile bu hesaplara ait kullanıcı kimlikleri arasında bir eşleme oluşturursunuz. Google Hesapları ile UsersListResponse kullanıyorsunuz.

Kullanıcı ara

Bu kod örneği, Google Hesapları ile ilişkilendirilmiş kullanıcı kimliklerini alır. Managed Google Play Accounts kullanan kuruluşlar için geçerli değildir.

Bu örnekte, User ve UsersListResponse modellerini kodunuza aktardığınız varsayılmaktadır. Belirli bir kullanıcı hesabını almak için enterpriseId ve e-postayı UsersListResponse adresine ileterek userId alın.

public UsersListResponse list(String enterpriseId, String email) throws
   IOException {
    return androidEnterprise
        .users()
        .list(enterpriseId, email)
        .execute();
}

Kullanıcı ayrıntılarını alma

userId edindikten sonra diğer ayrıntıları alabilirsiniz. Şu sayfaya göz atın: Users.Get.

public User get(String enterpriseId, String userId) throws IOException {
    return androidEnterprise
        .users()
        .get(enterpriseId, userId)
        .execute();
}

Bir kullanıcıya uygulamalara erişim izni verme

Bir kullanıcının Managed Google Play Store'dan hangi uygulamalara erişebileceğini kontrol etmek için Google Play EMM API'lerini kullanabilirsiniz. Bir uygulamaya erişim, uygulamayı arama, görüntüleme, yükleme ve güncelleme özelliğini içerir. Kullanabileceğiniz üç farklı erişim düzeyi vardır:

  • Yalnızca izin verilen uygulamalar: Kullanıcı yalnızca belirli uygulamalara erişebilir.
  • Tüm onaylanmış uygulamalar: Kullanıcı, kuruluş için onaylanmış tüm uygulamalara erişebilir.
  • Tüm uygulamalar: Kullanıcı, Google Play Store'da herkese açık olarak sunulan tüm uygulamalara erişebilir.

Bir kullanıcıya yalnızca belirli uygulamalara erişim izni verme

Aşağıdaki örnekte, bir kullanıcının Managed Google Play Store'daki belirli bir uygulama grubuna nasıl erişim izni verileceği gösterilmektedir. Süreç aşağıdaki adımları içerir:

  • Kullanıcı için onaylanan productIds (uygulamalar) listesini oluşturun (productSet).
  • productSetBehavior dizesinin değerini "whitelist" olarak ayarlayarak kullanıcının yalnızca verilen listedeki uygulamalara erişebileceğini belirtin.
  • productIds listesini ve davranış ayarını, setAvailableProductSet kullanarak kullanıcının kullanılabilir ürün grubuna uygulayın.
public ProductSet setProductSet(String enterpriseId, String userId,
    List<String> productIds) throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductId(productIds);
  productSet.setProductSetBehavior("whitelist");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Bir kullanıcıya, onaylanan tüm uygulamalar için erişim izni verme

Aşağıdaki örnekte, bir kullanıcının Managed Google Play Store'dan kuruluş için onaylanmış herhangi bir uygulamaya nasıl erişim izni verileceği gösterilmektedir. Süreç aşağıdaki adımları içerir:

  • productSetBehavior dizesinin değerini "allApproved" olarak ayarlayarak kullanıcının kuruluş için onaylanan tüm uygulamalara erişebileceğini belirtin.
  • Bu ayarı, setAvailableProductSet kullanarak kullanıcıya uygulayın.
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("allApproved");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Not: productSetBehavior, "allApproved" olarak ayarlandığında productSet için herhangi bir productIds belirtmeniz gerekmez.

Bir kullanıcının tüm uygulamalara erişmesine izin verme

Aşağıdaki örnekte, bir kullanıcıya Managed Google Play Store'da herkese açık Google Play Store'da sunulan herhangi bir uygulamaya erişme yetkisinin nasıl verileceği gösterilmektedir. Tüm uygulamalara erişimi olan kullanıcılar, Managed Google Play'i açtıklarında yalnızca kuruluşlarının mağaza düzenini görmeye devam eder ancak arama yoluyla ek uygulamalar bulabilir.

BT yöneticileri gibi belirli güvenilir kullanıcılar, uygulamaları kuruluş için onaylamadan önce test etmek ve değerlendirmek üzere bu daha yüksek düzeyde erişime ihtiyaç duyabilir. Bir kullanıcıya tüm uygulamalara erişim izni verme süreci aşağıdaki adımları içerir:

  • productSetBehavior dizesinin değerini "includeAll" olarak ayarlayarak kullanıcının Google Play Store'daki tüm uygulamalara erişebileceğini belirtin.
  • Bu ayarı, setAvailableProductSet kullanarak kullanıcıya uygulayın.
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("includeAll");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Not: productSetBehavior, "includeAll" olarak ayarlandığında productSet için herhangi bir productIds belirtmeniz gerekmez.

Mağaza düzeni oluşturma

Kullanıcılara uygulamalara erişim izni verdikten sonra uygulamaları, Managed Google Play Store'da görüntülenmeleri için kümeler halinde gruplandırın.

Storelayoutpages ve Storelayoutclusters API'lerini kullanarak her bir müşteriniz için benzersiz bir özelleştirilmiş mağaza düzeni oluşturabilirsiniz. Tipik bir düzen, bir dizi sayfadan oluşur ve her sayfa, uygulama kümeleri içerebilir. İlgili uygulamaları aynı kümeye yerleştirebilirsiniz. Ayrıntılar ve örnek kod için Özel mağaza düzenleri oluşturma bölümüne bakın.

Bir uygulamanın izinlerini alma

Bir uygulamayı özel mağaza düzenine eklemek (veya bir kullanıcının cihazına sessiz bir şekilde uygulama yüklemek) ve uygulamayı kullanıcının seçebileceği şekilde görüntülemek için yöneticinin, kuruluşun tamamı için bu uygulamaya yönelik izinleri kabul etmesi gerekir. Yöneticiler, Managed Google Play Console'da uygulama izinlerini kabul edebilir ve uygulamaları, dağıtım için onaylandı olarak işaretleyebilir (Managed Google Play'e genel bakış bölümüne bakın).

En iyi uygulama olarak, izinler iframe'ini EMM konsolunuza yerleştirmenizi öneririz. Bu, kullanıcının Managed Google Play Console'a ayrı olarak gitmesine gerek olmadığı anlamına gelir. iframe'in URL'sini almak için Products.getApprovalUrl kodunu kullanın.

public String getApprovalUrl(String enterpriseId, String productId)
    throws IOException {
  return androidEnterprise
      .products()
      .generateApprovalUrl(enterpriseId, productId)
      .execute()
      .getUrl();
}

Bu izinleri kabul etmek için Products.approve hesabını kullanın.

public void approveProduct(String enterpriseId,
    String productId,
    String approvalUrl) throws IOException {
  ProductsApproveRequest productsApproveRequest =
      new ProductsApproveRequest()
          .setApprovalUrlInfo(
              new ApprovalUrlInfo().setApprovalUrl(approvalUrl));
  androidEnterprise
      .products()
      .approve(enterpriseId, productId, productsApproveRequest)
      .execute();
  }

Kullanıcının cihazlarını alma

Cihaza özel işlemler yapmak için bir kullanıcıyla ilişkilendirilmiş cihazları tanımlamanız gerekir. Bu örnek, belirli bir userID için DevicesListResponse kullanan cihazların listesini döndürür.

public DevicesListResponse list(String enterpriseId, String userId) throws
   IOException {

    return androidEnterprise
        .devices()
        .list(enterpriseId, userId)
        .execute();
}

Kullanıcı, Managed Google Play'e ilk kez erişmeye çalıştığında sunulan Hizmet Şartları'nı kabul ettiyse yanıta yönetilmeyen cihazlar (yönetim türündeki unmanagedProfile cihazlar) dahil edilir.

Bir cihazın durumunu alma ve ayarlama

Bu yönetim görevi yalnızca Google Hesapları kullanan kuruluşlara uygulanır. Managed Google Play Accounts'u kullanan kuruluşlar için geçerli değildir.

Kullanıcının yönetilen Google Hesabı yönetilen bir cihazda etkinleştirildiğinde, Google hizmetlerine erişim aşağıdakilere göre etkinleştirilir (veya devre dışı bırakılır):

EMM'nin zorunlu kılınması devre dışı bırakılırsa cihaz durumu yoksayılır ve Android cihazda her etkinleştirildiğinde hesaba Google hizmetlerine erişim izni verilir. EMM'nin zorunlu kılınması etkin olmasına rağmen cihazın durumu etkin değilse kullanıcılar Google Play'den uygulama yükleyemez ve Google Play EMM API'leri söz konusu kullanıcı için uygulamaları cihaza sessizce yükleyemez.

Bu örnekte, belirli bir cihazın durumunun nasıl alınacağı gösterilmektedir (enterpriseId, userId ve deviceId iletilerek belirtilir).

getState() ve setState() işlemleri yalnızca managementType değeri managedDevice veya managedProfile olan (Devices kaynağında) cihazlar için çalışır. managementType değeri unmanagedProfile olan cihazlar bu API'lerle kontrol edilemez.

public DeviceState getState(String enterpriseId, String userId, String
   deviceId) throws IOException {

    return androidEnterprise
        .devices()
        .getState(enterpriseId, userId, deviceId)
        .execute();
}

AccountState dizesini uygun sabit değere ayarlayarak bir cihazda hesap için Google hizmetlerini etkinleştirin veya devre dışı bırakın.

public DeviceState setState(String enterpriseId, String userId, String
   deviceId, String accountState) throws IOException {

    DeviceState deviceState = new DeviceState();
    deviceState.setAccountState(accountState);

    return androidEnterprise
        .devices()
        .setState(enterpriseId, userId, deviceId, deviceState)
        .execute();
}

Uygulamaları cihaza push yükleme

Yöneticiler uygulamaları sessizce yükleyebilir. Kullanıcı etkileşimi gerekmez. Bu örnekte, bir uygulamayı (productId tarafından tanımlanır) bir cihaza (deviceId tarafından tanımlanır) sessizce yüklemek için Installs.Update kullanılmaktadır.

public Install update(String enterpriseId, String userId, String
   deviceId, String productId) throws IOException {

    return androidEnterprise
        .installs()
        .update(enterpriseId, userId, deviceId, productId,
           new Install())
        .execute();
}

Uygulama cihazda zaten mevcutsa ve güncellenmiş bir sürümü varsa uygulama yeni sürüme güncellenir.

Onaylı uygulamalar listesinde uygulama arayıp alma

Yöneticiler, Managed Google Play'de kullanıcılarının kullanımına sunulan onaylı uygulamaların bir listesini oluşturur ve yönetir. İş profiline sahip KCG cihazları ve cihazın tamamını kuruluş tarafından yönetilen kurumsal cihazların kullanıcıları, yalnızca bu onaylananlar listesinden uygulama indirebilir.

EMM konsolunuzu bir arama kutusu içerecek şekilde özelleştirebilirsiniz. Böylece yöneticiler yalnızca onaylanan uygulamalar listesindeki uygulamaları arayabilir. Arama işlevi, standart bir Managed Google Play arama işleviyle aynı parametreleri kabul eder, ancak yalnızca onaylanan uygulamalar listesindeki uygulamaları arar.

Örneğin, yönetici, onaylanan uygulamalar listesindeki bir uygulamayı kuruluşundaki cihazlara aktarmak isterse uygulamayı bulmak için EMM konsolundaki bu arama işlevini kullanabilir.

Sorgunuzda, sonucun içermesi gereken maksimum ürün sayısını (ör. setMaxResults(10L)), ekranı dolduracak kadar belirtebilirsiniz. Varsayılan değer 100'dür ve bu aynı zamanda bir defada döndürülebilecek maksimum değerdir. Sonuçta sayfalara ayırma jetonu bulunduğunda, sayfalandırma jetonunu ileterek alabileceğiniz daha fazla sonuç olur.

Bu örnekte, üretkenlik uygulamaları aramasında ilk 10 sonucun nasıl alınacağı gösterilmektedir. Şu sayfaya göz atın: Products.List.

public List searchProducts(String enterpriseId) throws IOException {
  ProductsListResponse executeResult =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setQuery("productivity")
          .execute();
  return executeResult.getProduct();
}

Arama sonucunda sayfalara ayırma jetonu varsa arama, setMaxResults'den fazla sonuç veya bu örnekte 10'dan fazla sonuç oluşturmuştur. Daha fazla sonuç almak için aramayı yeniden yapın ve sayfalara ayırma jetonunu isteğe ekleyin. Bu örnek sonraki 10 sonucu getirir.

public ProductsListResponse continueSearch(
    String enterpriseId, ProductsListResponse previousResponse) throws IOException {
  ProductsListResponse nextResults =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setToken(previousResponse.getTokenPagination().getNextPageToken())
          .setQuery("productivity")
          .execute();
  return nextResults;
}