EnvironmentClient

interface EnvironmentClient


環境関連の API にアクセスするクライアント。

インスタンスの作成に EnvironmentClientFactory が使用されます。

概要

パブリック関数

suspend Environment

Environment を返します。

ListenableFuture<Environment>

Environment を返します。

suspend PrepareEnvironmentResponse
prepareEnvironment(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
)

デバイス環境を準備します。

ListenableFuture<PrepareEnvironmentResponse>
prepareEnvironmentAsync(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
)

デバイス環境を準備します。

パブリック関数

getEnvironment

suspend fun getEnvironment(request: GetEnvironmentRequest): Environment

Environment を返します。これにより、環境が準備できているかどうかを呼び出し元が確認できます。

例外
com.google.android.managementapi.common.exceptions.InvalidArgumentException

リクエストされたロールが無効な場合。

com.google.android.managementapi.common.exceptions.InternalException

内部エラーのため呼び出しが失敗した場合。

com.google.android.managementapi.common.exceptions.ApiLevelException

デバイスの SDK API レベルが、リクエストされた特定のロールに対して十分でない場合(これは、呼び出し自体に対する一般的な最小 API レベルの要件に加えて発生する可能性があります)。{@code Role.RoleType.DEVICE_POLICY_CONTROLLER} には API レベル 23 以上が必要です。その他のロールには API レベル 28 以上が必要です。

getEnvironmentAsync

fun getEnvironmentAsync(request: GetEnvironmentRequest): ListenableFuture<Environment>

Environment を返します。これにより、環境が準備できているかどうかを呼び出し元が確認できます。

戻り値
ListenableFuture<Environment>

結果をラップする ListenableFuture。ID には、次のものを使用できます。

  • 成功した場合に Environment をラップする成功した Future。

  • リクエストされたロールが無効な場合、InvalidArgumentException をラップする失敗した Future。

  • 内部エラーのため呼び出しが失敗した場合、InternalException をラップした失敗した Future。

例外
com.google.android.managementapi.common.exceptions.ApiLevelException

デバイスの SDK API レベルが、リクエストされた特定のロールに対して十分でない場合(これは、呼び出し自体に対する一般的な最小 API レベルの要件に加えて発生する可能性があります)。{@code Role.RoleType.DEVICE_POLICY_CONTROLLER} には API レベル 23 以上が必要です。その他のロールには API レベル 28 以上が必要です。

prepareEnvironment

suspend fun prepareEnvironment(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
): PrepareEnvironmentResponse

デバイス環境を準備します。

必要な Android Device Policy アプリケーションをインストールするようユーザーに促します。ユーザーがプロンプトを承認すると、インストールが続行されます。インストールが正常に完了すると、Android Device Policy アプリの準備が整っていることを確認するオペレーションが実行されます。

パラメータ
notificationServiceComponentName: ComponentName?

NotificationReceiverService を拡張するサービスの ComponentName。指定する場合は、呼び出し元アプリに属する有効なコンポーネントであり、マニフェストでエクスポートされている必要があります。環境準備イベントの通知を受け取るには、次の操作を行う必要があります。

  1. アプリに EnvironmentListener インターフェースを実装します。

  2. 受信したイベントを処理する方法の実装を提供します。

  3. NotificationReceiverService を拡張し、EnvironmentListener インスタンスを提供します。

  4. 拡張した NotificationReceiverService クラスを AndroidManifest.xml に追加し、エクスポートされていることを確認します。

次に例を示します。

class MyEnvironmentListener : EnvironmentListener {
override fun onEnvironmentEvent(event: EnvironmentEvent) {
// Handle the environment event.
}
}

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
戻り値
PrepareEnvironmentResponse

環境準備の最終ステータスに関する詳細を含む PrepareEnvironmentResponse

例外
com.google.android.managementapi.common.exceptions.InvalidArgumentException

条件:

  • [notificationServiceComponentName] は、呼び出し元アプリに属する有効なコンポーネントではないか、マニフェストでエクスポートされていません。
  • リクエストされたロールに {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} が含まれており、{@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} が指定されていないか、{@code android.app.admin.DeviceAdminReceiver} を拡張していない。
  • リクエストされたロールが無効です。
java.lang.SecurityException

呼び出し元にこの API を呼び出す権限がない場合。

com.google.android.managementapi.environment.GooglePlayServicesAppNotUpdatedException

Google Play 開発者サービスが最新の状態でない場合。

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateUnrecoverableException

Android Device Policy のインストールまたは更新に失敗し、エラーが回復不能な場合。

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateRecoverableException

