Control de dispositivos

En las funciones de esta guía, se describen las funciones de administración de dispositivos que puedes implementar en tu app de controlador de política de dispositivo (DPC). También puedes usar la app DPC de prueba como fuente de código de muestra para las funciones empresariales de Android.

Una app de DPC puede ejecutarse en modo de propietario de perfil en dispositivos personales o en modo de propietario de dispositivo en dispositivos completamente administrados. En esta tabla, se indica qué funciones están disponibles cuando el DPC se ejecuta en modo de propietario del perfil o modo de propietario del dispositivo:

Función Propietario del perfil Propietario del dispositivo
Cómo crear un mensaje personalizado en la pantalla de bloqueo
Inhabilita el roaming de datos
Brindar un mensaje personalizado a los usuarios si un parámetro de configuración está bloqueado
Bloquea el fondo de pantalla
Cómo bloquear el ícono de un usuario del cliente
Supervisa el estado y el estado del dispositivo de forma remota
Cómo reiniciar un dispositivo Android de forma remota

Crea un mensaje personalizado en la pantalla de bloqueo

Cuando se ejecuta en el modo de propietario del dispositivo, un DPC puede crear un mensaje de pantalla de bloqueo personalizado en los dispositivos de sus usuarios con el método setDeviceOwnerLockScreenInfo. Este mensaje se muestra en la pantalla del dispositivo cuando se bloquea y es útil en el caso de un dispositivo perdido o robado. Un mensaje común es el siguiente: "Este teléfono pertenece a <nombre de la empresa>. Si se encuentra, llama al <número de teléfono>".

Inhabilitar roaming de datos

El roaming de datos puede generar cargos significativos en las facturas de los operadores de telefonía celular. Para ayudar a optimizar esos costos, un DPC que se ejecuta en el modo de propietario del dispositivo puede inhabilitar el roaming de datos estableciendo la restricción DISALLOW_DATA ROAMING. Una vez que el DPC establece la restricción de usuario, un usuario no puede cambiar el roaming de datos desde la Configuración en su dispositivo.

Enviar un mensaje personalizado a los usuarios si un parámetro de configuración está bloqueado

Cuando un usuario hace clic en un parámetro de configuración o una función que su departamento de TI bloquea, el mensaje de asistencia brinda una breve explicación de por qué no puede acceder a la función.

Estos mensajes pueden ser más descriptivos que "Acción no permitida". Un DPC que se ejecute en el modo de propietario del dispositivo o de propietario del perfil puede personalizar estos mensajes con los métodos DevicePolicyManager setShortSupportMessage() y setLongSupportMessage().

Crea mensajes de asistencia

Para explicar por qué se restringe un parámetro de configuración, puedes usar mensajes cortos o largos:

  • Para crear un mensaje corto, usa el método setShortSupportMessage().

    • El mensaje corto tiene una limitación de 200 caracteres.
    • Un mensaje común es el siguiente: "El administrador inhabilitó este parámetro de configuración. Escribe a <yourITdepartment@example.com> para obtener asistencia."
  • Para crear un mensaje largo, usa el método setLongSupportMessage(). El usuario puede ver este mensaje en su dispositivo, en Configuración > Seguridad > Administradores del dispositivo y, luego, seleccionar un administrador específico.

Si es necesario traducir cualquiera de estos mensajes, DeviceAdminReceiver debe escuchar la transmisión de ACTION_LOCALE_CHANGED y establecer una nueva versión de esta cadena según corresponda.

Bloquea el fondo de pantalla

Las organizaciones, como las instituciones educativas o las empresas que ejecutan dispositivos Android como dispositivos compartidos, pueden impedir que sus usuarios cambien el fondo de pantalla de la pantalla principal de su dispositivo.

Para bloquear el fondo de pantalla, un DPC que se ejecuta en el modo de propietario del dispositivo o propietario del perfil puede establecer DISALLOW_SET_WALLPAPER en true. El valor predeterminado para esta configuración es false.

Bloquea el ícono de un usuario de cliente

Un DPC que se ejecuta en el modo de propietario de dispositivo o propietario del perfil puede agregar usuarios y especificar un ícono para cada usuario. Este ícono de usuario solo está en el dispositivo y es independiente del ícono de perfil que aparece en otras Propiedades de Google, como un mensaje de Gmail o un perfil de Google+.

Un DPC puede configurar el DISALLOW_SET_USER_ICON en true para impedir que un usuario cambie su ícono. El valor predeterminado de esta configuración es false.

Supervisa el estado del dispositivo de forma remota

Un DPC que se ejecuta en el modo de propietario de dispositivo o propietario de perfil puede supervisar dispositivos sin supervisión que se ejecutan en una ubicación remota, como pantallas de señalización digital o kioscos que se ejecutan en dispositivos Android. Para ello, un DPC usa la interfaz HardwarePropertiesManager a fin de obtener información sobre el estado del dispositivo, como las temperaturas de la GPU y el uso de CPU. Esto es útil para diagnosticar problemas con los dispositivos que se apagan automáticamente debido al sobrecalentamiento o a otros inconvenientes.

Para acceder al servicio de administrador de propiedades de hardware del dispositivo, usa Context.getSystemService() con la cadena Context.HARDWARE_PROPERTIES_SERVICE.

Reinicia un dispositivo Android de forma remota

Un DPC puede reiniciar dispositivos Android de forma remota solo cuando se ejecuta en el modo de propietario del dispositivo. En algunos casos, los dispositivos implementados en lugares públicos dentro de gabinetes o como pantallas de señalización digital pueden impedir el acceso fácil al botón de encendido. Si es necesario reiniciar un dispositivo, un DPC puede hacerlo con el método DevicePolicyManager.reboot().

No se reinicia el dispositivo si hay una llamada en curso. El dispositivo debe estar en estado inactivo para que se reinicie. Esto se hace para evitar que un administrador interrumpa la llamada telefónica de un usuario con una solicitud de reinicio. Si el dispositivo está activo, arroja una IllegalStateException hasta CALL_STATE_IDLE.