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

อุปกรณ์ที่มีการจัดการโดย 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 ขึ้นไป

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

  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 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