Przeprowadź migrację istniejących urządzeń do AMAPI

Urządzenia już zarządzane przez niestandardowy DPC można przenieść do zasad Android Device Policy (ADP) i korzystać z interfejsu Android Management API.

Wymagania wstępne

  • Urządzenie jest już zarządzane przez dostawcę usług EMM przy użyciu niestandardowego modelu DPC.
  • Niestandardowy DPC jest zintegrowany z pakietem SDK AMAPI.
  • Urządzenie jest zarejestrowane przy użyciu interfejsu Google Play EMM API.
  • Urządzenie należy do grupy kont zarządzanego Sklepu Google Play.
  • Na urządzeniu jest zainstalowany Android 9 lub nowszy.
  • W przypadku profili służbowych na urządzeniach należących do firmy muszą one mieć system Android 11 lub nowszy.

Integracja z pakietem SDK AMAPI w niestandardowym modelu DPC

Proces migracji wymaga, aby niestandardowa aplikacja DPC zintegrowała pakiet SDK AMAPI. Więcej informacji o tej bibliotece i dodawaniu jej do aplikacji znajdziesz w przewodniku po integracji pakietu AMAPI SDK.

Procedura migracji urządzenia

  1. Skonfiguruj zasadę, która będzie stosowana przez urządzenie po jego migracji do AMAPI. Aby zadbać o jak najlepsze wrażenia użytkowników, powinno to być równoważne z zasadą już wymuszoną na urządzeniu przez DPC.
  2. Utwórz token migracji dla urządzenia, wywołując metodę enterprises.migrationTokens.create.
  3. Wyślij value tego tokena migracji do niestandardowego modelu DPC.
  4. Użyj Play EMM API, aby upewnić się, że na urządzeniu jest zainstalowana aplikacja Android Device Policy.
  5. Użyj narzędzia DpcMigrationClientFactory, aby utworzyć DpcMigrationClient
  6. W DpcMigrationClient wywołaj metodę migrateDeviceManagementToAndroidManagementApi. Spowoduje to zakończenie migracji.
  7. deviceState zmieni się w ACTIVE i otrzymasz wiadomość STATUS_REPORT przez kanał Pub/Sub.

Po zakończeniu migracji aplikacja do połączeń traci uprawnienia właściciela urządzenia lub właściciela profilu, ponieważ są one przenoszone do Android Device Policy.

Uwaga: aby można było rozpocząć migrację, urządzenie musi być połączone z internetem. Proces ten ma zapewnić odporność na rozłączenie z siecią podczas migracji, dzięki czemu najważniejsze operacje wymagające połączenia sieciowego są wykonywane przed rzeczywistym przeniesieniem praw właściciela urządzenia lub właściciela profilu z DPC do Android Device Policy.

Token migracji

Serwer EMM żąda tokena migracji, aby zasygnalizować zamiar migracji określonego urządzenia zarządzanego przez niestandardowy DPC. Token migracji może być używany do momentu zakończenia migracji lub jej wygaśnięcia.

Niestandardowa integracja z DPC

Najpierw musisz utworzyć DpcMigrationRequest, przekazać token i, jeśli to konieczne, listę skonfigurowanych sieci Wi-Fi do kreatora:

// Create a DpcMigrationRequest
DpcMigrationRequest request =
        DpcMigrationRequest.builder()
            .setMigrationToken(token)
            .build();

Następnie możesz użyć DpcMigrationClient i rozpocząć proces migracji za pomocą 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
}

Śledzenie postępu migracji

Proces migracji jest śledzony na urządzeniu za pomocą narzędzia DpcMigrationAttempt.

Możesz użyć metody zwróconej przez migrateDeviceManagementToAndroidManagementApi lub metod getMigrationAttempt i listMigrationAttempts, aby pobrać i wyświetlić listę prób migracji.

// Passing an empty name, we retrieve the last attempt 
var request = GetDpcMigrationAttemptRequest.builder().build();

var attempt = client.getMigrationAttempt(request);

Opcjonalnie możesz skonfigurować DpcMigrationListener za pomocą NotificationReceiverService, aby nasłuchiwać aktualizacji stanu 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
  }
}

Obsługa sieci Wi-Fi

