อุปกรณ์ที่มีการจัดการโดย DPC ที่กำหนดเองของคุณอยู่แล้วสามารถย้ายข้อมูลไปยัง Android Device Policy และใช้ประโยชน์จาก Android Management API ได้
หมายเหตุ: กระบวนการนี้มีความโปร่งใสต่อผู้ใช้ปลายทาง ซึ่งเป็นกระบวนการแบบทางเดียวเท่านั้น (เมื่อทำเสร็จแล้วจะยกเลิกไม่ได้) และจะใช้ย้ายข้อมูลอุปกรณ์จาก EMM รายหนึ่งไปยัง EMM อีกไม่ได้
ข้อกำหนดเบื้องต้น
- อุปกรณ์นี้ได้รับการจัดการโดย EMM ด้วย DPC ที่กำหนดเอง
- DPC ที่กําหนดเองจะผสานรวมกับ AMAPI SDK
- อุปกรณ์ลงทะเบียนกับ Google Play EMM API แล้ว
- อุปกรณ์อยู่ในกลุ่มบัญชี Managed Google Play สำหรับองค์กร
- อุปกรณ์ใช้ Android 9 ขึ้นไป
- ในกรณีที่ใช้โปรไฟล์งานในอุปกรณ์ของบริษัท อุปกรณ์จะต้องใช้ Android 11 ขึ้นไป
ผสานรวมกับ AMAPI SDK ใน DPC ที่กำหนดเองของคุณ
กระบวนการย้ายข้อมูลต้องใช้แอปพลิเคชัน DPC ที่กำหนดเองเพื่อผสานรวม AAPI SDK คุณดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีนี้และวิธีเพิ่มลงในแอปพลิเคชันได้ในคู่มือการผสานรวม AMAPI SDK
หมายเหตุ: กระบวนการนี้ต้องใช้ไลบรารี AMAPI SDK เวอร์ชัน 1.1.4 ขึ้นไป
ขั้นตอนการย้ายข้อมูลอุปกรณ์
- ตั้งค่านโยบายที่อุปกรณ์จะใช้หลังจากย้ายข้อมูลไปยัง 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 functiong 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 ที่กำหนดเอง นโยบาย 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 จะยังคงบังคับใช้นโยบายต่อไป และหากมีการกำหนดค่าเครือข่ายใดๆ ในนโยบาย ระบบจะเพิ่มเครือข่ายที่กำหนดค่าไว้ในนโยบายตามปกติ
โปรไฟล์งานในอุปกรณ์ส่วนตัว
ด้วยเหตุผลทางเทคนิค DPC ที่กำหนดเองสำหรับ Android Device Policy จะต้องนำเครือข่าย Wi-Fi ที่กำหนดค่าโดย DPC ที่กำหนดเองออกเพื่อเริ่มจัดการเครือข่าย 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