يمكن نقل البيانات من الأجهزة التي تُدار حاليًا من خلال وحدة التحكّم المخصّصة لسياسة الجهاز (DPC) إلى سياسة Android Device (ADP) والاستفادة من واجهة برمجة التطبيقات Android Management API.
المتطلبات الأساسية
- تتولّى خدمة إدارة الخدمات الجوّالة للمؤسسات (EMM) إدارة الجهاز من خلال وحدة تحكّم في حدود التطبيق (DPC) مخصّصة.
- تم دمج وحدة التحكّم في البيانات (DPC) المخصّصة مع حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI.
- تم تسجيل الجهاز باستخدام Google Play EMM API.
- الجهاز ينتمي إلى مؤسسة "حسابات Google Play للأعمال".
- أن يعمل الجهاز بالإصدار 9 من نظام التشغيل Android أو إصدار أحدث
- في حال استخدام ملفات العمل على الأجهزة المملوكة للشركة، يجب أن يعمل الجهاز بنظام التشغيل Android 11 أو إصدار أحدث.
الدمج مع حزمة تطوير البرامج (SDK) لـ AMAPI في واجهة برمجة التطبيقات المخصّصة لنظام التشغيل
تتطلّب عملية نقل البيانات دمج حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI في تطبيق وحدة التحكّم بسياسة الجهاز المخصّص. يمكنك العثور على مزيد من المعلومات عن هذه المكتبة وكيفية إضافتها إلى تطبيقك في دليل دمج حزمة تطوير البرامج (SDK) لـ AMAPI.
خطوات نقل البيانات من جهاز
- إعداد سياسة مخصّصة للاستخدام على الجهاز بعد نقله إلى AMAPI للحصول على أفضل تجربة للمستخدم، يجب أن تكون هذه السياسة مساوية للسياسة التي فرضها "مدير نقطة الاتصال" على الجهاز. يجب أن تنتمي السياسة في AMAPI إلى المؤسسة نفسها التي ينتمي إليها الجهاز في واجهة برمجة التطبيقات Play EMM API. يُرجى العِلم أنّ المؤسسة نفسها لها الاسم نفسه في كلّ من AMAPI وواجهة برمجة التطبيقات Play EMM API.
- أنشئ رمزًا مميّزًا لنقل البيانات للجهاز من خلال الاتصال بالرقم
enterprises.migrationTokens.create
. - أرسِل
value
لرمز نقل البيانات هذا إلى وحدة التحكّم في حدود الجلسة المخصّصة. - تأكَّد من تثبيت تطبيق Android Device Policy على الجهاز باستخدام واجهة برمجة التطبيقات Play EMM.
- استخدِم
DpcMigrationClientFactory
لإنشاءDpcMigrationClient
. - في
DpcMigrationClient
، استخدِم الطريقةmigrateDeviceManagementToAndroidManagementApi
. وبذلك، تكون قد أكملت عملية نقل البيانات. - سيتغيّر الرمز
deviceState
إلىACTIVE
، وستتلقّى رسالةSTATUS_REPORT
من خلال قناة Pub/Sub.
بعد اكتمال عملية نقل البيانات، يفقد تطبيق الاتصال امتيازات مالك الجهاز أو ملف الالتفاف المالك، لأنّه يتم نقل هذه الامتيازات إلى تطبيق "سياسة جهاز Android". يمكن تمثيل هذه العملية بالرسم البياني التسلسلي التالي:
ملاحظة: يجب أن يكون الجهاز متصلاً بالإنترنت لبدء نقل البيانات. تم تصميم العملية لتكون مقاومة لانقطاع الاتصال بالشبكة أثناء عملية نقل البيانات، وذلك لكي تتم العمليات الرئيسية التي تتطلّب الاتصال بالشبكة قبل نقل حقوق مالك الجهاز أو مالك الملف الشخصي من "مركز إدارة الخدمات" إلى "سياسة جهاز Android".
الرمز المميّز لنقل البيانات
يطلب خادم إدارة الخدمات الجوّالة للمؤسسات (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 في إدارتها بسلاسة. يختلف تفاعل نقل البيانات من نقطة الاتصال مع إدارة Wi-Fi حسب وضع الإدارة.
الأجهزة المُدارة بالكامل وملفات العمل على الأجهزة المملوكة للشركة
أثناء نقل البيانات، تفترض "سياسة أجهزة Android" أنّ أي شبكة Wi-Fi تم ضبطها في السياسة تتضمّن معرّف SSID ونوع الأمان نفسهما لشبكة Wi-Fi المُعدَّة على الجهاز هي مطابقة لشبكة Wi-Fi المُعدَّة المطابقة. وبالتالي، لا يتمّ إجراء أي تغيير على شبكات Wi-Fi التي تمّ ضبطها من خلال ملفّ DPC المخصّص بعد نقل البيانات إلى أن يحدث تغيير في سياسة ONC المتعلّقة بالشبكة. ومع ذلك، في حال إلغاء تثبيت ميزة "إدارة الخدمات الجوّالة للمؤسسات" المخصّصة بعد نقل البيانات، تتم تلقائيًا إزالة شبكات Wi-Fi التي تم ضبطها باستخدام ميزة "إدارة الخدمات الجوّالة للمؤسسات" المخصّصة. تستمر "سياسة جهاز Android" في فرض السياسة، وإذا تم ضبط أيٍّ من هذه الشبكات في السياسة، تتم إضافة الشبكات على النحو الذي تم ضبطه في السياسة كالمعتاد.
ملف العمل على جهاز شخصي
لأسباب فنية، يجب أن تتم إزالة شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم المخصّصة في سياسة الجهاز (DPC) من أجل بدء إدارة
شبكات Wi-Fi هذه. تتولى حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI هذه المهمة وتزيل شبكات Wi-Fi هذه
قبل نقل الملكية من واجهة برمجة التطبيقات المخصّصة لإدارة الخدمات (DPC) إلى سياسة Android للأجهزة،
ولكنّها تتطلّب من واجهة برمجة التطبيقات المخصّصة لإدارة الخدمات (DPC) تمرير معلومات عن هذه الشبكات في
DpcMigrationRequest
. بعد نقل البيانات، ستتم إضافة الشبكات
المُعدَّة في السياسة بشكلٍ طبيعي، لذا ننصحك بأن يتم ضبط
الشبكات التي تمت إضافتها من خلال ميزة "المعالجة المحدودة للبيانات" المخصّصة في السياسة أيضًا.
في ما يلي بعض النقاط التي يجب أخذها في الاعتبار:
- إذا كانت الشبكة النشطة هي شبكة Wi-Fi تم ضبطها من خلال ملف DPC مخصّص، يمكن أن يكون الجهاز بلا اتصال بالإنترنت لفترة وجيزة أثناء نقل البيانات.
- يجب تمرير شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم بسياسة الجهاز المخصّصة فقط في
DpcMigrationRequest
، وإلا سيتعذّر نقل البيانات في حال تعذّر إزالة الشبكة باستخدام حزمة AMAPI SDK (مثل شبكة Wi-Fi التي أضافها المستخدم). - يجب عدم تمرير شبكات Wi-Fi في
DpcMigrationRequest
إلا عندما تكون وحدة التحكّم بسياسة الجهاز (DPC) المخصّصة تابعة لصاحب الملف الشخصي على جهاز مملوك شخصيًا، وإلا سيتعذّر نقل البيانات. - يُعدّ Android 12 حالة استثنائية لأسباب فنية، حيث يتم تجاهل الشبكات
التي تم تمريرها في
DpcMigrationRequest
ويتم تلقائيًا إزالة جميع الشبكات Wi-Fi التي تم ضبطها بواسطة ملف DPC المخصّص. بالإضافة إلى ذلك، يجب أن يكون لدى "سياسة إدارة الأجهزة في Android" المخصّصة إذنACCESS_WIFI_STATE
على نظام التشغيل Android 12 لملفات العمل على الأجهزة الشخصية، وإلا ستتعذّر عملية نقل البيانات.
المحاذير
في ما يلي بعض التحذيرات المتعلقة بهذه الميزة.
رقم تعريف خاص بالمؤسسة
بالنسبة إلى ملفات العمل على نظام التشغيل Android 12 والإصدارات الأحدث، لا يتغيّر رقم التعريف الخاص بالمؤسسة،
الذي يمكن الوصول إليه من DevicePolicyManager.getEnrollmentSpecificId
، في وقت نقل البيانات. ومع ذلك، إذا تم إنشاء ملف عمل يديره
تطبيق Android Device Policy مرة أخرى على الجهاز (على سبيل المثال، بعد
حذف الملف السابق أو بعد إعادة ضبط الجهاز على الإعدادات الأصلية)، سيتغيّر
رقم التعريف الخاص بالمؤسسة في هذه المرحلة.
ملفات العمل على الأجهزة المُدارة بالكامل
لا تتوفّر هذه الميزة على الأجهزة المُدارة بالكامل التي تتضمّن ملف عمل ويشغّل نظام التشغيل Android 9 أو 10. يجب عدم محاولة نقل بيانات هذه الأجهزة، وبغض النظر عمّا إذا تم عرض خطأ، لا يمكن نقل بيانات هذه الأجهزة باستخدام ميزة "إدارة الخدمات في نقطة الاتصال".