Jeśli istnieją sieci Wi-Fi zarządzane przez niestandardowy DPC, zasada AMAPI ONC powinna pasować do konfiguracji tych sieci, aby AMAPI mógł nimi płynnie zarządzać. Interakcja migracji DPC z zarządzaniem Wi-Fi zależy od trybu zarządzania.

W pełni zarządzane urządzenia i profile służbowe na urządzeniach należących do firmy

Podczas migracji Android Device Policy zakłada, że każda sieć Wi-Fi skonfigurowana w zasadach ma ten sam identyfikator SSID i typ zabezpieczeń co skonfigurowanej sieci Wi-Fi na urządzeniu, jest identyczna z dopasowaną skonfigurowaną siecią Wi-Fi. Dlatego po migracji sieci Wi-Fi skonfigurowane przez niestandardowy DPC pozostają niezmienione, dopóki nie nastąpi zmiana w zasadzie ONC odpowiadającej sieci. Jeśli jednak niestandardowy DPC zostanie odinstalowany po migracji, sieci Wi-Fi skonfigurowane przez niego zostaną automatycznie usunięte. Android Device Policy nadal egzekwuje zasady, a jeśli któraś z tych sieci jest skonfigurowana w zasadzie, sieci skonfigurowane w zasadzie są dodawane jako zwykłe.

Profil służbowy na urządzeniu osobistym

Z przyczyn technicznych sieci Wi-Fi skonfigurowane przez niestandardowy DPC muszą zostać usunięte przez niestandardowy DPC dla Android Device Policy, aby zacząć zarządzać tymi sieciami. Pakiet AMAPI SDK zajmuje się tym zadaniem i usuwa takie sieci Wi-Fi przed przeniesieniem własności z niestandardowego DPC do Android Device Policy, ale wymaga, aby niestandardowy DPC przekazywał informacje o tych sieciach w DpcMigrationRequest. Po migracji sieci skonfigurowane w zasadzie zostaną dodane normalnie, dlatego zalecamy skonfigurowanie w zasadach także sieci dodanych przez niestandardowy DPC.

Pamiętaj o tych kwestiach:

  • Jeśli aktywna jest sieć Wi-Fi skonfigurowana przez niestandardowy DPC, podczas migracji urządzenie może być na krótko offline.
  • W DpcMigrationRequest należy przekazywać tylko sieci Wi-Fi skonfigurowane przez niestandardowy DPC.W przeciwnym razie migracja zakończy się niepowodzeniem, jeśli pakiet SDK AMAPI nie może usunąć sieci (np. sieć Wi-Fi dodana przez użytkownika).
  • Sieci Wi-Fi powinny być przekazywane w DpcMigrationRequest tylko wtedy, gdy niestandardowy DPC jest właścicielem profilu na prywatnym urządzeniu. W przeciwnym razie migracja się nie powiedzie.
  • Ze względów technicznych Android 12 to wyjątkowy przypadek, w którym sieci przekazywane w DpcMigrationRequest są ignorowane, a wszystkie sieci Wi-Fi skonfigurowane przez niestandardowy DPC są usuwane automatycznie. Dodatkowo niestandardowy DPC musi mieć na Androidzie 12 uprawnienia ACCESS_WIFI_STATE w przypadku profili służbowych na urządzeniach prywatnych. W przeciwnym razie migracja się nie powiedzie.

Zastrzeżenia

Oto kilka zastrzeżeń dotyczących tej funkcji.

Identyfikator firmowy

W przypadku profili służbowych na Androidzie 12 i nowszych identyfikator firmy, do którego można uzyskać dostęp w DevicePolicyManager.getEnrollmentSpecificId, nie zmienia się podczas migracji. Jeśli jednak na urządzeniu zostanie ponownie utworzony profil służbowy zarządzany przez Android Device Policy (na przykład po usunięciu poprzedniego profilu lub po przywróceniu na nim ustawień fabrycznych), identyfikator firmowy ulegnie zmianie.

Profile służbowe na w pełni zarządzanych urządzeniach

Ta funkcja nie jest obsługiwana na w pełni zarządzanych urządzeniach z profilem służbowym i Androidem 9 lub 10. Nie należy podejmować prób przeniesienia tych urządzeń. Niezależnie od tego, czy wystąpi błąd, takie urządzenia nie są obsługiwane w przypadku migracji DPC.