आपके कस्टम डीपीसी से मैनेज किए जा रहे डिवाइसों को Android Device Policy (ADP) पर माइग्रेट किया जा सकता है. साथ ही, Android Management API का फ़ायदा लिया जा सकता है.
ज़रूरी शर्तें
- डिवाइस को पहले से ही आपके ईएमएम की मदद से, कस्टम डीपीसी के साथ मैनेज किया जा रहा है.
- आपका कस्टम DPC, AMAPI SDK के साथ इंटिग्रेट किया गया हो.
- डिवाइस को Google Play EMM API के साथ रजिस्टर किया गया हो.
- डिवाइस, कारोबार के लिए Google Play खाते वाले एंटरप्राइज़ से जुड़ा हो.
- डिवाइस में Android 9 या इसके बाद का वर्शन हो.
- कंपनी के मालिकाना हक वाले डिवाइसों पर वर्क प्रोफ़ाइल के लिए, डिवाइस में Android 11 या इसके बाद का वर्शन होना चाहिए.
अपने कस्टम DPC में AMAPI SDK टूल को इंटिग्रेट करना
माइग्रेशन की प्रोसेस के लिए, कस्टम DPC ऐप्लिकेशन को AMAPI SDK इंटिग्रेट करना होगा. इस लाइब्रेरी और इसे अपने ऐप्लिकेशन में जोड़ने के तरीके के बारे में ज़्यादा जानकारी, AMAPI SDK टूल को इंटिग्रेट करने से जुड़ी गाइड में देखी जा सकती है.
किसी डिवाइस को माइग्रेट करने का तरीका
- ऐसी नीति सेट अप करें जिसका इस्तेमाल डिवाइस को AMAPI पर माइग्रेट करने के बाद किया जाना है. उपयोगकर्ता को बेहतर अनुभव देने के लिए, यह नीति आपके डीपीसी के ज़रिए डिवाइस पर पहले से लागू की गई नीति के बराबर होनी चाहिए. AMAPI में मौजूद नीति, उसी एंटरप्राइज़ की होनी चाहिए जिससे डिवाइस पहले से ही Play EMM API में जुड़ा हुआ है. ध्यान दें कि किसी एंटरप्राइज़ का नाम, AMAPI और Play EMM API, दोनों में एक जैसा होता है.
enterprises.migrationTokens.createको कॉल करके, डिवाइस के लिए माइग्रेशन टोकन बनाएं.- इस माइग्रेशन टोकन का
valueअपने कस्टम डीपीसी को भेजें. - Play EMM API का इस्तेमाल करके, पक्का करें कि डिवाइस पर Android Device Policy इंस्टॉल हो.
DpcMigrationClientबनाने के लिए,DpcMigrationClientFactoryका इस्तेमाल करनाDpcMigrationClientपर,migrateDeviceManagementToAndroidManagementApiतरीके को कॉल करें. इससे माइग्रेशन पूरा हो जाता है.deviceStateबदलकरACTIVEहो जाता है. साथ ही, आपको Pub/Sub चैनल के ज़रिएSTATUS_REPORTमैसेज मिलेगा.
माइग्रेशन पूरा होने के बाद, कॉलिंग ऐप्लिकेशन के पास डिवाइस के मालिक या प्रोफ़ाइल के मालिक के तौर पर काम करने के अधिकार नहीं रहते. ऐसा इसलिए, क्योंकि ये अधिकार Android Device Policy को ट्रांसफ़र कर दिए जाते हैं. इस प्रोसेस को इस क्रम के डायग्राम से दिखाया जा सकता है:

