Di chuyển các thiết bị hiện có sang AMAPI

Các thiết bị đã được DPC tuỳ chỉnh của bạn quản lý có thể di chuyển sang Chính sách thiết bị Android (ADP) và tận dụng API Quản lý Android.

Điều kiện tiên quyết

  • Thiết bị này đã được quản lý bởi EMM của bạn bằng DPC tùy chỉnh.
  • DPC tuỳ chỉnh được tích hợp với SDK AMAPI.
  • Thiết bị đã được đăng ký bằng API EMM của Google Play.
  • Thiết bị này thuộc về một doanh nghiệp quản lý tài khoản Google Play.
  • Thiết bị chạy Android 9 trở lên.
  • Đối với hồ sơ công việc trên các thiết bị của công ty, thiết bị phải chạy Android 11 trở lên.

Tích hợp với SDK AMAPI trong DPC tuỳ chỉnh của bạn

Quá trình di chuyển yêu cầu ứng dụng DPC tuỳ chỉnh để tích hợp SDK AMAPI. Bạn có thể tìm thêm thông tin về thư viện này và cách thêm thư viện vào ứng dụng của mình trong hướng dẫn tích hợp SDK AMAPI.

Các bước để di chuyển thiết bị

  1. Thiết lập một chính sách mà thiết bị sử dụng sau khi di chuyển sang AMAPI. Để mang lại trải nghiệm tốt nhất cho người dùng, chính sách này phải tương đương với chính sách mà DPC đã thực thi trên thiết bị.
  2. Tạo mã di chuyển cho thiết bị bằng cách gọi enterprises.migrationTokens.create.
  3. Gửi value của mã thông báo di chuyển này tới DPC tuỳ chỉnh của bạn.
  4. Đảm bảo Android Device Policy được cài đặt trên thiết bị bằng cách sử dụng API Play EMM.
  5. Sử dụng DpcMigrationClientFactory để tạo DpcMigrationClient
  6. Trên DpcMigrationClient, hãy gọi phương thức migrateDeviceManagementToAndroidManagementApi. Thao tác này sẽ hoàn tất quá trình di chuyển.
  7. deviceState sẽ chuyển thành ACTIVE, đồng thời bạn sẽ nhận được thông báo STATUS_REPORT qua kênh Pub/Sub.

Sau khi di chuyển xong, ứng dụng gọi sẽ mất các đặc quyền của Chủ sở hữu thiết bị hoặc Chủ sở hữu hồ sơ vì các đặc quyền này được chuyển sang Android Device Policy.

Lưu ý:Thiết bị phải kết nối với Internet để bắt đầu quá trình di chuyển. Quy trình này được thiết kế để thích ứng với tình trạng ngắt kết nối mạng trong quá trình di chuyển, sao cho các thao tác chính yêu cầu kết nối mạng được thực hiện trước khi chuyển thực tế quyền của chủ sở hữu thiết bị hoặc chủ sở hữu hồ sơ từ DPC sang Android Device Policy.

Mã di chuyển

Máy chủ EMM yêu cầu mã thông báo di chuyển để báo hiệu ý định di chuyển một thiết bị cụ thể do DPC tuỳ chỉnh quản lý. Bạn có thể sử dụng mã di chuyển cho đến khi quá trình di chuyển hoàn tất hoặc cho đến khi hết hạn.

Tích hợp DPC tuỳ chỉnh

Trước tiên, bạn cần tạo một DpcMigrationRequest, truyền mã thông báo và nếu cần, hãy gửi danh sách mạng Wi-Fi đã định cấu hình đến trình tạo:

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

Sau đó, bạn có thể sử dụng nhận DpcMigrationClient và bắt đầu quá trình di chuyển bằng 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
}

Theo dõi tiến trình di chuyển

Quá trình di chuyển được theo dõi trên thiết bị thông qua DpcMigrationAttempt.

Bạn có thể trực tiếp sử dụng phương thức được migrateDeviceManagementToAndroidManagementApi trả về hoặc sử dụng các phương thức getMigrationAttemptlistMigrationAttempts để nhận và liệt kê các lượt di chuyển.

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

var attempt = client.getMigrationAttempt(request);

Bạn có thể tuỳ ý thiết lập DpcMigrationListener bằng NotificationReceiverService để theo dõi thông tin cập nhật trạng thái cho 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
  }
}

Xử lý mạng Wi-Fi

