دستگاههایی که قبلاً توسط DPC سفارشی شما مدیریت شدهاند، میتوانند به سیاست دستگاه Android (ADP) منتقل شوند و از API مدیریت Android استفاده کنند.
پیش نیازها
- دستگاه قبلاً توسط EMM شما با یک DPC سفارشی مدیریت میشود.
- DPC سفارشی شما با AMAPI SDK یکپارچه شده است.
- دستگاه در Google Play EMM API ثبت نام شده است.
- این دستگاه متعلق به یک شرکت مدیریت شده Google Play Accounts است.
- دستگاه دارای اندروید 9 یا بالاتر است.
- در صورت وجود نمایههای کاری در دستگاههای متعلق به شرکت، دستگاه باید اندروید ۱۱ یا بالاتر را اجرا کند.
با AMAPI SDK در DPC سفارشی خود ادغام کنید
فرآیند مهاجرت به برنامه DPC سفارشی برای ادغام AMAPI SDK نیاز دارد. می توانید اطلاعات بیشتری درباره این کتابخانه و نحوه افزودن آن به برنامه خود در راهنمای یکپارچه سازی AMAPI SDK بیابید.
مراحل انتقال یک دستگاه
- خطمشی تنظیم کنید تا دستگاه پس از انتقال به AMAPI از آن استفاده کند. برای بهترین تجربه کاربری، این باید معادل خطمشی باشد که قبلاً توسط DPC شما بر روی دستگاه اعمال شده است.
- با فراخوانی
enterprises.migrationTokens.create
یک نشانه انتقال برای دستگاه ایجاد کنید. -
value
این رمز انتقال را به DPC سفارشی خود ارسال کنید. - با استفاده از Play EMM API مطمئن شوید که Android Device Policy روی دستگاه نصب شده است.
- برای ایجاد
DpcMigrationClient
ازDpcMigrationClientFactory
استفاده کنید - در
DpcMigrationClient
، روشmigrateDeviceManagementToAndroidManagementApi
را فراخوانی کنید. این مهاجرت را کامل می کند. -
deviceState
بهACTIVE
تغییر می کند و شما یک پیامSTATUS_REPORT
از طریق کانال Pub/Sub دریافت خواهید کرد.
پس از تکمیل انتقال، برنامه تماس، امتیازات مالک دستگاه یا مالک نمایه خود را از دست می دهد، زیرا این امتیازات به خط مشی دستگاه Android منتقل می شوند.
توجه: برای شروع انتقال، دستگاه باید به اینترنت متصل باشد. این فرآیند به گونهای طراحی شده است که در برابر قطعهای شبکه در طول فرآیند انتقال انعطافپذیر باشد، به طوری که عملیات کلیدی که نیاز به اتصال شبکه دارند، قبل از انتقال واقعی مالک دستگاه یا حقوق مالک نمایه از DPC شما به خطمشی دستگاه 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
}
پیگیری پیشرفت مهاجرت
فرآیند مهاجرت از طریق 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 فرض میکند که هر شبکه Wi-Fi پیکربندی شده در خطمشی با همان SSID و نوع امنیتی یک شبکه Wi-Fi پیکربندیشده روی دستگاه، با شبکه Wi-Fi پیکربندیشده منطبق یکسان است. از این رو، شبکههای Wi-Fi پیکربندی شده توسط DPC سفارشی پس از انتقال تا زمانی که تغییری در سیاست ONC مربوط به شبکه ایجاد نشود، دست نخورده باقی میمانند. با این حال، اگر DPC سفارشی پس از انتقال حذف نصب شود، شبکه های Wi-Fi پیکربندی شده توسط DPC سفارشی به طور خودکار حذف می شوند. خطمشی دستگاه Android به اجرای خطمشی ادامه میدهد و اگر هر یک از این شبکهها در خطمشی پیکربندی شوند، شبکههایی که در خطمشی پیکربندی شدهاند طبق معمول اضافه میشوند.
نمایه کاری در دستگاه شخصی
به دلایل فنی، شبکه های Wi-Fi پیکربندی شده توسط DPC سفارشی باید توسط DPC سفارشی برای Android Device Policy حذف شوند تا مدیریت این شبکه های Wi-Fi شروع شود. AMAPI SDK از این امر مراقبت می کند و چنین شبکه های Wi-Fi را قبل از انتقال مالکیت از DPC سفارشی به خط مشی دستگاه Android حذف می کند، اما به DPC سفارشی نیاز دارد که اطلاعات مربوط به این شبکه ها را در DpcMigrationRequest
ارسال کند. پس از انتقال، شبکه های پیکربندی شده در خط مشی به طور معمول اضافه می شوند، بنابراین توصیه می شود که شبکه های اضافه شده توسط DPC سفارشی نیز در خط مشی پیکربندی شوند.
نکاتی وجود دارد که باید به آنها توجه داشت:
- اگر شبکه فعال یک شبکه Wi-Fi است که توسط DPC سفارشی پیکربندی شده است، دستگاه می تواند برای مدت کوتاهی در حین انتقال آفلاین باشد.
- فقط شبکه های Wi-Fi پیکربندی شده توسط DPC سفارشی باید در
DpcMigrationRequest
ارسال شوند، در غیر این صورت اگر شبکه ای توسط AMAPI SDK قابل حذف نباشد، انتقال انجام نمی شود (مثلاً شبکه Wi-Fi اضافه شده توسط کاربر). - شبکههای Wi-Fi باید در
DpcMigrationRequest
تنها زمانی منتقل شوند که DPC سفارشی مالک نمایه در یک دستگاه شخصی باشد، در غیر این صورت انتقال انجام نمیشود. - به دلایل فنی، Android 12 یک مورد استثنایی است که در آن شبکه های ارسال شده در
DpcMigrationRequest
نادیده گرفته می شوند و تمام شبکه های Wi-Fi پیکربندی شده توسط DPC سفارشی به طور خودکار حذف می شوند. علاوه بر این، برای DPC سفارشی داشتن مجوزACCESS_WIFI_STATE
در Android 12 برای نمایههای کاری در دستگاههای شخصی الزامی است، در غیر این صورت انتقال انجام نمیشود.
هشدارها
در اینجا برخی از هشدارهای مربوط به این ویژگی وجود دارد.
شناسه خاص سازمانی
برای نمایههای کاری در Android 12 و جدیدتر، شناسه اختصاصی سازمانی که از DevicePolicyManager.getEnrollmentSpecificId
قابل دسترسی است، در زمان انتقال تغییر نمیکند. با این حال، اگر نمایه کاری مدیریت شده توسط Android Device Policy دوباره در دستگاه ایجاد شود (مثلاً پس از حذف نمایه قبلی یا پس از بازنشانی کارخانه)، شناسه خاص شرکت در آن نقطه تغییر میکند.
نمایه های کار در دستگاه های کاملاً مدیریت شده
این ویژگی در دستگاههای کاملاً مدیریتشده که دارای نمایه کاری دارای Android 9 یا 10 هستند پشتیبانی نمیشود. انتقال این دستگاهها نباید انجام شود و صرف نظر از اینکه خطایی رخ داده باشد، چنین دستگاههایی برای انتقال DPC پشتیبانی نمیشوند.