يمكن نقل الأجهزة التي تتم إدارتها حاليًا من خلال جهاز تحكّم مخصّص لسياسة الجهاز (DPC) إلى تطبيق Android Device Policy (ADP) والاستفادة من Android Management API.
المتطلبات الأساسية
- تتولّى خدمة إدارة الأجهزة الجوّالة للمؤسسات (EMM) إدارة الجهاز باستخدام أداة مخصّصة للتحكّم في سياسات الجهاز (DPC).
- تم دمج وحدة التحكُّم بسياسة الجهاز المخصّصة مع حزمة تطوير البرامج لواجهة برمجة التطبيقات AMAPI.
- الجهاز مسجَّل في Google Play EMM API.
- ينتمي الجهاز إلى حسابات Google Play للأعمال.
- أن يعمل الجهاز بالإصدار 9 أو أحدث من نظام التشغيل Android
- في حال استخدام ملفات العمل على الأجهزة المملوكة للشركة، يجب أن يعمل الجهاز بنظام التشغيل Android 11 أو الإصدارات الأحدث.
دمج حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI في أداة DPC المخصّصة
تتطلّب عملية نقل البيانات دمج حزمة تطوير البرامج (SDK) الخاصة بواجهة برمجة التطبيقات AMAPI في تطبيق وحدة التحكّم بسياسة الجهاز المخصّص. يمكنك الاطّلاع على مزيد من المعلومات حول هذه المكتبة وكيفية إضافتها إلى تطبيقك في دليل دمج حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI.
خطوات نقل جهاز
- إعداد سياسة من المفترض أن يستخدمها الجهاز بعد نقل بياناته إلى AMAPI للحصول على أفضل تجربة للمستخدم، يجب أن يكون هذا الإعداد مكافئًا للسياسة التي يفرضها حاليًا جهازك من خلال وحدة التحكّم في سياسة الجهاز. يجب أن تنتمي السياسة في واجهة برمجة التطبيقات Android Management API إلى المؤسسة نفسها التي ينتمي إليها الجهاز في واجهة برمجة التطبيقات Play EMM API. يُرجى العِلم أنّ المؤسسة المحدّدة لها الاسم نفسه في كل من AMAPI وPlay EMM API.
- أنشئ رمزًا مميّزًا لنقل البيانات للجهاز من خلال استدعاء
enterprises.migrationTokens.create. - أرسِل
valueرمز نقل البيانات هذا إلى وحدة التحكّم المخصّصة في سياسة الجهاز (DPC). - تأكَّد من تثبيت تطبيق Android Device Policy على الجهاز باستخدام Play EMM API.
- استخدِم
DpcMigrationClientFactoryلإنشاءDpcMigrationClient - في
DpcMigrationClient، استدعِ الطريقةmigrateDeviceManagementToAndroidManagementApi. بهذا تكون قد أكملت عملية نقل البيانات. - يتغيّر الرمز
deviceStateإلىACTIVE، وستتلقّى رسالةSTATUS_REPORTمن خلال قناة Pub/Sub.
بعد اكتمال عملية نقل البيانات، يفقد تطبيق الاتصال امتيازات "مالك الجهاز" أو "مالك الملف الشخصي"، لأنّ هذه الامتيازات يتم نقلها إلى تطبيق "سياسة Android للأجهزة". يمكن تمثيل هذه العملية باستخدام مخطط التسلسل التالي:

