一般的な管理タスク

EMM は、このガイドで紹介するタスクをはじめとして、Android 向けエンタープライズ ソリューションに幅広い一般的な管理タスクを実装できます。サンプルコードでは、Java 用 Google Play EMM API クライアント ライブラリ® を使用しています。

ユーザーを検索してユーザーの詳細情報を取得する

Google Play EMM API の多くは、アプリのインストール、利用資格の取得、ライセンスの取得など、ユーザー関連タスクを行うために(enterpriseId の他に)userId を必要とします。一部の呼び出しでは、ユーザー オブジェクトが必要になります。

組織で managed Google Play アカウントを使用している場合は、ユーザーのメールアドレスとそれらのアカウントのユーザー ID とのマッピングを維持します。Google アカウントでは UsersListResponse を使用します。

ユーザーを検索

このコードサンプルは、Google アカウントに関連付けられたユーザー ID を取得します。managed Google Play アカウントを使用している組織には適用されません。

この例では、User モデルと UsersListResponse モデルをコードにインポートしたことを前提としています。特定のユーザー アカウントを取得するには、enterpriseId とメールを UsersListResponse に渡して userId を取得します。

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

ユーザーの詳細を取得する

userId を取得すると、他の詳細を取得できます。詳しくは、 Users.Get

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

ユーザーにアプリへのアクセス権を付与する

Google Play EMM API を使用して、ユーザーにアクセスを許可するアプリを管理できます。 managed Google Play ストアからダウンロードできます。アプリへのアクセスには、 検索、表示、インストール、更新できます3 通りのアクセス権があり、 :

  • 許可されているアプリのみ: ユーザーは特定のアプリにのみアクセスできます。
  • すべての承認済みアプリ: ユーザーは承認されているすべてのアプリにアクセスできます。 可能です。
  • すべてのアプリ: ユーザーは一般公開されているすべてのアプリにアクセスできます。 ダウンロードしてください

ユーザーに特定のアプリのみへのアクセス権を付与する

次の例は、特定のアプリセットへのアクセス権をユーザーに付与する方法を示しています。 managed Google Play ストアからダウンロードできます。このプロセスでは 手順は次のとおりです。

  • ユーザー(productSet)に対して承認された productIds(アプリ)のリストを収集します。
  • productSetBehavior 文字列の値を "whitelist" に設定して、ユーザーが指定リストのアプリにのみアクセスできることを指定します。
  • setAvailableProductSet を使用して、productIds のリストと動作設定をユーザーが購入可能な商品セットに適用します。
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();
}

すべての承認済みアプリへのアクセス権をユーザーに付与する

以下の例は、承認された任意のアプリへのアクセス権をユーザーに付与する方法を示しています。 managed Google Play ストアから、エンタープライズ向けのこのプロセスでは 手順は次のとおりです。

  • productSetBehavior 文字列の値を "allApproved" に設定して、ユーザーがエンタープライズで承認されたすべてのアプリにアクセスできることを指定します。
  • setAvailableProductSet を使用して、この設定をユーザーに適用します。
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("allApproved");

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

注: productSetBehavior"allApproved" に設定されている場合、 productSet に productIds を指定する必要はありません。

ユーザーにすべてのアプリへのアクセス権を付与する

以下の例は、管理対象の Google Chat でユーザーに権限を付与する方法を Google Play ストアから、一般公開の Google Play ストアで入手可能なアプリにアクセスできます。 すべてのアプリにアクセスできるユーザーには、引き続きアプリのストア レイアウトのみが表示されます。 managed Google Play を開くと、その他のアプリも 目を向けます

IT 管理者など、特定の信頼できるユーザーは、この上位レベルの エンタープライズ向けアプリを承認する前に、テストと評価を行うためのアクセス権が必要です。「 ユーザーにすべてのアプリへのアクセス権を付与するプロセスには、次の手順が含まれます。

  • productSetBehavior 文字列の値を "includeAll" に設定して、ユーザーが Google Play ストアのすべてのアプリにアクセスできることを指定します。
  • setAvailableProductSet を使用して、この設定をユーザーに適用します。
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("includeAll");

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

注: productSetBehavior"includeAll" に設定されている場合、 productSet に productIds を指定する必要はありません。

店舗レイアウトを作成する

ユーザーにアプリへのアクセス権を付与したら、managed Google Play ストアに表示されるように、アプリをクラスタにグループ化します。

