ย้ายข้อมูลอุปกรณ์ที่มีอยู่ไปยัง AMAPI

คุณสามารถย้ายข้อมูลอุปกรณ์ที่ 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

ขั้นตอนการย้ายข้อมูลอุปกรณ์

  1. ตั้งค่านโยบายที่ต้องการให้อุปกรณ์ใช้หลังจากย้ายข้อมูลไปยัง AMAPI ทั้งนี้เพื่อประสบการณ์ของผู้ใช้ที่ดีที่สุด ค่านี้ควรเทียบเท่ากับนโยบายที่ DPC บังคับใช้ในอุปกรณ์อยู่แล้ว นโยบายใน AMAPI ต้อง เป็นขององค์กรเดียวกันกับที่อุปกรณ์เป็นสมาชิกอยู่แล้วใน Play EMM API โปรดทราบว่าองค์กรหนึ่งๆ จะมีชื่อเดียวกันทั้งใน AMAPI และ Play EMM API
  2. สร้างโทเค็นการย้ายข้อมูลสำหรับอุปกรณ์โดยเรียกใช้ enterprises.migrationTokens.create
  3. ส่ง value ของโทเค็นการย้ายข้อมูลนี้ไปยัง DPC ที่กำหนดเอง
  4. ตรวจสอบว่าได้ติดตั้ง Android Device Policy ในอุปกรณ์โดยใช้ Play EMM API
  5. ใช้ DpcMigrationClientFactory เพื่อสร้าง DpcMigrationClient
  6. ใน DpcMigrationClient ให้เรียกใช้เมธอด migrateDeviceManagementToAndroidManagementApi ซึ่งจะเป็นการเสร็จสิ้นการย้ายข้อมูล
  7. deviceState จะเปลี่ยนเป็น ACTIVE และคุณจะได้รับข้อความSTATUS_REPORT ผ่านช่อง Pub/Sub

เมื่อการย้ายข้อมูลเสร็จสมบูรณ์ แอปโทรจะสูญเสียสิทธิ์ในฐานะเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ เนื่องจากสิทธิ์เหล่านี้จะโอนไปยัง Android Device Policy กระบวนการนี้แสดงได้ด้วยแผนภาพลำดับต่อไปนี้

แผนภาพลำดับการย้ายข้อมูล DPC

หมายเหตุ: อุปกรณ์ต้องเชื่อมต่อกับอินเทอร์เน็ตเพื่อเริ่มการย้ายข้อมูล กระบวนการนี้ออกแบบมาให้ทนทานต่อการขาดการเชื่อมต่อเครือข่ายระหว่างกระบวนการ ย้ายข้อมูล เพื่อให้การดำเนินการที่สำคัญซึ่งต้องใช้การเชื่อมต่อเครือข่ายเสร็จสมบูรณ์ ก่อนที่จะมีการโอนสิทธิ์เจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์จาก 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 ได้ทันทีหลังจาก การย้ายข้อมูล