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