Bạn có thể di chuyển các thiết bị đã được DPC tuỳ chỉnh quản lý sang Chính sách thiết bị Android (ADP) và tận dụng Android Management API.
Điều kiện tiên quyết
- Thiết bị đã được EMM quản lý bằng DPC tuỳ chỉnh.
- DPC tuỳ chỉnh của bạn đượ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ị thuộc về một Tập hợp Tài khoản Google Play có quản lý.
- Thiết bị chạy Android 9 trở lên.
- Trong trường hợp hồ sơ công việc trên thiết bị do công ty sở hữu, 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
Quy 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ị
- Thiết lập một chính sách mà thiết bị sẽ 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 của bạn đã thực thi trên thiết bị.
- Tạo mã thông báo di chuyển cho thiết bị bằng cách gọi
enterprises.migrationTokens.create
. - Gửi
value
của mã thông báo di chuyển này đến DPC tuỳ chỉnh. - Đảm bảo rằng Android Device Policy đã được cài đặt trên thiết bị bằng cách sử dụng Play EMM API.
- Sử dụng
DpcMigrationClientFactory
để tạoDpcMigrationClient
- Trên
DpcMigrationClient
, hãy gọi phương thứcmigrateDeviceManagementToAndroidManagementApi
. Quá trình di chuyển đã hoàn tất. deviceState
sẽ thay đổi thànhACTIVE
và bạn sẽ nhận được tin nhắnSTATUS_REPORT
thông 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ì các đặc quyền này được chuyển sang Android Device Policy. Quy trình này có thể được biểu thị bằng sơ đồ trình tự sau:
Lưu ý: Thiết bị phải được kết nối với Internet để bắt đầu di chuyển. Quy trình này được thiết kế để có khả năng chống chịu khi bị ngắt kết nối mạng trong quá trình di chuyển, nhờ đó, các thao tác chính cần kết nối mạng sẽ được thực hiện trước khi quá trình chuyển quyền sở hữu thiết bị hoặc quyền sở hữu hồ sơ từ DPC sang Chính sách thiết bị Android diễn 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ã thông báo di chuyển cho đến khi quá trình di chuyển hoàn tất hoặc cho đến khi mã thông báo 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 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 mã được migrateDeviceManagementToAndroidManagementApi
trả về hoặc sử dụng các phương thức getMigrationAttempt
và listMigrationAttempts
để lấy và liệt kê các lần 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 của 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 ONC của AMAPI 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 này một cách trơn tru. Sự tương tác của quá trình di chuyển DPC với hoạt độ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ý đầy đủ và hồ sơ công việc trên thiết bị do công ty sở hữu
Trong quá trình di chuyển, Chính sách thiết bị Android 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ị giống với mạng Wi-Fi đã định cấu hình phù hợp. 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 bạn gỡ cài đặt DPC tuỳ chỉnh 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 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 đượ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, DPC tuỳ chỉnh cần xoá các mạng Wi-Fi do DPC tuỳ chỉnh định cấu hình để Android Device Policy bắt đầu quản lý các mạng Wi-Fi này. SDK AMAPI sẽ xử lý vấn đề 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 Chính sách thiết bị Android, nhưng yêu cầu DPC tuỳ chỉnh phải 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 như 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 trong chính sách.
Bạn cần lưu ý một số điểm sau:
- 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ể tạm thời không có kết nối mạng trong quá trình di chuyển.
- Chỉ những mạng Wi-Fi được định cấu hình bằng DPC tuỳ chỉnh mới được truyền trong
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ạng (ví dụ: mạng Wi-Fi do người dùng thêm). - Bạn chỉ nên truyền mạng Wi-Fi trong
DpcMigrationRequest
khi DPC tuỳ chỉnh là chủ sở hữu hồ sơ trên thiết bị thuộc sở hữu 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ệ, trong đó các mạng được truyền trong
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 phải có quyềnACCESS_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á 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ố lưu ý liên quan đến tính năng này.
Mã nhận dạng 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 (có thể truy cập từ DevicePolicyManager.getEnrollmentSpecificId
) sẽ 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, bất kể có lỗi hay không, các thiết bị như vậy không được hỗ trợ di chuyển DPC.