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ể được di chuyển sang Android Device Policy và tận dụng Android Management API.

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

  • Thiết bị đã được EMM của bạn quản lý bằng DPC tuỳ chỉnh.
  • DPC tuỳ chỉnh của bạn được tích hợp với AMAPI SDK.
  • Thiết bị đã đăng ký với API EMM của Google Play.
  • Thiết bị này thuộc về một doanh nghiệp có Tài khoản Google Play được quản lý.
  • Thiết bị chạy Android 9 trở lên.
  • Đối với hồ sơ công việc trên thiết bị thuộc quyền sở hữu 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

Quá trình di chuyển yêu cầu ứng dụng DPC tuỳ chỉnh tích hợp SDK AMD. 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 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 thiết bị di chuyển sang AMAPI. Để có trải nghiệm người dùng tốt nhất, chính sách này phải tương đương với chính sách mà DPC của bạn đã 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ã di chuyển này đến DPC tuỳ chỉnh của bạn.
  4. Đảm bảo bạn đã cài đặt Android Device Policy trên thiết bị bằng cách sử dụng API EMM của Play.
  5. Sử dụng DpcMigrationClientFactory để tạo một 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 thông báo STATUS_REPORT qua kênh Pub/Sub.

Sau khi quá trình di chuyển hoàn tất, ứ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ì 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 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, để 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 diễn ra quá trình chuyển thực sự 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ã di chuyển để báo hiệu ý định di chuyển một thiết bị cụ thể do một 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 thành công 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à danh sách mạng Wi-Fi đã định cấu hình cho trình tạo (nếu cần):

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

Sau đó, bạn có thể sử dụng 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 một DpcMigrationAttempt.

Bạn có thể trực tiếp sử dụng hàm do migrateDeviceManagementToAndroidManagementApi trả về hoặc dùng phương thức getMigrationAttemptlistMigrationAttempts để nhận và liệt kê các lần thử 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 cách sử dụ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 DPC tuỳ chỉnh quản lý các mạng Wi-Fi, 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ý suôn sẻ. Hoạt động tương tác trong 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ý.

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

Chú ý

Sau đây là một số cảnh báo liên quan đến tính năng này.

Mã dành riêng cho doanh nghiệp

Đố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 mà bạn có thể truy cập qua DevicePolicyManager.getEnrollmentSpecificId sẽ không thay đổi tại thời điểm di chuyển. Tuy nhiên, nếu một 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), 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ý toàn bộ có hồ sơ công việc chạy Android 9 hoặc 10. Bạn không được thử 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ị này đều không được hỗ trợ để di chuyển DPC.