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

อุปกรณ์ที่จัดการโดย DPC ที่กำหนดเองอยู่แล้วสามารถย้ายข้อมูลไปยังอุปกรณ์ Android ได้ นโยบาย (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 ของคุณบังคับใช้ในอุปกรณ์อยู่แล้ว
  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 ไปยัง 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 ที่กำหนดเอง นโยบาย 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