アプリの配信

Google Play EMM API は、公開アプリと限定公開アプリについて、次の配信方法をサポートしています。

managed Google Play ストアからアプリを手動でインストールする

ユーザーがインストールできるアプリを Devicepolicy で定義し、Devices.update を呼び出して設定できます。新しいデバイスをプロビジョニングする場合は、managed Google Play アカウントをデバイスに追加する前にポリシーを設定する必要があります。このポリシーを設定しないと、アカウントがデバイスに追加されてからしばらくの間、ポリシーは適用されません。

managed Google Play ストアの動作は、policy.productAvailabilityPolicy の値で定義されます。

  • all: Play ストアのすべての一般公開アプリを利用できます。
  • whitelist: policy.productPolicy にリストされているアプリのみを使用できます。

いずれの場合も、policy.productPolicy 内のすべてのアプリは、デフォルトで企業のストア レイアウトに追加されます。whitelist が選択されている場合は、企業のストア レイアウトが managed Google Play ストアのホームページになり、all が選択されている場合は [仕事用アプリ] タブからアクセスできます。managed Google Play iframe を埋め込むことで、顧客が企業のストア レイアウトをカスタマイズできるようにすることができます(managed Google Play iframe を使ったアプリの整理を参照)。

ユーザーのデバイスにリモートでアプリをインストールする

ユーザーのデバイスにアプリをリモートでインストール(プッシュ インストールとも呼ばれます)するには、Devicepolicypolicy.productPolicy.autoInstallPolicy を設定します。新しいデバイスをプロビジョニングする場合は、managed Google Play アカウントをデバイスに追加する前にポリシーを設定する必要があります。このポリシーを設定しないと、アカウントがデバイスに追加されてからしばらくの間、ポリシーは適用されません。

autoInstallMode は次のように設定できます。

  • doNotAutoInstall: アプリは自動的にはインストールされません。
  • autoInstallOnce: アプリは 1 回だけ自動的にインストールされます。ユーザーがアプリをアンインストールしても、再度インストールされることはありません。
  • forceAutoInstall: アプリは自動的にインストールされます。ユーザーがアプリをアンインストールすると、再度インストールされます。管理対象デバイスでは、DPC が DevicePolicyManager.setUninstallBlocked を使用してアンインストールをブロックする必要があります。

障害(接続の喪失、ストレージの不足など)が発生した場合、インストールは成功するまで自動的に再試行されます。回復不能な障害が発生した場合に、バッテリーとデータの浪費を避けるため、指数バックオフの再試行戦略が適用されます。

インストールの優先度

autoInstallPriority を設定すると、インストールの順序を選択できます。優先度は符号なし整数にする必要があります。デフォルト値は 0 です。アプリは優先度が高い順にインストールされます。つまり、優先度の値の低いアプリが最初にインストールされます。

インストールの制約

autoInstallConstraint を設定することで、アプリごとにインストールの制約を設定できます。これにより、インストール中のデバイスに必要な状態を制御できます。

  • デバイスを Wi-Fi ネットワークに接続するかどうか、
  • デバイスが充電中かどうか、
  • デバイスをアイドル状態(ユーザーがアクティブに使用していない状態)にするかどうかを設定します。

制約がすぐに満たされない場合、影響を受けるインストールは制約が満たされるまでキューに入れられます。

autoInstallConstraint では、AND ルールがフィールド間に適用されます。たとえば、次の autoInstallConstraint では、アプリをインストールするには、デバイスが充電中で、定額制ネットワーク(Wi-Fi など)に接続されている必要があります。

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

新しくプロビジョニングされたデバイスへのアプリの自動インストール

Google Play EMM API は、デバイスが最初にプロビジョニングされたときに NewDeviceEvent 通知を送信します。新しくプロビジョニングされたデバイスにアプリを自動的にプッシュ インストールするには、NewDeviceEvent の通知をリッスンします。各 NewDeviceEvent から userIddeviceId を取得し、Devices.update を呼び出してそのデバイスのポリシーを設定します。

