EnvironmentClient

interface EnvironmentClient


Клиент для доступа к API, связанным со средой.

Чтобы создать экземпляр, используйте EnvironmentClientFactory.

Сводка

Общественные функции

suspend Environment

Возвращает Environment.

ListenableFuture<Environment>

Возвращает Environment.

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

Подготавливает устройство, проверяя, установлено ли приложение Android Device Policy и готово ли оно к работе.

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

Подготавливает устройство, проверяя, установлено ли приложение Android Device Policy и готово ли оно к работе.

Общественные функции

getEnvironment

suspend fun getEnvironment(request: GetEnvironmentRequest): Environment

Возвращает Environment. Позволяет вызывающему абоненту узнать, готова ли среда.

Исключения
com.google.android.managementapi.common.exceptions.InvalidArgumentException

Если запрошенные роли недействительны или для любой из них задано значение extraCapabilities. Дополнительные возможности предоставляются системным администратором в правилах для устройств и не могут быть запрошены приложением.

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

Если вызов не удалось выполнить из-за внутренней ошибки.

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

Уровень API SDK устройства недостаточен для определенных запрашиваемых ролей (это может быть дополнением к общему требованию к минимальному уровню API для самого вызова). Для {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} требуется API уровня 23 или выше. Для других ролей требуется уровень API 28 или выше.

getEnvironmentAsync

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

Возвращает Environment. Позволяет вызывающему абоненту узнать, готова ли среда.

Возвраты
ListenableFuture<Environment>

ListenableFuture, в который заключен результат. Это может быть:

  • Объект Future, содержащий Environment, в случае успеха.

  • Неудачный Future, содержащий InvalidArgumentException, если запрошенные роли недействительны.

  • Неудачный будущий вызов, упаковывающий InternalException, если вызов не удался из-за внутренней ошибки.

Исключения
com.google.android.managementapi.common.exceptions.InvalidArgumentException

Если для любой из запрашиваемых ролей задано значение extraCapabilities. Дополнительные возможности предоставляются системным администратором в правилах для устройств и не могут быть запрошены приложением.

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

Уровень API SDK устройства недостаточен для определенных запрашиваемых ролей (это может быть дополнением к общему требованию к минимальному уровню 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 не установлено, пользователю будет предложено его установить. Если приложение уже установлено, оно будет обновлено в фоновом режиме.

  • Процесс регистрации устройства. Автоматически устанавливает приложение Android Device Policy, если оно ещё не установлено, и подготавливает его к использованию без участия пользователя.

Параметры
notificationServiceComponentName: ComponentName?

ComponentName сервиса, расширяющего NotificationReceiverService. Если он указан, то должен быть действительным компонентом, принадлежащим вызывающему приложению, и экспортирован в манифест. Чтобы получать уведомления о событиях подготовки среды, необходимо:

  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}.
  • Запрошенные роли недействительны.
  • Для любой из запрашиваемых ролей задано значение extraCapabilities. Дополнительные возможности предоставляются системным администратором в правилах для устройств и не могут быть запрошены приложением.
SecurityException

Если у вызывающего абонента нет прав на вызов этого API.

GooglePlayServicesAppNotUpdatedException

Если сервисы Google Play не обновлены.

AndroidDevicePolicyInstallOrUpdateUnrecoverableException

Если не удается установить или обновить Android Device Policy и ошибка не устраняется.

AndroidDevicePolicyInstallOrUpdateRecoverableException

Если приложение Android Device Policy не удается установить или обновить и ошибку можно устранить (например, запрос не выполнен из-за временных проблем с сетью), запрос можно повторить.

AndroidDevicePolicyInstallConsentDeclinedException

Если пользователь отказывается установить приложение "Правила для устройств Android".

AndroidDevicePolicyInstallConsentDismissedException

Если пользователь закрывает окно запроса доступа.

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

Если вызов не удалось выполнить из-за внутренней ошибки.

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 не установлено, пользователю будет предложено его установить. Если приложение уже установлено, оно будет обновлено в фоновом режиме.

  • Процесс регистрации устройства. Автоматически устанавливает приложение Android Device Policy, если оно ещё не установлено, и подготавливает его к использованию без участия пользователя.

Параметры
notificationServiceComponentName: ComponentName?

ComponentName сервиса, расширяющего NotificationReceiverService. Если он указан, то должен быть действительным компонентом, принадлежащим вызывающему приложению, и экспортирован в манифест. Чтобы получать уведомления о событиях подготовки среды, необходимо:

  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, в который заключен результат. Можно указать следующие значения:

  • Успешный объект Future, содержащий объект PrepareEnvironmentResponse с информацией о конечном статусе подготовки среды.

  • Неудачный Future, содержащий InvalidArgumentException, если:

    • [notificationServiceComponentName] не является допустимым компонентом, принадлежащим вызывающему приложению, или не экспортирован в манифесте.
    • Запрошенные роли недействительны.
    • Запрошенные роли включают {@code Role.RoleType.DEVICE_POLICY_CONTROLLER}, а {@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} не указан или не расширяет {@code android.app.admin.DeviceAdminReceiver}.
  • Неудачный Future, содержащий SecurityException, если у вызывающего абонента нет разрешения на вызов этого API.

  • Неудачный Future, содержащий GooglePlayServicesAppNotUpdatedException, если сервисы Google Play не обновлены.

  • Неудачный Future, содержащий AndroidDevicePolicyInstallOrUpdateUnrecoverableException, если не удалось установить или обновить Android Device Policy и ошибка неисправима.

  • Неудачный Future, содержащий AndroidDevicePolicyInstallOrUpdateRecoverableException, если приложение Android Device Policy не удалось установить или обновить и ошибку можно исправить (например, запрос не выполнен из-за временных проблем с сетью), поэтому запрос можно повторить.

  • Неудачный Future, содержащий AndroidDevicePolicyInstallConsentDeclinedException, если пользователь отказывается устанавливать приложение "Правила для устройств Android".

  • Неудачный Future, содержащий AndroidDevicePolicyInstallConsentDismissedException, если пользователь закрывает окно запроса доступа.

  • Неудачный будущий вызов, упаковывающий InternalException, если вызов не удался из-за внутренней ошибки.

  • Неудачный Future, содержащий PlayStoreUpdateUnrecoverableException, если не удалось обновить Google Play.

Исключения
com.google.android.managementapi.common.exceptions.InvalidArgumentException

Если для любой из запрашиваемых ролей задано значение extraCapabilities. Дополнительные возможности предоставляются системным администратором в правилах для устройств и не могут быть запрошены приложением.

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

Если уровень API SDK устройства недостаточен для определенных запрашиваемых ролей. Для {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} требуется API уровня 23 или выше. Для других ролей требуется уровень API 28 или выше.