Android デバイス ポリシー アプリのインストールまたは更新が失敗し、エラーが回復可能(一時的なネットワークの問題が原因でリクエストが失敗したなど)な場合、リクエストを再試行できます。

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDeclinedException

ユーザーが Android Device Policy アプリのインストールを拒否した場合。

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDismissedException

ユーザーがインストール同意画面を閉じた場合。

com.google.android.managementapi.common.exceptions.InternalException

内部エラーのため呼び出しが失敗した場合。

com.google.android.managementapi.environment.PlayStoreUpdateUnrecoverableException

Google Play ストアの更新に失敗した場合。

com.google.android.managementapi.common.exceptions.ApiLevelException

デバイスの SDK API レベルが、リクエストされた特定のロールに対して十分でない場合(これは、呼び出し自体の一般的な最小 API レベル要件に加えて必要になることがあります)。{@code Role.RoleType.DEVICE_POLICY_CONTROLLER} には API レベル 23 以上が必要です。その他のロールには API レベル 28 以上が必要です。

prepareEnvironmentAsync

fun prepareEnvironmentAsync(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
): ListenableFuture<PrepareEnvironmentResponse>

デバイス環境を準備します。

必要な Android Device Policy アプリケーションをインストールするようユーザーに促します。ユーザーがプロンプトを承認すると、インストールが続行されます。インストールが正常に完了すると、Android Device Policy アプリの準備が整っていることを確認するオペレーションが実行されます。

パラメータ
notificationServiceComponentName: ComponentName?

NotificationReceiverService を拡張するサービスの ComponentName。指定する場合は、呼び出し元アプリに属する有効なコンポーネントであり、マニフェストでエクスポートされている必要があります。環境準備イベントの通知を受け取るには、次の操作を行う必要があります。

  1. アプリに EnvironmentListener インターフェースを実装します。

  2. 受信したイベントを処理する方法の実装を提供します。

  3. NotificationReceiverService を拡張し、EnvironmentListener インスタンスを提供します。

  4. 拡張した NotificationReceiverService クラスを AndroidManifest.xml に追加し、エクスポートされていることを確認します。

次に例を示します。

class MyEnvironmentListener : EnvironmentListener {
override fun onEnvironmentEvent(event: EnvironmentEvent) {
// Handle the environment event.
}
}

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
戻り値
ListenableFuture<PrepareEnvironmentResponse>

結果をラップする ListenableFuture。この場合、

  • 環境準備の最終ステータスに関する詳細を含む PrepareEnvironmentResponse をラップする成功した Future。

  • 次の場合に InvalidArgumentException をラップする失敗した Future:

    • [notificationServiceComponentName] は、呼び出し元アプリに属する有効なコンポーネントではないか、マニフェストでエクスポートされていません。
    • リクエストされたロールが無効です。
    • リクエストされたロールに {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} が含まれており、{@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} が指定されていないか、{@code android.app.admin.DeviceAdminReceiver} を拡張していない。
  • 呼び出し元にこの API を呼び出す権限がない場合、SecurityException をラップする失敗した Future。

  • Google Play 開発者サービスが最新の状態でない場合は、GooglePlayServicesAppNotUpdatedException をラップする失敗した Future。

  • Android デバイス ポリシーのインストールまたは更新に失敗し、エラーが回復不能な場合に AndroidDevicePolicyInstallOrUpdateUnrecoverableException をラップする失敗した Future。

  • Android デバイス ポリシー アプリのインストールまたは更新が失敗し、エラーが回復可能な場合(一時的なネットワークの問題が原因でリクエストが失敗した場合など)に AndroidDevicePolicyInstallOrUpdateRecoverableException をラップする失敗した Future。そのため、リクエストを再試行できます。

  • ユーザーが Android Device Policy アプリのインストールを拒否した場合、AndroidDevicePolicyInstallConsentDeclinedException をラップする失敗したフューチャー。

  • ユーザーがインストール同意画面を閉じると、AndroidDevicePolicyInstallConsentDismissedException をラップする失敗した Future。

  • 内部エラーのため呼び出しが失敗した場合、InternalException をラップした失敗した Future。

  • Play ストアの更新に失敗した場合、PlayStoreUpdateUnrecoverableException をラップする失敗した Future。

例外
com.google.android.managementapi.common.exceptions.ApiLevelException

デバイスの SDK API レベルが、リクエストされた特定のロールに対して十分でない場合。{@code Role.RoleType.DEVICE_POLICY_CONTROLLER} には API レベル 23 以上が必要です。その他のロールには API レベル 28 以上が必要です。