Nếu có mạng Wi-Fi do DPC tuỳ chỉnh quản lý, thì chính sách AMAPI ONC phải khớp với cấu hình của các mạng này để AMAPI bắt đầu quản lý các mạng đó một cách suôn sẻ. Khả năng tương tác của quá trình di chuyển DPC với tính năng quản lý Wi-Fi sẽ khác nhau tuỳ thuộc vào chế độ quản lý.

Hồ sơ công việc và thiết bị được quản lý hoàn toàn trên thiết bị thuộc quyền sở hữu của công ty

Trong quá trình di chuyển, Android Device Policy giả định rằng mọi mạng Wi-Fi được định cấu hình trong chính sách có cùng SSID và loại bảo mật của mạng Wi-Fi được định cấu hình trên thiết bị đều giống với mạng Wi-Fi đã định cấu hình tương ứng. Do đó, các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình sẽ không bị ảnh hưởng sau khi di chuyển cho đến khi có thay đổi trong chính sách ONC tương ứng với mạng. Tuy nhiên, nếu DPC tuỳ chỉnh bị gỡ cài đặt sau khi di chuyển, thì mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình sẽ tự động bị xoá. Android Device Policy tiếp tục thực thi chính sách và nếu bất kỳ mạng nào trong số này được định cấu hình trong chính sách, thì các mạng như đã định cấu hình trong chính sách sẽ được thêm như bình thường.

Hồ sơ công việc trên thiết bị cá nhân

Vì lý do kỹ thuật, các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình cần phải được DPC tuỳ chỉnh xoá cho Android Device Policy để bắt đầu quản lý các mạng Wi-Fi này. SDK AMAPI xử lý vấn đề này và xoá các mạng Wi-Fi như vậy trước khi chuyển quyền sở hữu từ DPC tuỳ chỉnh sang Android Device Policy. Tuy nhiên, DPC tuỳ chỉnh cần truyền thông tin về các mạng này vào DpcMigrationRequest. Sau khi di chuyển, các mạng được định cấu hình trong chính sách sẽ được thêm bình thường. Vì vậy, bạn cũng nên định cấu hình các mạng do DPC tuỳ chỉnh thêm vào trong chính sách.

Có một số điểm cần lưu ý:

  • Nếu mạng đang hoạt động là mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình, thì thiết bị có thể chuyển sang chế độ ngoại tuyến trong giây lát trong quá trình di chuyển.
  • Chỉ được chuyển các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình vào DpcMigrationRequest, nếu không, quá trình di chuyển sẽ không thành công nếu SDK AMAPI không thể xoá một mạng (ví dụ: mạng Wi-Fi do người dùng thêm).
  • Mạng Wi-Fi chỉ được truyền vào DpcMigrationRequest khi DPC tuỳ chỉnh là chủ sở hữu hồ sơ trên thiết bị thuộc sở hữu của cá nhân, nếu không, quá trình di chuyển sẽ không thành công.
  • Vì lý do kỹ thuật, Android 12 là một trường hợp ngoại lệ khi các mạng được truyền trong DpcMigrationRequest bị bỏ qua và tất cả các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình sẽ tự động bị xoá. Ngoài ra, DPC tuỳ chỉnh phải có quyền ACCESS_WIFI_STATE trên Android 12 cho các hồ sơ công việc trên các thiết bị của cá nhân, nếu không thì quá trình di chuyển sẽ không thành công.

Chú ý

Dưới đây là một số điểm cần lưu ý liên quan đến tính năng này.

Mã doanh nghiệp cụ thể

Đối với hồ sơ công việc trên Android 12 trở lên, mã nhận dạng dành riêng cho doanh nghiệp (có thể truy cập được từ DevicePolicyManager.getEnrollmentSpecificId) không thay đổi tại thời điểm di chuyển. Tuy nhiên, nếu hồ sơ công việc do Android Device Policy quản lý được tạo lại trên thiết bị (ví dụ: sau khi xoá hồ sơ trước đó hoặc sau khi đặt lại thiết bị về trạng thái ban đầu), thì mã nhận dạng dành riêng cho doanh nghiệp sẽ thay đổi tại thời điểm đó.

Hồ sơ công việc trên các thiết bị được quản lý đầy đủ

Tính năng này không được hỗ trợ trên các thiết bị được quản lý hoàn toàn có hồ sơ công việc chạy Android 9 hoặc 10. Bạn không được di chuyển các thiết bị này và bất kể lỗi có xảy ra hay không, các thiết bị đó đều không được hỗ trợ để di chuyển DPC.