نقل بيانات الأجهزة الحالية إلى AMAPI

يمكن نقل بيانات الأجهزة التي تتم إدارتها من خلال وحدة التحكّم بسياسة الجهاز (DPC) المخصَّصة إلى تطبيق Android Device Policy (ADP) والاستفادة من واجهة برمجة التطبيقات لإدارة Android.

المتطلّبات الأساسية

  • تتم إدارة الجهاز حاليًا من خلال إدارة الخدمات الجوّالة للمؤسسات (EMM) من خلال وحدة تحكّم بسياسة الجهاز (DPC) مخصَّصة.
  • تم دمج وحدة التحكّم بسياسة الجهاز المخصّصة مع AMAPI SDK.
  • تم تسجيل الجهاز باستخدام Google Play EMM API.
  • ينتمي الجهاز إلى حسابات Google Play للأعمال.
  • يعمل الجهاز بنظام التشغيل Android 9 أو إصدار أحدث.
  • في حال توفُّر ملفات شخصية للعمل على الأجهزة المملوكة للشركة، يجب أن يعمل الجهاز بالإصدار 11 من نظام التشغيل Android أو إصدار أحدث.

الدمج مع حزمة تطوير البرامج (SDK) AMAPI في وحدة التحكّم بسياسة الجهاز (DPC)

تتطلّب عملية النقل من تطبيق وحدة التحكّم بسياسة الجهاز المخصّص دمج حزمة تطوير البرامج (SDK) الخاصة بـ AMAPI. يمكنك العثور على مزيد من المعلومات عن هذه المكتبة وكيفية إضافتها إلى تطبيقك في دليل دمج حزمة تطوير البرامج (SDK) الخاصة بواجهة برمجة التطبيقات (AMAPI).

خطوات نقل بيانات جهاز

  1. عليك إعداد سياسة تنوي أن يستخدمها الجهاز بعد أن يتم نقله إلى AMAPI. لتقديم أفضل تجربة للمستخدم، يجب أن تكون هذه السياسة مماثلة للسياسة التي سبق أن فرضتها وحدة التحكّم بسياسة الجهاز (DPC) على الجهاز.
  2. أنشئ رمزًا مميّزًا لنقل البيانات للجهاز من خلال استدعاء enterprises.migrationTokens.create.
  3. أرسِل value الخاص بالرمز المميّز لنقل البيانات إلى وحدة التحكّم بسياسة الجهاز المخصّصة.
  4. تأكَّد من تثبيت تطبيق Android Device Policy على الجهاز باستخدام واجهة برمجة التطبيقات Play EMM API.
  5. استخدام DpcMigrationClientFactory لإنشاء DpcMigrationClient
  6. في DpcMigrationClient، يمكنك استدعاء الطريقة migrateDeviceManagementToAndroidManagementApi. وبهذا تكتمل عملية نقل البيانات.
  7. سيتم تغيير السمة deviceState إلى ACTIVE، وستصلك رسالة STATUS_REPORT على قناة نشر/اشتراك.

بعد اكتمال عملية النقل، سيفقد تطبيق الاتصال امتيازات "مالك الجهاز" أو "مالك الملف الشخصي" لأنّه يتم نقلها إلى تطبيق Android Device Policy.

ملاحظة: يجب أن يكون الجهاز متصلاً بالإنترنت لبدء عملية نقل البيانات. تم تصميم هذه العملية لتكون مرنة في حال انقطاع الاتصال بالشبكات أثناء عملية النقل، كي يتم تنفيذ العمليات الرئيسية التي تتطلب الاتصال بالشبكة قبل نقل حقوق مالك الجهاز أو مالك الملف الشخصي من وحدة التحكّم بسياسة الجهاز إلى تطبيق Android Device Policy.

الرمز المميّز لنقل البيانات

