คุณสามารถย้ายข้อมูลอุปกรณ์ที่ DPC ที่กำหนดเองจัดการอยู่แล้วไปยัง Android Device Policy (ADP) และใช้ประโยชน์จาก Android Management API ได้
ข้อกำหนดเบื้องต้น
- อุปกรณ์ได้รับการจัดการโดย EMM ของคุณด้วย DPC ที่กำหนดเองอยู่แล้ว
- DPC ที่กำหนดเองผสานรวมกับ AMAPI SDK
- อุปกรณ์ลงทะเบียนด้วย Google Play EMM API
- อุปกรณ์เป็นของกลุ่มบัญชี Managed Google Play สำหรับองค์กร
- อุปกรณ์ใช้ Android 9 ขึ้นไป
- ในกรณีของโปรไฟล์งานในอุปกรณ์ของบริษัท อุปกรณ์ต้องใช้ Android 11 ขึ้นไป
ผสานรวมกับ AMAPI SDK ใน DPC ที่กำหนดเอง
กระบวนการย้ายข้อมูลกำหนดให้แอปพลิเคชัน DPC ที่กำหนดเองต้องผสานรวม AMAPI SDK ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีนี้และวิธีเพิ่มลงในแอปพลิเคชันได้ในคู่มือการผสานรวม AMAPI SDK
ขั้นตอนการย้ายข้อมูลอุปกรณ์
- ตั้งค่านโยบายที่ต้องการให้อุปกรณ์ใช้หลังจากย้ายข้อมูลไปยัง AMAPI ทั้งนี้เพื่อประสบการณ์ของผู้ใช้ที่ดีที่สุด ค่านี้ควรเทียบเท่ากับนโยบายที่ DPC บังคับใช้ในอุปกรณ์อยู่แล้ว นโยบายใน AMAPI ต้อง เป็นขององค์กรเดียวกันกับที่อุปกรณ์เป็นสมาชิกอยู่แล้วใน Play EMM API โปรดทราบว่าองค์กรหนึ่งๆ จะมีชื่อเดียวกันทั้งใน AMAPI และ Play EMM API
- สร้างโทเค็นการย้ายข้อมูลสำหรับอุปกรณ์โดยเรียกใช้
enterprises.migrationTokens.create - ส่ง
valueของโทเค็นการย้ายข้อมูลนี้ไปยัง DPC ที่กำหนดเอง - ตรวจสอบว่าได้ติดตั้ง Android Device Policy ในอุปกรณ์โดยใช้ Play EMM API
- ใช้
DpcMigrationClientFactoryเพื่อสร้างDpcMigrationClient - ใน
DpcMigrationClientให้เรียกใช้เมธอดmigrateDeviceManagementToAndroidManagementApiซึ่งจะเป็นการเสร็จสิ้นการย้ายข้อมูล deviceStateจะเปลี่ยนเป็นACTIVEและคุณจะได้รับข้อความSTATUS_REPORTผ่านช่อง Pub/Sub
เมื่อการย้ายข้อมูลเสร็จสมบูรณ์ แอปโทรจะสูญเสียสิทธิ์ในฐานะเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ เนื่องจากสิทธิ์เหล่านี้จะโอนไปยัง Android Device Policy กระบวนการนี้แสดงได้ด้วยแผนภาพลำดับต่อไปนี้

