Android Management API(AMAPI)SDK を使用すると、特定のアプリが Android Device Policy(ADP)と直接通信できるようになります。サポートされている内容は次のとおりです。
- コマンドのローカル実行
- カスタム DPC で管理されているデバイスを AMAPI に移行する
- Device Trust from Android Enterprise
- 管理対象 Google アカウントの追加もサポートする新しいデバイス登録フロー
- AMAPI でカスタムアプリを管理する
- アプリケーションのロールを管理する。
AMAPI SDK をアプリケーションに統合するには、次の手順を行う必要があります。
- AMAPI SDK ライブラリを追加します。
- ターゲット SDK が 30 以上の場合は、queries 要素を追加します。
前提条件
- アプリの
minSdkVersion
が API レベル 21 以上に設定されていることを確認します。 - 最新バージョンの AMAPI SDK の依存関係をアプリに追加します。利用可能な最新のライブラリのバージョンと、アプリケーションに追加する方法については、AMAPI SDK のリリースノートのページをご覧ください。
queries 要素を追加する
アプリが SDK 30 以降をターゲットとしている場合は、ADP と連携することを指定するために、AndroidManifest.xml
に queries 要素が必要です。
<queries>
<package android:name="com.google.android.apps.work.clouddpc" />
</queries>
詳しくは、Android でのパッケージの公開設定のフィルタリングをご覧ください。
NotificationReceiverService を実装する
一部の機能では NotificationReceiverService
の作成が必要であり、一部の機能では NotificationReceiverService
の使用は任意です。これを使用するには、NotificationReceiverService
を拡張するクラスを定義し、AndroidManifest.xml
に service
として追加して、エクスポートされていることを確認します。
import com.google.android.managementapi.notification.NotificationReceiverService;
...
public final class MyAppNotificationReceiverService extends NotificationReceiverService {
@Override
protected void setupInjection() {
// This method can be optionally used to inject dependencies at the
// beginning of the service lifecycle.
}
}
ADP アプリに NotificationReceiverService
クラスの ComponentName
を指定する必要があります。これを行うには 2 つの方法があります。各機能のドキュメントで、使用するアプローチを指定します。
明示的な API
この場合、ComponentName
は適切な API を介して ADP アプリに渡されます。問題の機能のドキュメントに詳細が記載されています。AndroidManifest.xml
に以下を追加します。
<service
android:name = ".MyAppNotificationReceiverService"
android:exported = "true" />
自動検出
このアプローチでは、サービスを自動的に検出できるように、サービスにタグを付ける必要があります。AndroidManifest.xml
に以下を追加します。
<service
android:name = ".MyAppNotificationReceiverService"
android:exported = "true" >
<meta-data android:name="Insert name here" android:value=""/>
</service>
meta-data
の android:name
に使用する特定の文字列は、このアプローチを使用する各機能について文書化されています(例については、アプリケーション ロールを管理するをご覧ください)。このタグ付けを有効にするには、アプリに有効なサービスが 1 つだけ存在し、その meta-data
の android:name
がこの特定の文字列で、android:value
が空の文字列である必要があります。同じサービスに複数の meta-data
を追加できます。