อุปกรณ์ที่จัดการโดย 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
เมื่อการย้ายข้อมูลเสร็จสมบูรณ์ แอปการโทรจะเสียสิทธิ์ในฐานะเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ เนื่องจากสิทธิ์เหล่านี้จะโอนไปยัง Device Policy สำหรับ Android กระบวนการนี้แสดงได้ด้วยผังลำดับต่อไปนี้
หมายเหตุ: อุปกรณ์ต้องเชื่อมต่ออินเทอร์เน็ตเพื่อเริ่มย้ายข้อมูล กระบวนการนี้ออกแบบมาให้ทนต่อปัญหาการเชื่อมต่อเครือข่ายขาดตอนในระหว่างขั้นตอนการย้ายข้อมูล เพื่อให้การดำเนินการที่สำคัญซึ่งต้องใช้การเชื่อมต่อเครือข่ายเสร็จสมบูรณ์ก่อนที่จะมีการโอนสิทธิ์ของเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์จาก 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
คุณสามารถใช้รายการที่ 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 ที่กําหนดเอง นโยบาย ONC ของ AMAPI ควรตรงกับการกำหนดค่าของเครือข่ายเหล่านี้เพื่อให้ AMAPI เริ่มจัดการเครือข่ายได้อย่างราบรื่น การโต้ตอบของการย้ายข้อมูล DPC กับการจัดการ Wi-Fi จะแตกต่างกันไปโดยขึ้นอยู่กับโหมดการจัดการ
อุปกรณ์ที่มีการจัดการครบวงจรและโปรไฟล์งานในอุปกรณ์ของบริษัท
ในระหว่างการย้ายข้อมูล นโยบายอุปกรณ์ Android จะถือว่าเครือข่าย Wi-Fi ที่กําหนดค่าไว้ในนโยบายซึ่งมี SSID และประเภทการรักษาความปลอดภัยเหมือนกับเครือข่าย Wi-Fi ที่กําหนดค่าไว้ในอุปกรณ์นั้นเหมือนกันกับเครือข่าย Wi-Fi ที่กําหนดค่าไว้ซึ่งตรงกัน ดังนั้น เครือข่าย Wi-Fi ที่กําหนดค่าโดย DPC ที่กําหนดเองจะไม่เปลี่ยนแปลงหลังจากการย้ายข้อมูลจนกว่าจะมีการเปลี่ยนแปลงนโยบาย ONC ที่เกี่ยวข้องกับเครือข่าย อย่างไรก็ตาม หากมีการถอนการติดตั้ง DPC ที่กําหนดเองหลังจากการย้ายข้อมูล ระบบจะนำเครือข่าย Wi-Fi ที่กําหนดค่าโดย DPC ที่กําหนดเองออกโดยอัตโนมัติ Device Policy สำหรับ Android จะบังคับใช้นโยบายต่อไป และหากมีการกำหนดค่าเครือข่ายเหล่านี้ในนโยบาย ระบบจะเพิ่มเครือข่ายตามที่กําหนดค่าไว้ในนโยบายตามปกติ
โปรไฟล์งานในอุปกรณ์ส่วนตัว
เนื่องด้วยเหตุผลทางเทคนิค DPC ที่กําหนดเองต้องนําเครือข่าย Wi-Fi ที่กําหนดค่าโดย DPC ที่กําหนดเองออกเพื่อให้ Android Device Policy เริ่มจัดการเครือข่าย Wi-Fi เหล่านี้ AMAPI SDK จะจัดการเรื่องนี้และนำเครือข่าย Wi-Fi ดังกล่าวออกก่อนที่จะโอนการเป็นเจ้าของจาก DPC ที่กำหนดเองไปยังนโยบายอุปกรณ์ Android แต่กำหนดให้ 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 สำหรับอุปกรณ์ดังกล่าว ไม่ว่าจะเกิดข้อผิดพลาดหรือไม่ก็ตาม