Per i dispositivi già gestiti dal tuo DPC personalizzato è possibile eseguire la migrazione ad Android Device Policy (ADP) e sfruttare l'API Android Management.
Prerequisiti
- Il dispositivo è già gestito dal tuo provider EMM con un DPC personalizzato.
- Il DPC personalizzato è integrato con l'SDK AMAPI.
- Il dispositivo è registrato con l'API Google Play EMM.
- Il dispositivo appartiene a un account Google Play gestito per l'azienda.
- Il dispositivo deve avere Android 9 o versioni successive.
- In caso di profili di lavoro sui dispositivi di proprietà dell'azienda, il dispositivo deve eseguire Android 11 o versioni successive.
Eseguire l'integrazione con l'SDK AMAPI nel DPC personalizzato
La procedura di migrazione richiede che l'applicazione DPC personalizzata integri l'SDK AMAPI. Puoi trovare ulteriori informazioni su questa libreria e su come aggiungerla alla tua applicazione nella guida all'integrazione dell'SDK AMAPI.
Passaggi per eseguire la migrazione di un dispositivo
- Configura un criterio da utilizzare sul dispositivo dopo la migrazione a AMAPI. Per un'esperienza utente ottimale, questo dovrebbe essere equivalente alle norme già applicate sul dispositivo dal tuo DPC.
- Crea un token di migrazione per il dispositivo chiamando
enterprises.migrationTokens.create
. - Invia il
value
di questo token di migrazione al tuo DPC personalizzato. - Assicurati che Android Device Policy sia installato sul dispositivo utilizzando l'API Play EMM.
- Utilizza
DpcMigrationClientFactory
per creare unDpcMigrationClient
- In
DpcMigrationClient
, chiama il metodomigrateDeviceManagementToAndroidManagementApi
. La migrazione è completata. deviceState
diventaACTIVE
e riceverai un messaggioSTATUS_REPORT
tramite il canale Pub/Sub.
Al termine della migrazione, l'app di chiamata perde i privilegi di proprietario del dispositivo o del profilo, poiché vengono trasferiti ad Android Device Policy. Questa procedura può essere rappresentata dal seguente diagramma di sequenza:
Nota:per iniziare la migrazione, il dispositivo deve essere connesso a internet. Il processo è progettato per essere resiliente alle disconnessioni di rete durante il processo di migrazione, in modo che le operazioni chiave che richiedono la connettività di rete vengano eseguite prima del trasferimento effettivo dei diritti di proprietario del dispositivo o del profilo dal tuo DPC ad Android Device Policy.
Token di migrazione
Il server EMM richiede un token di migrazione per segnalare l'intenzione di eseguire la migrazione di un determinato dispositivo gestito da un DPC personalizzato. Un token di migrazione può essere utilizzato fino al completamento della migrazione o fino alla sua scadenza.
Integrazione DPC personalizzata
Innanzitutto, devi creare un DpcMigrationRequest
, passando al suo compilatore il token e, se necessario, l'elenco delle reti Wi-Fi configurate:
// Create a DpcMigrationRequest
DpcMigrationRequest request =
DpcMigrationRequest.builder()
.setMigrationToken(token)
.build();
Puoi quindi utilizzare un DpcMigrationClient
e avviare la procedura di migrazione 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
}
Monitorare l'avanzamento della migrazione
La procedura di migrazione viene monitorata sul dispositivo tramite un
DpcMigrationAttempt
.
Puoi utilizzare direttamente quello restituito da
migrateDeviceManagementToAndroidManagementApi
o utilizzare metodi
getMigrationAttempt
e listMigrationAttempts
per ottenere
e elencare i tentativi di migrazione.
// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();
var attempt = client.getMigrationAttempt(request);
Se vuoi, puoi configurare un DpcMigrationListener
utilizzando il tuo NotificationReceiverService
per ascoltare gli aggiornamenti dello stato del 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
}
}
Gestire le reti Wi-Fi
Se sono presenti reti Wi-Fi gestite dal DPC personalizzato, il criterio ONC AMAPI deve corrispondere alle configurazioni di queste reti affinché AMAPI possa iniziare a gestirle senza problemi. L'interazione della migrazione DPC con la gestione del Wi-Fi varia in base alla modalità di gestione.
Dispositivi completamente gestiti e profili di lavoro sui dispositivi di proprietà dell'azienda
Durante la migrazione, Android Device Policy presuppone che qualsiasi rete Wi-Fi configurata nel criterio che abbia lo stesso SSID e lo stesso tipo di sicurezza di una sulla rete Wi-Fi configurata sul dispositivo sia identica alla rete Wi-Fi configurata corrispondente. Di conseguenza, le reti Wi-Fi configurate tramite DPC personalizzato rimangono invariate dopo la migrazione finché non viene apportata una modifica al criterio ONC corrispondente alla rete. Tuttavia, se il DPC personalizzato viene disinstallato dopo la migrazione, le reti Wi-Fi configurate dal DPC personalizzato vengono rimosse automaticamente. Android Device Policy continua a applicare i criteri e, se una di queste reti è configurata nel criterio, le reti configurate nel criterio vengono aggiunte come di consueto.
Profilo di lavoro su un dispositivo personale
Per motivi tecnici, le reti Wi-Fi configurate dal criterio DPC personalizzato devono essere rimosse dal criterio DPC personalizzato affinché Android Device Policy possa iniziare a gestirle. L'SDK AMAPI si occupa di questo e rimuove queste reti Wi-Fi
prima di trasferire la proprietà dal PDC personalizzato a Android Device Policy
ma richiede che il PDC personalizzato trasmetta informazioni su queste reti in
DpcMigrationRequest
. Dopo la migrazione, le reti
configurate nel criterio verranno aggiunte normalmente, pertanto è consigliabile
che anche le reti aggiunte dal DPC personalizzato vengano configurate nel criterio.
Ecco alcuni punti da tenere presenti:
- Se la rete attiva è una rete Wi-Fi configurata da un DPC personalizzato, il dispositivo può essere brevemente offline durante la migrazione.
- Solo le reti Wi-Fi configurate dal DPC personalizzato devono essere passate in
DpcMigrationRequest
, altrimenti la migrazione non riesce se una rete non può essere rimossa dall'SDK AMAPI (ad es. rete Wi-Fi aggiunta dall'utente). - Le reti Wi-Fi devono essere passate in
DpcMigrationRequest
solo quando il DPC personalizzato è un proprietario del profilo su un dispositivo di proprietà personale, altrimenti la migrazione non va a buon fine. - Per motivi tecnici, Android 12 è un caso eccezionale in cui le reti comunicate in
DpcMigrationRequest
vengono ignorate e tutte le reti Wi-Fi configurate dal DPC personalizzato vengono rimosse automaticamente. Inoltre, è obbligatorio che il DPC personalizzato disponga dell'autorizzazioneACCESS_WIFI_STATE
su Android 12 per i profili di lavoro sui dispositivi di proprietà personale, altrimenti la migrazione non va a buon fine.
Avvertenze
Ecco alcune avvertenze relative a questa funzionalità.
ID specifico dell'azienda
Per i profili di lavoro su Android 12 e versioni successive, l'ID specifico dell'azienda,
a cui è possibile accedere da DevicePolicyManager.getEnrollmentSpecificId
non cambia al momento della migrazione. Tuttavia, se sul dispositivo viene creato di nuovo un profilo di lavoro gestito da Android Device Policy (ad esempio dopo aver eliminato quello precedente o dopo aver ripristinato i dati di fabbrica del dispositivo), l'ID specifico dell'azienda cambierà.
Profili di lavoro sui dispositivi completamente gestiti
Questa funzionalità non è supportata sui dispositivi completamente gestiti con un profilo di lavoro che eseguono Android 9 o 10. Non deve essere tentata la migrazione di questi dispositivi e, indipendentemente dal fatto che venga generato un errore, questi dispositivi non sono supportati per la migrazione DPC.