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