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

Các thiết bị đã được quản lý bằng DPC tuỳ chỉnh của bạn có thể được di chuyển sang Thiết bị Android Chính sách 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 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 cho ứng dụng của bạn 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ẽ sử dụng sau khi di chuyển cho 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 đã được 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 cho 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 EMM của Play.
  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, và bạn sẽ nhận được STATUS_REPORT qua kênh Pub/Sub.

Sau khi di chuyển xong, ứng dụng gọi điện sẽ mất Chủ sở hữu thiết bị hoặc Hồ sơ Đặc quyền của chủ sở hữu vì những đặ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 sự cố ngắt kết nối mạng trong quá trình di chuyển, để các hoạt động chính yêu cầu kết nối mạng được thực hiện trước khi chuyển quyền sở hữu thiết bị hoặc quyền chủ sở hữu hồ sơ thực tế từ DPC đến Android Device Policy sẽ xảy ra.

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, danh sách các mạng Wi-Fi đã định cấu hình cho trình tạo:

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

Sau đó, bạn có thể sử dụng tính năng nhận DpcMigrationClient và bắt đầu quá trình di chuyển với 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 giá trị được trả về bởi migrateDeviceManagementToAndroidManagementApi hoặc sử dụng getMigrationAttemptlistMigrationAttempts phương thức để tải và danh sách của bạ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 cách sử dụng NotificationReceiverService của bạn, để nghe các bản 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ý, hãy tham khảo 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 có thể bắt đầu quản lý chúng suôn sẻ. Sự 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 bất kỳ mạng Wi-Fi nào đượ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 đã định cấu hình trên thiết bị giống với mạng Wi-Fi đã định cấu hình Mạng Wi-Fi. Do đó, các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình không bị ảnh hưởng cho đến khi có thay đổi về 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 sẽ tiếp tục thực thi chính sách và nếu có bất kỳ mạng nào trong số này được định cấu hình trong chính sách, các mạng như đã định cấu hình trong chính sách sẽ được thêm dưới dạng thông thường.

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

Vì lý do kỹ thuật, mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình cần phải bị DPC tuỳ chỉnh xoá cho Android Device Policy để bắt đầu quản lý những Mạng Wi-Fi. 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 nhưng phương thức này yêu cầu DPC tuỳ chỉnh truyền thông tin về các mạng này 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 nên các mạng do DPC tuỳ chỉnh thêm vào cũng phải được định cấu hình 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 được định cấu hình bởi DPC tuỳ chỉnh, thiết bị có thể không có kết nối mạng trong một khoảng thời gian ngắn trong quá trình di chuyển.
  • Chỉ các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình mới được chuyển vào DpcMigrationRequest, nếu không, quá trình di chuyển sẽ không thành công nếu không thể xoá mạng bằng SDK AMAPI (ví dụ: mạng Wi-Fi do người dùng thêm).
  • Mạng Wi-Fi phải được truyền vào DpcMigrationRequest chỉ 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 thì di chuyển 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 mạng đã truyền vào DpcMigrationRequest sẽ bị bỏ qua và tất cả Wi-Fi các mạng do DPC tuỳ chỉnh định cấu hình sẽ bị xoá tự động. Hơn nữa, việc này là yêu cầu để DPC tuỳ chỉnh có ACCESS_WIFI_STATE quyền trên Android 12 đối với hồ sơ công việc trên thiết bị của cá nhân, nếu không, 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, hãy xem mã nhận dạng dành riêng cho doanh nghiệp, Bạn có thể truy cập vào đường liên kết này 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ý sẽ được tạo lại trên thiết bị (ví dụ: sau khi xoá thiết bị trước đó hoặc sau khi đặt lại thiết bị về trạng thái ban đầu), 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ó công việc hồ sơ người dùng chạy Android 9 hoặc 10. Bạn không được thử di chuyển những thiết bị này, và bất kể lỗi có xảy ra hay không, các thiết bị này đều không được hỗ trợ để di chuyển DPC.