Memigrasikan perangkat yang ada ke AMAPI

Perangkat yang sudah dikelola oleh DPC kustom Anda dapat dimigrasikan ke Android Device Policy (ADP) dan memanfaatkan Android Management API.

Prasyarat

  • Perangkat sudah dikelola oleh EMM Anda dengan DPC kustom.
  • DPC kustom Anda terintegrasi dengan AMAPI SDK.
  • Perangkat terdaftar dengan Google Play EMM API.
  • Perangkat ini termasuk dalam Akun Google Play perusahaan terkelola.
  • Perangkat menjalankan Android 9 atau yang lebih baru.
  • Jika menggunakan profil kerja di perangkat milik perusahaan, perangkat harus menjalankan Android 11 atau yang lebih baru.

Mengintegrasikan dengan AMAPI SDK di DPC kustom Anda

Proses migrasi mengharuskan aplikasi DPC kustom mengintegrasikan SDK AMAPI. Anda dapat menemukan informasi selengkapnya tentang library ini dan cara menambahkannya ke aplikasi Anda dalam panduan integrasi AMAPI SDK.

Langkah-langkah untuk memigrasikan perangkat

  1. Siapkan kebijakan yang akan digunakan oleh perangkat setelah dimigrasikan ke AMAPI. Untuk pengalaman pengguna terbaik, hal ini harus setara dengan kebijakan yang sudah diterapkan di perangkat oleh DPC Anda. Kebijakan di AMAPI harus milik perusahaan yang sama dengan perusahaan tempat perangkat sudah tergabung di Play EMM API. Perhatikan bahwa perusahaan tertentu memiliki nama yang sama di AMAPI dan Play EMM API.
  2. Buat token migrasi untuk perangkat dengan memanggil enterprises.migrationTokens.create.
  3. Kirim value token migrasi ini ke DPC kustom Anda.
  4. Pastikan Android Device Policy diinstal di perangkat menggunakan Play EMM API.
  5. Gunakan DpcMigrationClientFactory untuk membuat DpcMigrationClient
  6. Di DpcMigrationClient, panggil metode migrateDeviceManagementToAndroidManagementApi. Tindakan ini akan menyelesaikan migrasi.
  7. deviceState berubah menjadi ACTIVE, dan Anda akan menerima pesan STATUS_REPORT melalui saluran Pub/Sub.

Setelah migrasi selesai, aplikasi yang memanggil akan kehilangan hak istimewa Pemilik Perangkat atau Pemilik Profil, karena hak istimewa ini ditransfer ke Android Device Policy. Proses ini dapat diwakili oleh diagram urutan berikut:

Diagram urutan Migrasi DPC

Catatan: Perangkat harus terhubung ke internet untuk memulai migrasi. Proses ini dirancang agar tetap berjalan meskipun terjadi pemutusan koneksi jaringan selama proses migrasi, sehingga operasi utama yang memerlukan konektivitas jaringan dilakukan sebelum transfer sebenarnya hak pemilik perangkat atau pemilik profil dari DPC Anda ke Android Device Policy terjadi.

Token migrasi

Token migrasi diminta oleh server EMM untuk menandakan niat memigrasikan perangkat tertentu yang dikelola oleh DPC kustom. Token migrasi dapat digunakan hingga migrasi berhasil diselesaikan atau hingga masa berlakunya berakhir.

Integrasi DPC kustom

Pertama, Anda perlu membuat DpcMigrationRequest, meneruskan token, dan jika perlu, daftar jaringan Wi-Fi yang dikonfigurasi ke pembangunnya:

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

Kemudian, Anda dapat menggunakan DpcMigrationClient dan memulai proses migrasi dengan 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
}

Menyiapkan NotificationReceiverService dan melacak migrasi

Terapkan NotificationReceiverService di DPC kustom Anda.

Proses migrasi dilacak di perangkat melalui DpcMigrationAttempt.

Anda dapat langsung menggunakan yang ditampilkan oleh migrateDeviceManagementToAndroidManagementApi atau menggunakan metode getMigrationAttempt dan listMigrationAttempts untuk mendapatkan dan mencantumkan upaya migrasi.

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

var attempt = client.getMigrationAttempt(request);

Anda dapat secara opsional menyiapkan DpcMigrationListener menggunakan NotificationReceiverService Anda, untuk memproses update status untuk DpcMigrationAttempt.

// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
    implements DpcMigrationListener {

  @Override
  protected DpcMigrationListener getDpcMigrationListener() {
    return this;
  }

  @Override
  public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
    // send success feedback
  }
}

