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ị
- 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ị.
- Tạo mã 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 cho DPC tuỳ chỉnh của bạn. - Đả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.
- Sử dụng
DpcMigrationClientFactory
để tạoDpcMigrationClient
- Trên
DpcMigrationClient
, hãy gọi phương thứcmigrateDeviceManagementToAndroidManagementApi
. Thao tác này sẽ hoàn tất quá trình di chuyển. deviceState
sẽ chuyển thànhACTIVE
, và bạn sẽ nhận đượcSTATUS_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
getMigrationAttempt
và listMigrationAttempts
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.