EMM 通知に登録する方法については、EMM 通知を設定するをご覧ください。

クローズド テスト用にアプリを配布する

クローズド テストでは、アプリ デベロッパーは、信頼できるユーザーからアプリの初期バージョンに関するフィードバックを得ることができます。デベロッパーは Google Play Console でクローズド テストをセットアップできます。Play EMM API を使用すると、IT 管理者が特定のユーザーにアプリのクローズド バージョン(トラック)を配布できます。企業のお客様は、この機能を使用してサードパーティ アプリをテストできるだけでなく、社内で開発した限定公開アプリをテストすることもできます。

対象アプリ

デベロッパーがアプリのクローズド テスターのリストに企業を追加する前に、アプリは次の条件を満たしている必要があります。

  • アプリの製品版が Google Play で公開されています。
  • Google Play Console で、アプリの [詳細設定] ページで managed Google Play を有効にします。
  • クローズド バージョンのアプリはすべて、バージョン コードの要件を満たしている。

クローズド テストに企業を追加する

アプリ デベロッパーは、クローズド アルファ版テストまたはGoogle グループを使用したアルファ版テストのメソッドを使用して、テストに企業を追加できます。手順については、オープンテスト版、クローズド テスト版、内部テスト版をセットアップする方法をご覧ください。デベロッパーは、参加する各企業の組織 ID(エンタープライズ ID とも呼ばれます)を入力する必要があります。IT 管理者は、次の手順で組織の ID をサードパーティのアプリ デベロッパーに提供できます。

  1. managed Google Play ストアにログインします。
  2. [管理者設定] をクリックします。
  3. [組織の情報] ボックスから組織 ID の文字列をコピーし、デベロッパーに送信します。

限定公開アプリの追加要件

限定公開アプリの場合、デベロッパーはアプリの [詳細設定] ページの [managed Google Play] タブに各参加企業の組織 ID を追加する必要もあります。手順については、限定公開アプリを公開するをご覧ください。

ユーザーにクローズド トラックを配信する

指定したアプリで企業が利用可能なトラックのリストを取得するには、Products.get を呼び出します。レスポンスに含まれる appTracks[] リストには、各アプリで利用可能なトラックが含まれます。appTracks[].trackAlias は、EMM コンソールに表示できるトラックのユーザー可読形式の名前で、appTracks[].trackId は機械で読み取り可能なトラックの ID です。

アプリのクローズド トラックの公開設定をユーザーに付与するには、Devicepolicypolicy.productPolicy[].trackIds[] を設定します。デバイスで複数のトラックが利用可能な場合は、バージョン コードが最も高い利用可能なバージョンがインストールされます。

次のような特定のシナリオでは、trackId が Products.get 呼び出しから自動的に削除されます。

  • トラックの APK が別のトラックまたは製品版に昇格しています。
  • 製品版がトラックよりも上位のバージョンで更新されている。
  • デベロッパーがトラックを停止した場合。

有料アプリのライセンスを管理する

有料アプリの場合、Grouplicenses オブジェクトは、企業が所有しているライセンス数と使用中のライセンス数を追跡します。Grouplicenses.get を呼び出すと、アプリのライセンスの詳細を取得できます。

有料アプリをデバイスにインストールするには、そのアプリで使用できるライセンスが必要です。ライセンスが使用可能な場合は、アプリがデバイスにインストールされ、Entitlements オブジェクトが作成されます。Entitlements オブジェクトは、ライセンスをユーザーとリンクし、アプリの使用可能なライセンス数を減らします。利用可能なライセンスがない場合は、アプリのインストールは失敗し、Entitlements オブジェクトは作成されません。

Grouplicenses オブジェクトと Entitlements オブジェクトは、無料で配布されるアプリケーションで使用されません。