คุณสามารถย้ายข้อมูลอุปกรณ์ที่จัดการโดย 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 บังคับใช้ในอุปกรณ์อยู่แล้ว
- สร้างโทเค็นการย้ายข้อมูลสำหรับอุปกรณ์โดยการเรียกใช้
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
}
ติดตามความคืบหน้าของการย้ายข้อมูล
ระบบจะติดตามกระบวนการย้ายข้อมูลในอุปกรณ์ผ่านDpcMigrationAttempt
คุณสามารถใช้ URL ที่แสดงผลโดย 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() {
// getDpcMigrationListener"
return this;
}
@Override
public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
// send success feedback
}
}
จัดการเครือข่าย Wi-Fi
หากมีเครือข่าย Wi-Fi ที่จัดการโดย DPC ที่กำหนดเอง นโยบาย AMAPI ONC ควรตรงกับการกำหนดค่าของเครือข่ายเหล่านี้เพื่อให้ 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 จะยังคงบังคับใช้นโยบายต่อไป และหากมีการกำหนดค่าเครือข่ายเหล่านี้ในนโยบาย ระบบจะเพิ่มเครือข่ายที่กำหนดค่าไว้ในนโยบายตามปกติ
โปรไฟล์งานในอุปกรณ์ส่วนตัว
ด้วยเหตุผลทางเทคนิค เครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเองจะต้องนำออกโดย DPC ที่กำหนดเองสำหรับ 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