ध्यान दें: माइग्रेशन शुरू करने के लिए, डिवाइस का इंटरनेट से कनेक्ट होना ज़रूरी है. इस प्रोसेस को इस तरह से डिज़ाइन किया गया है कि माइग्रेशन के दौरान नेटवर्क कनेक्शन बंद होने पर भी, यह प्रोसेस जारी रहे. इससे यह पक्का किया जा सकेगा कि नेटवर्क कनेक्टिविटी की ज़रूरत वाली मुख्य कार्रवाइयां, डिवाइस के मालिक या प्रोफ़ाइल के मालिक के अधिकारों को आपके डीपीसी से Android Device Policy में ट्रांसफ़र करने से पहले पूरी हो जाएं.
माइग्रेशन टोकन
EMM सर्वर, माइग्रेशन टोकन का अनुरोध करता है. इससे यह पता चलता है कि कस्टम DPC से मैनेज किए जा रहे किसी डिवाइस को माइग्रेट करना है. माइग्रेशन टोकन का इस्तेमाल तब तक किया जा सकता है, जब तक माइग्रेशन की प्रोसेस पूरी नहीं हो जाती या इसकी समयसीमा खत्म नहीं हो जाती.
कस्टम DPC इंटिग्रेशन
सबसे पहले, आपको एक DpcMigrationRequest बनाना होगा. इसके लिए, टोकन पास करें. साथ ही, अगर ज़रूरी हो, तो कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क की सूची को इसके बिल्डर में पास करें:
// 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 लागू करें.
माइग्रेशन की प्रोसेस को डिवाइस पर DpcMigrationAttempt के ज़रिए ट्रैक किया जाता है.
migrateDeviceManagementToAndroidManagementApi से मिले नतीजे का सीधे तौर पर इस्तेमाल किया जा सकता है. इसके अलावा, माइग्रेशन की कोशिशों की जानकारी पाने और उन्हें लिस्ट करने के लिए, getMigrationAttempt और listMigrationAttempts तरीकों का इस्तेमाल किया जा सकता है.
// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();
var attempt = client.getMigrationAttempt(request);
DpcMigrationAttempt के स्टेटस अपडेट सुनने के लिए, NotificationReceiverService का इस्तेमाल करके DpcMigrationListener को सेट अप किया जा सकता है. हालांकि, यह ज़रूरी नहीं है.
// 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
}
}
वाई-फ़ाई नेटवर्क मैनेज करना
अगर कस्टम डीपीसी मैनेज किए जा रहे वाई-फ़ाई नेटवर्क मौजूद हैं, तो AMAPI ONC नीति को इन नेटवर्क के कॉन्फ़िगरेशन से मेल खाना चाहिए. इससे AMAPI, इन नेटवर्क को आसानी से मैनेज कर पाएगा. डीपीसी माइग्रेशन का वाई-फ़ाई मैनेजमेंट के साथ इंटरैक्शन, मैनेजमेंट मोड के हिसाब से अलग-अलग होता है.
पूरी तरह से मैनेज किए जा रहे डिवाइस और कंपनी के मालिकाना हक वाले डिवाइसों पर वर्क प्रोफ़ाइल
माइग्रेशन के दौरान, Android Device Policy यह मानती है कि नीति में कॉन्फ़िगर किया गया कोई भी वाई-फ़ाई नेटवर्क, डिवाइस पर कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क के SSID और सुरक्षा टाइप के जैसा है. इसलिए, यह कॉन्फ़िगर किए गए मिलते-जुलते वाई-फ़ाई नेटवर्क के जैसा ही है. इसलिए, कस्टम DPC से कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क में माइग्रेशन के बाद कोई बदलाव नहीं होता. ऐसा तब तक होता है, जब तक नेटवर्क से जुड़ी ओएनसी नीति में कोई बदलाव नहीं किया जाता. हालांकि, माइग्रेट करने के बाद कस्टम डीपीसी को अनइंस्टॉल करने पर, कस्टम डीपीसी से कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क अपने-आप हट जाते हैं. Android Device Policy ऐप्लिकेशन, नीति को लागू करना जारी रखता है. अगर इनमें से कोई नेटवर्क नीति में कॉन्फ़िगर किया गया है, तो नीति में कॉन्फ़िगर किए गए नेटवर्क पहले की तरह जोड़ दिए जाते हैं.
निजी डिवाइस पर वर्क प्रोफ़ाइल
तकनीकी वजहों से, कस्टम DPC के ज़रिए कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क को कस्टम DPC को हटाना होगा, ताकि Android Device Policy इन वाई-फ़ाई नेटवर्क को मैनेज करना शुरू कर सके. AMAPI SDK टूल इस बात का ध्यान रखता है और कस्टम DPC से Android डिवाइस की नीति पर मालिकाना हक ट्रांसफ़र करने से पहले, ऐसे वाई-फ़ाई नेटवर्क हटा देता है. हालांकि, इसके लिए कस्टम DPC को DpcMigrationRequest में इन नेटवर्क के बारे में जानकारी देनी होती है. माइग्रेट करने के बाद, नीति में कॉन्फ़िगर किए गए नेटवर्क सामान्य तरीके से जुड़ जाएंगे. इसलिए, हमारा सुझाव है कि कस्टम डीपीसी से जोड़े गए नेटवर्क को भी नीति में कॉन्फ़िगर किया जाना चाहिए.
इन बातों का ध्यान रखें:
- अगर चालू नेटवर्क, कस्टम डीपीसी से कॉन्फ़िगर किया गया वाई-फ़ाई नेटवर्क है, तो माइग्रेशन के दौरान डिवाइस कुछ समय के लिए ऑफ़लाइन हो सकता है.
DpcMigrationRequestमें सिर्फ़ कस्टम डीपीसी के ज़रिए कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क पास किए जाने चाहिए. ऐसा न करने पर, माइग्रेशन पूरा नहीं होगा. ऐसा तब होता है, जब AMAPI SDK टूल किसी नेटवर्क को नहीं हटा पाता. उदाहरण के लिए, उपयोगकर्ता ने कोई वाई-फ़ाई नेटवर्क जोड़ा है.- वाई-फ़ाई नेटवर्क की जानकारी,
DpcMigrationRequestमें सिर्फ़ तब पास की जानी चाहिए, जब कस्टम डीपीसी, निजी डिवाइस पर प्रोफ़ाइल का मालिक हो. ऐसा न करने पर, माइग्रेशन पूरा नहीं होगा. - तकनीकी वजहों से, Android 12 एक अपवाद है. इसमें
DpcMigrationRequestमें पास किए गए नेटवर्क को अनदेखा किया जाता है. साथ ही, कस्टम डीपीसी के ज़रिए कॉन्फ़िगर किए गए सभी वाई-फ़ाई नेटवर्क अपने-आप हट जाते हैं. इसके अलावा, निजी डिवाइसों पर वर्क प्रोफ़ाइलों के लिए, कस्टम DPC को Android 12 परACCESS_WIFI_STATEअनुमति देना ज़रूरी है. ऐसा न करने पर, माइग्रेशन पूरा नहीं हो पाएगा.
चेतावनियां
इस सुविधा से जुड़ी कुछ चेतावनियां यहां दी गई हैं.
एंटरप्राइज़ का खास आईडी
Android 12 और इसके बाद के वर्शन पर मौजूद वर्क प्रोफ़ाइलों के लिए, माइग्रेशन के दौरान एंटरप्राइज़-विशिष्ट आईडी नहीं बदलता है. इसे DevicePolicyManager.getEnrollmentSpecificId से ऐक्सेस किया जा सकता है. हालांकि, अगर Android Device Policy से मैनेज की जाने वाली वर्क प्रोफ़ाइल को डिवाइस पर फिर से बनाया जाता है (उदाहरण के लिए, पिछली प्रोफ़ाइल मिटाने के बाद या डिवाइस को फ़ैक्ट्री रीसेट करने के बाद), तो उस समय एंटरप्राइज़ के हिसाब से आईडी बदल जाएगा.
पूरी तरह से मैनेज किए जा रहे डिवाइसों पर वर्क प्रोफ़ाइलें
यह सुविधा, पूरी तरह से मैनेज किए जा रहे उन डिवाइसों पर काम नहीं करती जिन पर Android 9 या 10 चल रहा है और जिनमें वर्क प्रोफ़ाइल है. इन डिवाइसों को माइग्रेट करने की कोशिश नहीं की जानी चाहिए. साथ ही, गड़बड़ी होने पर भी, इन डिवाइसों को DPC माइग्रेशन के लिए इस्तेमाल नहीं किया जा सकता.
RESET_PASSWORD कमांड
अगर डिवाइस में लॉक स्क्रीन का पासवर्ड है, तो माइग्रेशन के बाद RESET_PASSWORD कमांड
सिर्फ़ तब काम करेगी, जब उपयोगकर्ता अपने क्रेडेंशियल की पुष्टि करेगा
(जैसे, पिन फिर से डालना). अगर डिवाइस में लॉक स्क्रीन का पासवर्ड नहीं है, तो माइग्रेशन के तुरंत बाद RESET_PASSWORD कमांड का इस्तेमाल किया जा सकता है.