ملاحظة: يجب أن يكون الجهاز متصلاً بالإنترنت لبدء عملية نقل البيانات. تم تصميم العملية لتكون مرنة في حال انقطاع الاتصال بالشبكة أثناء عملية نقل البيانات، وذلك لضمان تنفيذ العمليات الرئيسية التي تتطلّب الاتصال بالشبكة قبل نقل حقوق مالك الجهاز أو مالك الملف الشخصي من وحدة التحكّم بسياسة الجهاز (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
}
إعداد 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 في واجهة برمجة تطبيقات Android لإدارة الخدمات (AMAPI) مع إعدادات هذه الشبكات لكي تتمكّن واجهة برمجة التطبيقات AMAPI من إدارتها بسلاسة. يختلف تفاعل عملية نقل سياسة الجهاز (DPC) مع إدارة شبكة Wi-Fi حسب وضع الإدارة.
الأجهزة المُدارة بالكامل وملفات العمل على الأجهزة المملوكة للشركة
أثناء عملية نقل البيانات، تفترض خدمة Android Device Policy أنّ أي شبكة Wi-Fi تم ضبطها في السياسة ولها SSID ونوع أمان مطابقان لشبكة Wi-Fi تم ضبطها على الجهاز، هي شبكة Wi-Fi مطابقة تم ضبطها. وبالتالي، لا يتم تغيير شبكات Wi-Fi التي تم ضبطها من خلال وحدة تحكّم مخصّصة في سياسة الجهاز (DPC) بعد نقل البيانات إلى أن يتم تغيير سياسة ONC الخاصة بالشبكة. ومع ذلك، إذا تمت إزالة حزمة DPC المخصّصة بعد عملية النقل، ستتم تلقائيًا إزالة شبكات Wi-Fi التي تم ضبطها من خلال حزمة DPC المخصّصة. تواصل خدمة "سياسة أجهزة Android" فرض السياسة، وفي حال ضبط أي من هذه الشبكات في السياسة، تتم إضافة الشبكات على النحو المعتاد.
ملف العمل على جهاز شخصي
لأسباب فنية، يجب أن يزيل وحدة التحكّم المخصّصة في سياسة الجهاز شبكات Wi-Fi التي تم إعدادها من خلالها حتى يتمكّن تطبيق Android Device Policy من بدء إدارة شبكات Wi-Fi هذه. تتولّى حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات AMAPI هذه المهمة وتزيل شبكات Wi-Fi هذه قبل نقل الملكية من وحدة التحكّم في سياسة الجهاز (DPC) المخصّصة إلى Android Device Policy، ولكنها تتطلّب أن تنقل وحدة التحكّم في سياسة الجهاز (DPC) المخصّصة معلومات حول هذه الشبكات في DpcMigrationRequest. بعد نقل البيانات، ستتم إضافة الشبكات التي تم ضبطها في السياسة بشكل عادي، لذا يُنصح بضبط الشبكات التي أضافها "وحدة التحكّم بسياسة الجهاز" المخصّصة في السياسة أيضًا.
في ما يلي بعض النقاط التي يجب الانتباه إليها:
- إذا كانت الشبكة النشطة هي شبكة Wi-Fi تم ضبطها من خلال وحدة تحكّم مخصّصة في سياسات الجهاز (DPC)، قد يكون الجهاز غير متصل بالإنترنت لفترة وجيزة أثناء عملية نقل البيانات.
- يجب تمرير شبكات Wi-Fi التي تم ضبطها من خلال وحدة تحكّم مخصّصة بسياسة الجهاز فقط في
DpcMigrationRequest، وإلا سيتعذّر نقل البيانات إذا تعذّر على حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات Android Management API إزالة شبكة (مثل شبكة Wi-Fi أضافها المستخدم). - يجب إدخال شبكات Wi-Fi في
DpcMigrationRequestفقط عندما تكون وحدة التحكّم بسياسة الجهاز (DPC) المخصّصة هي مالك الملف الشخصي على جهاز مملوك شخصيًا، وإلا سيتعذّر نقل البيانات. - لأسباب فنية، يُعدّ نظام التشغيل Android 12 حالة استثنائية يتم فيها تجاهل الشبكات التي تم تمريرها في
DpcMigrationRequestوإزالة جميع شبكات Wi-Fi التي تم ضبطها من خلال وحدة التحكّم في سياسة الجهاز المخصّصة تلقائيًا. بالإضافة إلى ذلك، يجب أن يتضمّن وحدة التحكّم في سياسة الجهاز المخصّصة إذنACCESS_WIFI_STATEعلى أجهزة Android 12 لملفات العمل على الأجهزة المملوكة شخصيًا، وإلا ستتعذّر عملية نقل البيانات.
المحاذير
في ما يلي بعض التحذيرات المتعلقة بهذه الميزة.
رقم التعريف الخاص بالمؤسسة
بالنسبة إلى ملفات العمل على نظام التشغيل Android 12 والإصدارات الأحدث، لن يتغيّر المعرّف الخاص بالمؤسسة،
الذي يمكن الوصول إليه من DevicePolicyManager.getEnrollmentSpecificId
أثناء عملية نقل البيانات. ومع ذلك، إذا تم إنشاء ملف عمل مُدار
من خلال Android Device Policy مرة أخرى على الجهاز (على سبيل المثال، بعد
حذف الملف السابق أو بعد إعادة ضبط الجهاز على الإعدادات الأصلية)، سيتغير
رقم التعريف الخاص بالمؤسسة في هذه الحالة.
ملفات العمل على الأجهزة المُدارة بالكامل
لا تتوفّر هذه الميزة على الأجهزة المُدارة بالكامل التي تتضمّن ملف عمل يعمل بنظام التشغيل Android 9 أو 10. يجب عدم محاولة نقل هذه الأجهزة، وبغض النظر عما إذا كان سيظهر خطأ، لا يمكن نقل هذه الأجهزة باستخدام وحدة التحكُّم بسياسة الجهاز (DPC).
أمر RESET_PASSWORD
إذا كان الجهاز يتضمّن كلمة مرور لشاشة القفل، لن ينجح الأمر RESET_PASSWORD إلا بعد أن يؤكّد المستخدم بيانات الاعتماد الخاصة به (مثل إعادة إدخال رقم التعريف الشخصي) بعد عملية النقل. إذا لم يكن للجهاز كلمة مرور لقفل الشاشة، يمكن استخدام الأمر RESET_PASSWORD مباشرةً بعد عملية نقل البيانات.