Menangani jaringan Wi-Fi

Jika ada jaringan Wi-Fi yang dikelola oleh DPC kustom, kebijakan ONC AMAPI harus cocok dengan konfigurasi jaringan ini agar AMAPI dapat mulai mengelolanya dengan lancar. Interaksi migrasi DPC dengan pengelolaan Wi-Fi bervariasi bergantung pada mode pengelolaan.

Perangkat yang terkelola sepenuhnya dan profil kerja di perangkat milik perusahaan

Selama migrasi, Kebijakan Perangkat Android mengasumsikan bahwa setiap jaringan Wi-Fi yang dikonfigurasi dalam kebijakan yang memiliki SSID dan jenis keamanan yang sama dengan jaringan Wi-Fi yang dikonfigurasi di perangkat identik dengan jaringan Wi-Fi yang dikonfigurasi yang cocok. Oleh karena itu, jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom tidak akan terpengaruh setelah migrasi hingga ada perubahan dalam kebijakan ONC yang sesuai dengan jaringan. Namun, jika DPC kustom di-uninstal setelah migrasi, maka jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom akan dihapus secara otomatis. Kebijakan Perangkat Android terus menerapkan kebijakan, dan jika salah satu jaringan ini dikonfigurasi dalam kebijakan, jaringan yang dikonfigurasi dalam kebijakan akan ditambahkan seperti biasa.

Profil kerja di perangkat pribadi

Karena alasan teknis, jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom harus dihapus oleh DPC kustom agar Android Device Policy dapat mulai mengelola jaringan Wi-Fi ini. AMAPI SDK menangani hal ini dan menghapus jaringan Wi-Fi tersebut sebelum mentransfer kepemilikan dari DPC kustom ke Android Device Policy tetapi memerlukan DPC kustom untuk meneruskan informasi tentang jaringan ini di DpcMigrationRequest. Setelah migrasi, jaringan yang dikonfigurasi dalam kebijakan akan ditambahkan secara normal, jadi sebaiknya jaringan yang ditambahkan oleh DPC kustom juga dikonfigurasi dalam kebijakan.

Ada beberapa hal yang perlu diperhatikan:

  • Jika jaringan aktif adalah jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom, perangkat dapat offline sebentar selama migrasi.
  • Hanya jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom yang boleh diteruskan di DpcMigrationRequest, jika tidak, migrasi akan gagal jika jaringan tidak dapat dihapus oleh AMAPI SDK (misalnya, jaringan Wi-Fi yang ditambahkan pengguna).
  • Jaringan Wi-Fi harus diteruskan di DpcMigrationRequest hanya jika DPC kustom adalah pemilik profil di perangkat milik pribadi, jika tidak, migrasi akan gagal.
  • Karena alasan teknis, Android 12 adalah kasus luar biasa di mana jaringan yang diteruskan di DpcMigrationRequest diabaikan dan semua jaringan Wi-Fi yang dikonfigurasi oleh DPC kustom dihapus secara otomatis. Selain itu, DPC kustom harus memiliki izin ACCESS_WIFI_STATE di Android 12 untuk profil kerja di perangkat milik pribadi, jika tidak, migrasi akan gagal.

Peringatan

Berikut beberapa peringatan terkait fitur ini.

ID khusus perusahaan

Untuk profil kerja di Android 12 dan yang lebih baru, ID khusus perusahaan, yang dapat diakses dari DevicePolicyManager.getEnrollmentSpecificId tidak berubah pada saat migrasi. Namun, jika profil kerja yang dikelola oleh Android Device Policy dibuat lagi di perangkat (misalnya setelah menghapus profil kerja sebelumnya atau setelah mereset perangkat ke setelan pabrik), ID khusus perusahaan akan berubah pada saat itu.

Profil kerja pada perangkat yang terkelola sepenuhnya

Fitur ini tidak didukung di perangkat terkelola sepenuhnya yang memiliki profil kerja yang menjalankan Android 9 atau 10. Migrasi perangkat ini tidak boleh dicoba, dan terlepas dari apakah error muncul atau tidak, perangkat tersebut tidak didukung untuk migrasi DPC.

Perintah RESET_PASSWORD

Jika perangkat memiliki sandi layar kunci, perintah RESET_PASSWORD hanya akan berhasil setelah pengguna mengonfirmasi kredensialnya (misalnya, memasukkan kembali PIN) setelah migrasi. Jika perangkat tidak memiliki sandi layar kunci, perintah RESET_PASSWORD dapat digunakan tepat setelah migrasi.