หมายเหตุ: อุปกรณ์ต้องเชื่อมต่อกับอินเทอร์เน็ตเพื่อเริ่มการย้ายข้อมูล กระบวนการนี้ออกแบบมาให้ทนทานต่อการขาดการเชื่อมต่อเครือข่ายระหว่างกระบวนการ ย้ายข้อมูล เพื่อให้การดำเนินการที่สำคัญซึ่งต้องใช้การเชื่อมต่อเครือข่ายเสร็จสมบูรณ์ ก่อนที่จะมีการโอนสิทธิ์เจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์จาก DPC ไปยัง Android Device Policy จริง
โทเค็นการย้ายข้อมูล
เซิร์ฟเวอร์ EMM จะขอโทเค็นการย้ายข้อมูลเพื่อส่งสัญญาณความตั้งใจที่จะ ย้ายข้อมูลอุปกรณ์ที่เฉพาะเจาะจงซึ่งจัดการโดย DPC ที่กำหนดเอง โทเค็นการย้ายข้อมูล จะใช้ได้จนกว่าการย้ายข้อมูลจะเสร็จสมบูรณ์หรือจนกว่าจะหมดอายุ
การผสานรวม DPC ที่กำหนดเอง
ก่อนอื่นคุณต้องสร้าง DpcMigrationRequest โดยส่งโทเค็นและหากจำเป็น ให้ส่งรายการเครือข่าย Wi-Fi ที่กำหนดค่าไว้ไปยังตัวสร้าง
// Create a DpcMigrationRequest
DpcMigrationRequest request =
DpcMigrationRequest.builder()
.setMigrationToken(token)
.build();
จากนั้นคุณจะใช้DpcMigrationClient และเริ่มกระบวนการย้ายข้อมูลด้วย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
}
ตั้งค่า NotificationReceiverService และติดตามการย้ายข้อมูล
ใช้ NotificationReceiverService
ใน DPC ที่กำหนดเอง
ระบบจะติดตามกระบวนการย้ายข้อมูลในอุปกรณ์ผ่าน
DpcMigrationAttempt
คุณสามารถใช้รายการที่ได้จาก
migrateDeviceManagementToAndroidManagementApi โดยตรง หรือใช้เมธอด
getMigrationAttempt และ
listMigrationAttempts เพื่อรับและแสดงรายการ
ความพยายามในการย้ายข้อมูล
// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();
var attempt = client.getMigrationAttempt(request);
คุณเลือกตั้งค่า DpcMigrationListener โดยใช้NotificationReceiverService เพื่อฟังข้อมูลอัปเดตสถานะสำหรับ DpcMigrationAttempt ได้
// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
implements DpcMigrationListener {
@Override
protected DpcMigrationListener getDpcMigrationListener() {
return this;
}
@Override
public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
// send success feedback
}
}
จัดการเครือข่าย Wi-Fi
หากมีเครือข่าย Wi-Fi ที่ DPC ที่กำหนดเองจัดการ นโยบาย ONC ของ AMAPI ควรตรงกับการกำหนดค่าของเครือข่ายเหล่านี้เพื่อให้ AMAPI เริ่มจัดการเครือข่ายได้อย่างราบรื่น การโต้ตอบของการย้ายข้อมูล DPC กับการจัดการ Wi-Fi จะแตกต่างกันไป ขึ้นอยู่กับโหมดการจัดการ
อุปกรณ์ที่มีการจัดการครบวงจรและโปรไฟล์งานในอุปกรณ์ของบริษัท
ในระหว่างการย้ายข้อมูล Android Device Policy จะถือว่าเครือข่าย Wi-Fi ใดก็ตามที่กำหนดค่าไว้ในนโยบายซึ่งมี SSID และประเภทการรักษาความปลอดภัยเดียวกันกับเครือข่าย Wi-Fi ที่กำหนดค่าไว้ในอุปกรณ์จะเหมือนกับเครือข่าย Wi-Fi ที่กำหนดค่าไว้ที่ตรงกัน ดังนั้น ระบบจะไม่แตะต้องเครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเอง หลังจากการย้ายข้อมูลจนกว่าจะมีการเปลี่ยนแปลงนโยบาย ONC ที่สอดคล้องกับ เครือข่าย อย่างไรก็ตาม หากถอนการติดตั้ง DPC ที่กำหนดเองหลังจากย้ายข้อมูล ระบบจะนำเครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเองออกโดยอัตโนมัติ Android Device Policy จะบังคับใช้นโยบายต่อไป และหากมีการกำหนดค่าเครือข่ายเหล่านี้ในนโยบาย ระบบจะเพิ่มเครือข่ายตามที่กำหนดค่าไว้ในนโยบายตามปกติ
โปรไฟล์งานในอุปกรณ์ส่วนตัว
เนื่องด้วยเหตุผลทางเทคนิค DPC ที่กำหนดเองจึงต้องนำเครือข่าย Wi-Fi ที่กำหนดค่าออกเพื่อให้ Android Device Policy เริ่มจัดการเครือข่าย Wi-Fi เหล่านี้ได้ AMAPI SDK จะจัดการเรื่องนี้และนำเครือข่าย Wi-Fi ดังกล่าวออก ก่อนที่จะโอนสิทธิ์การเป็นเจ้าของจาก DPC ที่กำหนดเองไปยัง Android Device Policy แต่ต้องให้ DPC ที่กำหนดเองส่งข้อมูลเกี่ยวกับเครือข่ายเหล่านี้ใน DpcMigrationRequest หลังจากการย้ายข้อมูล ระบบจะเพิ่มเครือข่ายที่กำหนดค่าไว้ในนโยบายตามปกติ ดังนั้นเราขอแนะนำให้กำหนดค่าเครือข่ายที่ DPC ที่กำหนดเองเพิ่มไว้ในนโยบายด้วย
ข้อควรทราบมีดังนี้
- หากเครือข่ายที่ใช้งานอยู่เป็นเครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเอง อุปกรณ์อาจออฟไลน์ชั่วคราวระหว่างการย้ายข้อมูล
- เฉพาะเครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเองเท่านั้นที่ควรส่งใน
DpcMigrationRequestมิเช่นนั้นการย้ายข้อมูลจะล้มเหลวหาก AMAPI SDK นำเครือข่ายออกไม่ได้ (เช่น เครือข่าย Wi-Fi ที่ผู้ใช้เพิ่ม) - ควรส่งเครือข่าย Wi-Fi ใน
DpcMigrationRequestเฉพาะเมื่อ DPC ที่กำหนดเองเป็น เจ้าของโปรไฟล์ในอุปกรณ์ส่วนตัว มิฉะนั้นการย้ายข้อมูลจะล้มเหลว - เนื่องด้วยเหตุผลทางเทคนิค Android 12 จึงเป็นกรณีพิเศษที่ระบบจะไม่สนใจเครือข่าย
ที่ส่งใน
DpcMigrationRequestและจะนำเครือข่าย Wi-Fi ทั้งหมดที่กำหนดค่าโดย DPC ที่กำหนดเองออกโดยอัตโนมัติ นอกจากนี้ DPC ที่กำหนดเองต้องมีสิทธิ์ACCESS_WIFI_STATEใน Android 12 สำหรับโปรไฟล์งานในอุปกรณ์ส่วนตัว ไม่เช่นนั้นการย้ายข้อมูลจะล้มเหลว
คำเตือน
ข้อควรระวังบางประการเกี่ยวกับฟีเจอร์นี้มีดังนี้
รหัสเฉพาะสำหรับองค์กร
สำหรับโปรไฟล์งานใน Android 12 ขึ้นไป รหัสเฉพาะองค์กร
ซึ่งเข้าถึงได้จาก DevicePolicyManager.getEnrollmentSpecificId
จะไม่เปลี่ยนแปลงในขณะที่ย้ายข้อมูล อย่างไรก็ตาม หากมีการสร้างโปรไฟล์งานที่จัดการ
โดย Android Device Policy อีกครั้งในอุปกรณ์ (เช่น หลังจาก
ลบโปรไฟล์ก่อนหน้าหรือหลังจากรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น) รหัสเฉพาะองค์กร
จะเปลี่ยนไป ณ จุดนั้น
โปรไฟล์งานในอุปกรณ์ที่มีการจัดการเต็มรูปแบบ
ฟีเจอร์นี้ไม่รองรับในอุปกรณ์ที่มีการจัดการครบวงจรซึ่งมีโปรไฟล์งานที่ใช้ Android 9 หรือ 10 ห้ามพยายามย้ายข้อมูลอุปกรณ์เหล่านี้ และไม่ว่าระบบจะแสดงข้อผิดพลาดหรือไม่ก็ตาม อุปกรณ์ดังกล่าวจะไม่รองรับการย้ายข้อมูล DPC
คำสั่ง RESET_PASSWORD
หากอุปกรณ์มีรหัสผ่านหน้าจอล็อก RESET_PASSWORDคำสั่ง
จะสำเร็จหลังจากที่ผู้ใช้ยืนยันข้อมูลเข้าสู่ระบบ
(เช่น ป้อน PIN อีกครั้ง) หลังจากการย้ายข้อมูล หากอุปกรณ์ไม่มีรหัสผ่านหน้าจอ
ล็อก คุณจะใช้คำสั่ง RESET_PASSWORD ได้ทันทีหลังจาก
การย้ายข้อมูล