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

Urządzenia zarządzane już przez Twoją niestandardową DPC można przenieść do Android Device Policy i korzystać z interfejsu Android Management API.

Uwaga: ten proces jest niezrozumiały dla użytkowników. To proces jednokierunkowy (nie można go cofnąć po zakończeniu) i nie można go użyć do przeniesienia urządzenia z jednego dostawcy usług EMM do innego.

Wymagania wstępne

  • Urządzenie jest już zarządzane przez dostawcę usług EMM za pomocą niestandardowej jednostki DPC.
  • Twój niestandardowy kontroler DPC jest zintegrowany z pakietem SDK AMAPI.
  • Urządzenie jest zarejestrowane w interfejsie 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 musi być zainstalowany Android 11 lub nowszy.

Integracja z pakietem SDK AMAPI w niestandardowym DPC

Proces migracji wymaga użycia niestandardowej aplikacji DPC do integracji pakietu SDK AMAPI. Więcej informacji o tej bibliotece i sposobie jej dodawania do aplikacji znajdziesz w przewodniku po integracji pakietu SDK AMAPI.

Uwaga: ten proces wymaga biblioteki pakietu AMAPI w wersji 1.1.4 lub nowszej.

Procedura migracji urządzenia

  1. Skonfiguruj zasadę, która będzie używana przez urządzenie po jego przeniesieniu do AMAPI. Aby zadbać o wygodę użytkowników, powinno to być odpowiednik zasady narzuconej na urządzeniu przez kontroler DPC.
  2. Utwórz token migracji dla urządzenia, wywołując metodę enterprises.migrationTokens.create.
  3. Wyślij value tego tokena migracji do niestandardowej jednostki DPC.
  4. Za pomocą interfejsu Play EMM API upewnij się, że na urządzeniu jest zainstalowana aplikacja Android Device Policy.
  5. Użyj DpcMigrationClientFactory, aby utworzyć DpcMigrationClient
  6. W DpcMigrationClient wywołaj metodę migrateDeviceManagementToAndroidManagementApi. Migracja się zakończy.
  7. deviceState zmieni się na ACTIVE. Otrzymasz też wiadomość STATUS_REPORT w kanale Pub/Sub.

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

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

Token migracji

Serwer EMM prosi o token migracji, aby zasygnalizować zamiar przeniesienia konkretnego urządzenia zarządzanego przez niestandardowy kontroler DPC. Token migracji może być używany do czasu ukończenia migracji lub do wygaśnięcia jej ważności.

Niestandardowa integracja DPC

Najpierw musisz utworzyć DpcMigrationRequest, przekazać token, a w razie potrzeby również listę skonfigurowanych sieci Wi-Fi do jego kreatora:

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

Następnie możesz użyć DpcMigrationClient i rozpocząć proces migracji przy użyciu migrateDeviceManagementToAndroidManagementApi:

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper functiong 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 monitorowany na urządzeniu za pomocą DpcMigrationAttempt.

Aby pobrać i wyświetlić próby migracji, możesz bezpośrednio użyć metody zwróconej przez migrateDeviceManagementToAndroidManagementApi lub metod getMigrationAttempt i listMigrationAttempts.

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

var attempt = client.getMigrationAttempt(request);

Opcjonalnie możesz skonfigurować DpcMigrationListener przy użyciu 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 niestandardową kartę DPC, zasada AMAPI ONC powinna pasować do ich konfiguracji, aby umożliwić AMAPI płynne zarządzanie nimi. Interakcja migracji DPC z zarządzaniem Wi-Fi różni się w zależności 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, która ma ten sam identyfikator SSID i typ zabezpieczeń skonfigurowanej sieci Wi-Fi na urządzeniu, jest identyczna ze skonfigurowaną siecią Wi-Fi. Dlatego po migracji sieci Wi-Fi skonfigurowane przez niestandardową kartę DPC pozostają niezmienione, dopóki nie zmieni się zasada ONC odpowiadająca sieci. Jeśli jednak niestandardowa konfiguracja DPC zostanie odinstalowana po migracji, sieci Wi-Fi skonfigurowane przez niestandardową wersję DPC zostaną automatycznie usunięte. Android Device Policy nadal egzekwuje zasady, a jeśli któraś z tych sieci jest skonfigurowana w zasadach, sieci skonfigurowane w zasadzie są dodawane jako zwykłe.

Profil służbowy na urządzeniu osobistym

Ze względów technicznych sieci Wi-Fi skonfigurowane przez niestandardową kartę DPC muszą zostać usunięte przez niestandardową kontrolę DPC, aby Android Device Policy mógł zarządzać tymi sieciami Wi-Fi. Zajmuje się tym pakiet SDK AMAPI i usuwa takie sieci Wi-Fi przed przeniesieniem własności z niestandardowej konsoli DPC do Android Device Policy. Wymaga jednak, aby niestandardowy pakiet DPC przekazywał informacje o tych sieciach w DpcMigrationRequest. Po migracji sieci skonfigurowane w zasadach będą dodawane normalnie, dlatego zalecamy skonfigurowanie w tej zasadzie sieci dodanych przez niestandardową kartę DPC.

Pamiętaj o tych kwestiach:

  • Jeśli aktywną siecią jest sieć Wi-Fi skonfigurowana przez niestandardową kartę DPC, podczas migracji urządzenie może przez chwilę być w trybie offline.
  • W narzędziu DpcMigrationRequest powinny być przekazywane tylko sieci Wi-Fi skonfigurowane przez niestandardową kartę DPC.W przeciwnym razie migracja nie powiedzie się, jeśli nie można usunąć sieci za pomocą pakietu AMAPI (np. sieci Wi-Fi dodanej przez użytkownika).
  • Sieci Wi-Fi powinny być przekazywane w DpcMigrationRequest tylko wtedy, gdy niestandardowa jednostka DPC jest właścicielem profilu na urządzeniu należącym do Ciebie. 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 niestandardową kartę DPC są automatycznie usuwane. Poza tym niestandardowa jednostka DPC musi mieć na Androidzie 12 uprawnienie ACCESS_WIFI_STATE do obsługi profili służbowych na urządzeniach należących do firmy. W przeciwnym razie migracja się nie powiedzie.

Zastrzeżenia

Oto kilka zastrzeżeń związanych z tą funkcją.

Identyfikator właściwy dla firmy

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 lub przywróceniu urządzenia do ustawień fabrycznych), identyfikator firmy zmieni się w tym momencie.

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, które mają profil służbowy z Androidem 9 lub 10. Nie należy podejmować prób migracji tych urządzeń. Migracja DPC nie jest obsługiwana w przypadku takich urządzeń, niezależnie od tego, czy wystąpi błąd.