يطلب خادم إدارة الخدمات الجوّالة للمؤسسات (EMM) رمزًا مميّزًا للنقل للإشارة إلى نية نقل بيانات جهاز معيّن تتم إدارته من خلال وحدة التحكّم بسياسة الجهاز (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 مُدارة من قِبل وحدة التحكّم بسياسة الجهاز المخصّصة، يجب أن تتطابق سياسة AMAPI ONC مع إعدادات هذه الشبكات حتى تبدأ AMAPI في إدارتها بسلاسة. يتفاوت تفاعل نقل بيانات وحدة التحكّم بسياسة الجهاز (DPC) مع إدارة شبكة Wi-Fi بناءً على وضع الإدارة.

الأجهزة المُدارة بالكامل والملفات الشخصية للعمل على الأجهزة المملوكة للشركة

أثناء نقل البيانات، يفترض تطبيق Android Device Policy أنّ أي شبكة Wi-Fi تم ضبطها في السياسة تتضمّن SSID ونوع الأمان نفسهما لشبكة Wi-Fi تم ضبطها على الجهاز تتطابق مع شبكة Wi-Fi المطابِقة التي تم إعدادها. وبالتالي، لا يتم إصلاح شبكات Wi-Fi التي تم ضبطها بواسطة وحدة التحكّم بسياسة الجهاز (DPC) المخصَّصة بعد نقل البيانات إلى أن يحدث تغيير في سياسة ONC المرتبطة بالشبكة. ومع ذلك، إذا تم إلغاء تثبيت وحدة التحكّم بسياسة الجهاز المخصّصة بعد نقل البيانات، ستتم تلقائيًا إزالة شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز المخصّصة. ويستمر تطبيق Android Device Policy في فرض السياسة، وفي حال ضبط أي من هذه الشبكات في السياسة، تتم إضافة الشبكات التي تم ضبطها في السياسة كالمعتاد.

ملف العمل على جهاز شخصي

لأسباب فنية، يجب إزالة شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز (DPC) المخصّصة من خلال وحدة التحكّم بسياسة الجهاز المخصّصة لتطبيق Android Device Policy لبدء إدارة شبكات Wi-Fi هذه. تتولى حزمة AMAPI SDK هذا الأمر وتزيل شبكات Wi-Fi هذه قبل نقل الملكية من وحدة التحكّم بسياسة الجهاز المخصَّصة إلى Android Device Policy، لكنّها تتطلّب من وحدة التحكّم بسياسة الجهاز المخصّصة تمرير معلومات عن هذه الشبكات في DpcMigrationRequest. بعد نقل البيانات، ستتم إضافة الشبكات التي تم ضبطها في السياسة بشكل طبيعي، لذا يُنصح بضبط الشبكات التي تضيفها وحدة التحكّم بسياسة الجهاز المخصّصة في السياسة أيضًا.

هناك بعض النقاط التي يجب أن تكون على دراية بها:

  • إذا كانت الشبكة النشطة عبارة عن شبكة Wi-Fi تم ضبطها بواسطة وحدة تحكّم بسياسة الجهاز (DPC) مخصَّصة، يمكن أن يكون الجهاز غير متصل بالإنترنت لفترة قصيرة أثناء نقل البيانات.
  • لا يُسمح بنقل البيانات في DpcMigrationRequest سوى شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز (DPC) المخصّصة، وإلا سيتعذّر نقل البيانات إذا تعذّرت إزالة الشبكة باستخدام حزمة AMAPI SDK (على سبيل المثال، شبكة Wi-Fi التي أضافها المستخدم).
  • يجب نقل شبكات Wi-Fi في DpcMigrationRequest فقط عندما تكون وحدة التحكّم بسياسة الجهاز المخصّصة مالكًا للملف الشخصي على جهاز شخصي، وإلا سيتعذّر نقل البيانات.
  • لأسباب فنية، يُعدّ Android 12 حالة استثنائية يتم فيها تجاهل الشبكات التي تم تمريرها إلى DpcMigrationRequest وإزالة جميع شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز المخصّصة. علاوة على ذلك، يجب أن تحصل وحدة التحكّم بسياسة الجهاز المخصّصة على إذن ACCESS_WIFI_STATE في Android 12 للملفات الشخصية للعمل على الأجهزة التي تملكها، وإلا سيتعذّر نقل البيانات.

المحاذير

في ما يلي بعض المحاذير المتعلقة بهذه الميزة.

رقم التعريف الخاص بالمؤسسة

بالنسبة إلى الملفات الشخصية للعمل على الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، لا يتغيّر المعرّف الخاص بالمؤسسة والذي يمكن الوصول إليه من DevicePolicyManager.getEnrollmentSpecificId في وقت نقل البيانات. ومع ذلك، إذا تم إنشاء ملف شخصي للعمل مُدار من خلال تطبيق Android Device Policy مرة أخرى على الجهاز (على سبيل المثال، بعد حذف الملف الشخصي السابق أو بعد إعادة ضبط الجهاز على الإعدادات الأصلية)، سيتغيّر رقم التعريف الخاص بالمؤسسة في هذه المرحلة.

الملفات الشخصية للعمل على الأجهزة المُدارة بالكامل

لا تتوفّر هذه الميزة على الأجهزة المُدارة بالكامل التي تحتوي على ملف شخصي للعمل يعمل بنظام التشغيل Android 9 أو 10. يجب عدم محاولة نقل بيانات هذه الأجهزة، وبغض النظر عمّا إذا كان هناك خطأ أم لا، فإنّ هذه الأجهزة غير متاحة لنقل بيانات وحدة التحكّم بسياسة الجهاز (DPC).