Los dispositivos que ya administra tu DPC personalizado se pueden migrar a la política de dispositivos Android (ADP) y aprovechar la API de Android Management.
Requisitos previos
- Tu EMM ya administra el dispositivo con un DPC personalizado.
- Tu DPC personalizado está integrado en el SDK de AMAPI.
- El dispositivo está inscrito con la API de EMM de Google Play.
- El dispositivo pertenece a una cuenta empresarial de Google Play administrado.
- El dispositivo ejecuta Android 9 o una versión posterior.
- En el caso de los perfiles de trabajo en dispositivos de la empresa, el dispositivo debe ejecutar Android 11 o versiones posteriores.
Cómo realizar la integración con el SDK de AMAPI en tu DPC personalizado
El proceso de migración requiere que la aplicación de DPC personalizada integre el SDK de AMAPI. Puedes encontrar más información sobre esta biblioteca y cómo agregarla a tu aplicación en la guía de integración del SDK de AMAPI.
Pasos para migrar un dispositivo
- Configura una política que el dispositivo usará después de migrar a AMAPI. Para obtener la mejor experiencia del usuario, esto debería ser equivalente a la política que ya aplicó tu DPC en el dispositivo.
- Llama a
enterprises.migrationTokens.create
para crear un token de migración para el dispositivo. - Envía el
value
de este token de migración a tu DPC personalizado. - Usa la API de Play EMM para asegurarte de que Android Device Policy esté instalada en el dispositivo.
- Usa
DpcMigrationClientFactory
para crear unDpcMigrationClient
- En
DpcMigrationClient
, llama al métodomigrateDeviceManagementToAndroidManagementApi
. Esto completa la migración. deviceState
cambia aACTIVE
y recibirás un mensajeSTATUS_REPORT
a través del canal de Pub/Sub.
Una vez que se completa la migración, la app de llamadas pierde sus privilegios de propietario del dispositivo o del propietario del perfil, ya que se transfieren a la Política de dispositivos de Android. Este proceso se puede representar con el siguiente diagrama de secuencias:
Nota: El dispositivo debe estar conectado a Internet para comenzar la migración. El proceso está diseñado para ser resistente a las desconexiones de red durante el proceso de migración, de modo que las operaciones clave que requieren conectividad de red se realicen antes de que se produzca la transferencia real de los derechos del propietario del dispositivo o del propietario del perfil del DPC a la Política de dispositivos de Android.
Token de migración
El servidor de EMM solicita un token de migración para indicar la intención de migrar un dispositivo en particular que administra un DPC personalizado. Un token de migración se puede usar hasta que la migración se complete correctamente o hasta que venza.
Integración de DPC personalizada
Primero, debes crear un DpcMigrationRequest
, pasar el token y, si es necesario, la lista de redes Wi-Fi configuradas a su compilador:
// Create a DpcMigrationRequest
DpcMigrationRequest request =
DpcMigrationRequest.builder()
.setMigrationToken(token)
.build();
Luego, puedes obtener un DpcMigrationClient
y comenzar el proceso de migración con migrateDeviceManagementToAndroidManagementApi
:
// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
// Use helper function to retrieve Admin component name
var adminComponentName = getAdminComponent(context);
ListenableFuture<DpcMigrationAttempt> futureAttempt =
dpcMigrationClient.migrateDeviceManagementToAndroidManagementApi(
new ComponentName(context, DpcMigrationNotificationReceiver.class),
adminComponentName,
request);
// handle futureAttempt
} catch (RuntimeException e) {
// send failure feedback: "Error: " + e
}
Realiza un seguimiento del progreso de la migración
Se realiza un seguimiento del proceso de migración en el dispositivo a través de un DpcMigrationAttempt
.
Puedes usar directamente el que muestra migrateDeviceManagementToAndroidManagementApi
o los métodos getMigrationAttempt
y listMigrationAttempts
para obtener y enumerar los intentos de migración.
// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();
var attempt = client.getMigrationAttempt(request);
De manera opcional, puedes configurar un DpcMigrationListener
con tu NotificationReceiverService
para escuchar actualizaciones de estado de DpcMigrationAttempt
.
// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
implements DpcMigrationListener {
@Override
protected DpcMigrationListener getDpcMigrationListener() {
// getDpcMigrationListener"
return this;
}
@Override
public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
// send success feedback
}
}
Cómo controlar las redes Wi-Fi
Si hay redes Wi-Fi administradas por el DPC personalizado, la política de ONC de AMAPI debe coincidir con la configuración de estas redes para que AMAPI comience a administrarlas sin problemas. La interacción de la migración de DPC con la administración de Wi-Fi varía según el modo de administración.
Perfiles de trabajo y dispositivos completamente administrados en dispositivos empresariales
Durante la migración, la Política de dispositivos Android supone que cualquier red Wi-Fi configurada en la política que tenga el mismo SSID y el mismo tipo de seguridad que una red Wi-Fi configurada en el dispositivo es idéntica a la red Wi-Fi configurada que coincide. Por lo tanto, las redes Wi-Fi configuradas por el DPC personalizado no se modifican después de la migración hasta que se produce un cambio en la política de ONC correspondiente a la red. Sin embargo, si se desinstala el DPC personalizado después de la migración, las redes Wi-Fi configuradas por el DPC personalizado se quitarán automáticamente. La Política de dispositivos Android sigue aplicando la política y, si alguna de estas redes está configurada en la política, las redes configuradas en la política se agregan como de costumbre.
Perfil de trabajo en un dispositivo personal
Por motivos técnicos, el DPC personalizado debe quitar las redes Wi-Fi que configuró para que la política de dispositivos de Android comience a administrarlas. El SDK de AMAPI se encarga de esto y quita esas redes Wi-Fi antes de transferir la propiedad del DCP personalizado a la Política de dispositivos de Android, pero requiere que el DCP personalizado pase información sobre estas redes en DpcMigrationRequest
. Después de la migración, las redes configuradas en la política se agregarán de forma normal, por lo que se recomienda que las redes que agregue el DPC personalizado también se configuren en la política.
Ten en cuenta los siguientes puntos:
- Si la red activa es una red Wi-Fi configurada por un DPC personalizado, el dispositivo puede estar sin conexión durante la migración.
- Solo se deben pasar las redes Wi-Fi configuradas por el DPC personalizado en
DpcMigrationRequest
. De lo contrario, la migración fallará si el SDK de AMAPI no puede quitar una red (p. ej., una red Wi-Fi que agregó el usuario). - Las redes Wi-Fi deben pasarse en
DpcMigrationRequest
solo cuando el DPC personalizado es propietario del perfil en un dispositivo de propiedad personal. De lo contrario, la migración fallará. - Por motivos técnicos, Android 12 es un caso excepcional en el que se ignoran las redes que se pasan en
DpcMigrationRequest
y se quitan automáticamente todas las redes Wi-Fi que configuró el DPC personalizado. Además, es un requisito que el DPC personalizado tenga el permisoACCESS_WIFI_STATE
en Android 12 para los perfiles de trabajo en dispositivos personales; de lo contrario, la migración fallará.
Advertencias
Estas son algunas advertencias relacionadas con esta función.
ID específico de la empresa
En el caso de los perfiles de trabajo en Android 12 y versiones posteriores, el ID específico de la empresa, al que se puede acceder desde DevicePolicyManager.getEnrollmentSpecificId
, no cambia en el momento de la migración. Sin embargo, si se vuelve a crear un perfil de trabajo administrado por Android Device Policy en el dispositivo (por ejemplo, después de borrar el anterior o restablecer la configuración de fábrica del dispositivo), el ID específico de la empresa cambiará en ese momento.
Perfiles de trabajo en dispositivos completamente administrados
Esta función no es compatible con dispositivos completamente administrados que tengan un perfil de trabajo que ejecute Android 9 o 10. No se debe intentar migrar estos dispositivos y, independientemente de si se genera un error, estos dispositivos no son compatibles con la migración de DPC.