Storelayoutpages API と Storelayoutclusters API を使用して、顧客ごとにカスタマイズされた独自の店舗レイアウトを作成できます。一般的なレイアウトは一連のページで構成し、それぞれにアプリのクラスタを含めることができます。関連するアプリを同じクラスタに配置できます。詳細とサンプルコードについては、ストアのカスタム レイアウトを作成するをご覧ください。

アプリの権限を取得する

ストアのカスタム レイアウトにアプリを追加する(または、ユーザーの ユーザーがそのアプリを選択できるように、管理者がアプリを表示する必要があります。 組織全体でそのアプリに対する権限を許可します。管理者は次のことを行えます アプリの権限を許可し、管理対象の Google Play Console(managed Google Play の概要をご覧ください)。

ベスト プラクティスとして、権限の iframe を EMM コンソールつまり、ユーザーは managed Google Play Console を使用します。Products.getApprovalUrl を使用して iframe の URL を取得します。

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

これらの権限を許可するには、Products.approve を使用します。

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();
  }

ユーザーのデバイスを取得する

デバイス固有のアクションを行うには、 できます。この例では、DevicesListResponse を使用して、指定された userID のデバイスのリストを返します。

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

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

アクセスしようとしたときに表示された利用規約に同意した場合 managed Google Play を初めて使用したとき、管理対象外のデバイスが応答に含まれる (管理タイプが unmanagedProfile のデバイス)。

デバイスの状態を取得して設定する

この管理タスクは、Google アカウントを使用している組織にのみ適用されます。これは、 managed Google Play アカウントを使用している組織には適用されません。

ユーザーの管理対象の Google アカウントが管理対象デバイスで有効化されると、 有効(または無効)にするかどうかの判断基準:

EMM の適用が無効になっている場合、デバイスの状態は無視され、アカウントは Android デバイスで有効にされた Google サービスには、常にアクセスが許可されます。 EMM の適用が有効になっていても、デバイスの状態が有効でない場合、ユーザーはインストールできません。 ダウンロードされ、Google Play EMM API をサイレント インストールできない 作成する必要があります。

この例では、特定のデバイスの状態( enterpriseIduserIddeviceId)。

getState() および setState() オペレーションは、managementTypemanagedDevice または managedProfileDevices リソース)のみ。対応デバイス unmanagedProfilemanagementType はこれらの API では制御できません。

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

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

以下を設定して、デバイスでのアカウントの Google サービスを有効または無効にする AccountState 文字列を適切な定数に設定します。

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();
}

デバイスにアプリをプッシュ インストールする

管理者はアプリケーションをサイレント インストールできます。ユーザーの操作は必要ありません。 この例では、Installs.Update を使用して(productId で識別される)アプリをサイレント インストールする デバイス(deviceId で識別)への割り当て。

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

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

アプリがすでにデバイスに存在していて、更新版が利用可能な場合、アプリは新しいバージョンに更新されます。

承認済みアプリケーションのリストからアプリを検索して取得します

管理者は、managed Google Play でユーザーが利用できる承認済みアプリのリストを作成し、管理できます。仕事用プロファイルが設定された BYOD デバイス上のユーザーと、デバイス全体が組織によって管理されている会社所有デバイス上のユーザーは、この承認済みリストからのみアプリをダウンロードできます。

EMM コンソールをカスタマイズして検索ボックスを追加し、管理者が承認済みアプリのリストにあるアプリのみを検索できるようにすることができます。この検索機能では、標準の managed Google Play 検索機能と同じパラメータを指定できますが、検索対象は承認済みアプリのリストにあるアプリのみです。

たとえば、承認済みアプリのリストにあるアプリを組織内のデバイスにプッシュ インストールする場合は、EMM コンソールのこの検索機能を使用してアプリを見つけることができます。

クエリでは、結果に含める商品の最大数(setMaxResults(10L) など)を指定できます。これは、画面全体に表示されるのに十分な数です。デフォルト値は 100 で、これは一度に返すことができる最大値でもあります。結果にページ設定トークンが含まれている場合は、ページ設定トークンを渡すことで、さらに多くの結果を取得できます。

この例では、生産性向上アプリの検索結果の最初の 10 件を取得する方法を示します。 Products.List をご覧ください。

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

検索結果にページ設定トークンが含まれている場合、検索で生成された結果は setMaxResults 件を超えています(この例では 10 件以上)。さらに結果を取得するには、検索をやり直し、ページネーション トークンをリクエストに含めます。この例では、次の 10 件の結果を取得します。

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;
}