EnvironmentClient

public interface EnvironmentClient


Cliente para acceder a las APIs relacionadas con el entorno.

Usa EnvironmentClientFactory para crear una instancia.

Resumen

Métodos públicos

abstract @NonNull Environment

Devuelve el objeto Environment.

abstract @NonNull ListenableFuture<@NonNull Environment>

Devuelve el objeto Environment.

abstract @NonNull PrepareEnvironmentResponse
prepareEnvironment(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

Prepara el dispositivo asegurándose de que la app de Android Device Policy esté instalada y lista.

abstract @NonNull ListenableFuture<@NonNull PrepareEnvironmentResponse>
prepareEnvironmentAsync(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

Prepara el dispositivo asegurándose de que la app de Android Device Policy esté instalada y lista.

Métodos públicos

getEnvironment

abstract @NonNull Environment getEnvironment(@NonNull GetEnvironmentRequest request)

Devuelve el objeto Environment. Ayuda a la persona que llama a saber si el entorno está listo o no.

Arroja
com.google.android.managementapi.common.exceptions.InvalidArgumentException

Si los roles solicitados no son válidos

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

Si la llamada falló debido a un error interno.

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

Si el nivel de API del SDK del dispositivo no es suficiente para ciertos roles solicitados (esto puede ser adicional a un requisito general de nivel de API mínimo para la llamada en sí) {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} requiere el nivel de API 23 o superior. Cualquier otro rol requiere el nivel de API 28 o superior.

getEnvironmentAsync

abstract @NonNull ListenableFuture<@NonNull EnvironmentgetEnvironmentAsync(@NonNull GetEnvironmentRequest request)

Devuelve el objeto Environment. Ayuda a la persona que llama a saber si el entorno está listo o no.

Muestra
@NonNull ListenableFuture<@NonNull Environment>

Un ListenableFuture que contiene el resultado. Puede ser:

  • Es un futuro exitoso que contiene un Environment en caso de éxito.

  • Es un futuro con errores que encapsula un InvalidArgumentException si los roles solicitados no son válidos.

  • Es un futuro fallido que contiene un InternalException si la llamada falló debido a un error interno.

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

Si el nivel de API del SDK del dispositivo no es suficiente para ciertos roles solicitados (esto puede ser adicional a un requisito general de nivel de API mínimo para la llamada en sí) {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} requiere el nivel de API 23 o superior. Cualquier otro rol requiere el nivel de API 28 o superior.

prepareEnvironment

abstract @NonNull PrepareEnvironmentResponse prepareEnvironment(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

Prepara el dispositivo asegurándose de que la app de Android Device Policy esté instalada y lista.

El comportamiento depende del contexto:

  • Flujo de confianza del dispositivo: Si no está instalada la app de Android Device Policy, se le solicita al usuario que la instale. Si la app ya está instalada, se actualizará de forma silenciosa.

  • Flujo de inscripción del dispositivo: Instala silenciosamente la app de Android Device Policy si aún no está instalada y se asegura de que esté lista para usarse, sin interacción del usuario.

Parámetros
ComponentName notificationServiceComponentName

Es el ComponentName del servicio que extiende NotificationReceiverService. Si se proporciona, debe ser un componente válido que pertenezca a la app que realiza la llamada y que se haya exportado en el manifiesto. Para recibir notificaciones sobre los eventos de preparación del entorno, debes hacer lo siguiente:

  1. Implementa la interfaz EnvironmentListener en tu app.

  2. Proporciona una implementación para controlar los eventos recibidos.

  3. Extiende NotificationReceiverService y proporciona una instancia de EnvironmentListener.

  4. Agrega la clase NotificationReceiverService extendida a tu archivo AndroidManifest.xml y asegúrate de que se exporte.

Por ejemplo:

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

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
Muestra
@NonNull PrepareEnvironmentResponse

PrepareEnvironmentResponse que contiene detalles sobre el estado final de la preparación del entorno.

Arroja
com.google.android.managementapi.common.exceptions.InvalidArgumentException

Si:

  • [notificationServiceComponentName] no es un componente válido que pertenece a la app que realiza la llamada o no se exportó en el manifiesto.
  • Los roles solicitados incluyen {@code Role.RoleType.DEVICE_POLICY_CONTROLLER}, y no se proporciona {@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} o no extiende {@code android.app.admin.DeviceAdminReceiver}.
  • Los roles solicitados no son válidos.
java.lang.SecurityException

Si el llamador no está autorizado para llamar a esta API.

com.google.android.managementapi.environment.GooglePlayServicesAppNotUpdatedException

Si los Servicios de Google Play no están actualizados

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateUnrecoverableException

Si la Política de dispositivos Android no se puede instalar o actualizar, y el error es irrecuperable.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateRecoverableException

Si la app de Política de dispositivos Android no se instala o actualiza, y el error se puede recuperar (p.ej., la solicitud falló debido a problemas de red transitorios), se puede volver a intentar la solicitud.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDeclinedException

Si el usuario rechaza la instalación de la app de Android Device Policy

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDismissedException

Si el usuario descarta la pantalla de consentimiento de instalación.

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

Si la llamada falló debido a un error interno.

com.google.android.managementapi.environment.PlayStoreUpdateUnrecoverableException

Si falló la actualización de Play Store.

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

Si el nivel de API del SDK del dispositivo no es suficiente para ciertos roles solicitados (esto puede ser adicional a un requisito general de nivel de API mínimo para la llamada en sí).{@code Role.RoleType.DEVICE_POLICY_CONTROLLER} requiere el nivel de API 23 o superior. Cualquier otro rol requiere el nivel de API 28 o superior.

prepareEnvironmentAsync

abstract @NonNull ListenableFuture<@NonNull PrepareEnvironmentResponseprepareEnvironmentAsync(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

Prepara el dispositivo asegurándose de que la app de Android Device Policy esté instalada y lista.

El comportamiento depende del contexto:

  • Flujo de confianza del dispositivo: Si no está instalada la app de Android Device Policy, se le solicita al usuario que la instale. Si la app ya está instalada, se actualizará de forma silenciosa.

  • Flujo de inscripción del dispositivo: Instala silenciosamente la app de Android Device Policy si aún no está instalada y se asegura de que esté lista para usarse, sin interacción del usuario.

Parámetros
ComponentName notificationServiceComponentName

Es el ComponentName del servicio que extiende NotificationReceiverService. Si se proporciona, debe ser un componente válido que pertenezca a la app que realiza la llamada y que se haya exportado en el manifiesto. Para recibir notificaciones sobre los eventos de preparación del entorno, debes hacer lo siguiente:

  1. Implementa la interfaz EnvironmentListener en tu app.

  2. Proporciona una implementación para controlar los eventos recibidos.

  3. Extiende NotificationReceiverService y proporciona una instancia de EnvironmentListener.

  4. Agrega la clase NotificationReceiverService extendida a tu archivo AndroidManifest.xml y asegúrate de que se exporte.

Por ejemplo:

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

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
Muestra
@NonNull ListenableFuture<@NonNull PrepareEnvironmentResponse>

Un ListenableFuture que contiene el resultado. Puede ser

  • Es un futuro exitoso que encapsula un PrepareEnvironmentResponse que contiene detalles sobre el estado final de la preparación del entorno.

  • Un futuro fallido que contiene un InvalidArgumentException si se cumple alguna de las siguientes condiciones:

    • [notificationServiceComponentName] no es un componente válido que pertenece a la app que realiza la llamada o no se exportó en el manifiesto.
    • Los roles solicitados no son válidos.
    • Los roles solicitados incluyen {@code Role.RoleType.DEVICE_POLICY_CONTROLLER}, y no se proporciona {@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} o no extiende {@code android.app.admin.DeviceAdminReceiver}.
  • Es un futuro fallido que contiene un SecurityException si el llamador no está autorizado para llamar a esta API.

  • Es un futuro fallido que contiene un objeto GooglePlayServicesAppNotUpdatedException si los Servicios de Google Play no están actualizados.

  • Es un futuro con errores que contiene un AndroidDevicePolicyInstallOrUpdateUnrecoverableException si no se puede instalar o actualizar Android Device Policy y el error es irrecuperable.

  • Es un futuro fallido que encapsula un AndroidDevicePolicyInstallOrUpdateRecoverableException si falla la instalación o actualización de la app de Android Device Policy y el error es recuperable (p.ej., la solicitud falló debido a problemas de red transitorios), por lo que se puede volver a intentar la solicitud.

  • Es un futuro con errores que encapsula un AndroidDevicePolicyInstallConsentDeclinedException si el usuario rechaza la instalación de la app de Android Device Policy.

  • Es un futuro fallido que encapsula un AndroidDevicePolicyInstallConsentDismissedException si el usuario descarta la pantalla de consentimiento de instalación.

  • Es un futuro fallido que contiene un InternalException si la llamada falló debido a un error interno.

  • Es un futuro fallido que encapsula un PlayStoreUpdateUnrecoverableException si falló la actualización de Play Store.

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

Si el nivel de API del SDK del dispositivo no es suficiente para ciertos roles solicitados {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} requiere el nivel de API 23 o superior. Cualquier otro rol requiere el nivel de API 28 o superior.