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

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

ملاحظة: تتم هذه العملية بشفافية للمستخدمين النهائيين. إنها عملية أحادية الاتجاه (لا يمكن التراجع عنها بعد اكتمالها) ولا يمكن استخدامها لنقل جهاز من إحدى خدمات إدارة الخدمات الجوّالة للمؤسسات (EMM) إلى آخر.

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

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

الدمج مع حزمة AMAPI SDK في وحدة التحكّم بسياسة الجهاز المخصّصة

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

ملاحظة: تتطلّب هذه العملية الإصدار 1.1.4 أو إصدار أحدث من مكتبة AMAPI SDK.

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

  1. قم بإعداد سياسة مخصصة ليستخدمها الجهاز بعد أن يتم نقله إلى AMAPI. لتوفير أفضل تجربة للمستخدم، يجب أن يكون ذلك معادلاً للسياسة التي سبق أن فرضها وحدة التحكّم بسياسة الجهاز على الجهاز.
  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 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 التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز المخصّصة بعد نقل البيانات إلى أن يكون هناك تغيير في سياسة ONC بما يتوافق مع الشبكة. ومع ذلك، إذا تم إلغاء تثبيت وحدة التحكّم بسياسة الجهاز المخصّصة بعد نقل البيانات، ستتم تلقائيًا إزالة شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز المخصّصة. يستمر تطبيق Android Device Policy في فرض السياسة، وإذا تم ضبط أي من هذه الشبكات في السياسة، تتم إضافة الشبكات التي تم ضبطها في السياسة على النحو المعتاد.

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

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

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

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

المحاذير

إليك بعض التنبيهات المتعلقة بهذه الميزة.

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

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

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

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