एंटरप्राइज़ ऐप्लिकेशन के लिए, Android 9 में क्या है

यह पेज एंटरप्राइज़ एपीआई, सुविधाओं, और व्यवहार की खास जानकारी देता है Android 9 में उपलब्ध बदलाव.

वर्क प्रोफ़ाइल का यूज़र इंटरफ़ेस

Android 9 (एपीआई लेवल 28) के डिफ़ॉल्ट वर्शन में यूज़र इंटरफ़ेस के बदलाव शामिल हैं निजी और ऑफ़िस के काम से जुड़े ऐप्लिकेशन को अलग करने में उपयोगकर्ताओं की मदद करने के लिए लॉन्चर. डिवाइस बनाने वाली कंपनी साथ ही, रेवेन्यू बढ़ाने के लिए, काम और निजी टैब में अलग-अलग ऐप्लिकेशन. हमने डिवाइस उपयोगकर्ताओं के लिए वर्क प्रोफ़ाइल को चालू और बंद करना भी आसान बना दिया है. लॉन्चर के वर्क टैब में मौजूद स्विच भी शामिल है.

पहली इमेज. डिफ़ॉल्ट लॉन्चर का निजी टैब और वर्क टैब वर्क प्रोफ़ाइल स्विच करने से

वर्क प्रोफ़ाइल और मैनेज किए जा रहे डिवाइसों का प्रावधान करते समय, Android 9 पर ये सुविधाएं शामिल होती हैं ऐनिमेशन वाली तस्वीरें, जो डिवाइस इस्तेमाल करने वाले लोगों को इन सुविधाओं को समझने में मदद करती हैं.

अलग-अलग प्रोफ़ाइल पर ऐप्लिकेशन स्विच करें

Android 9 में एपीआई शामिल हैं, ताकि किसी इस प्रोफ़ाइल का इस्तेमाल किया जा सकता है. उदाहरण के लिए, ईमेल ऐप्लिकेशन ये काम कर सकता है: उपयोगकर्ता को निजी प्रोफ़ाइल और वर्क प्रोफ़ाइल के बीच स्विच करने के लिए, एक यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराएं दो ईमेल खातों तक पहुंच बनाने के लिए प्रोफ़ाइल. सभी ऐप्लिकेशन उसी ऐप्लिकेशन की मुख्य गतिविधि. यहां की यात्रा पर हूं अपने ऐप्लिकेशन में क्रॉस-प्रोफ़ाइल खाता स्विच करने के लिए, नीचे दिया गया कॉल करने का तरीका अपनाएं तरीके को अपनाना CrossProfileApps क्लास:

  1. लिस्ट पाने के लिए, getTargetUserProfiles() पर कॉल करें ऐसी प्रोफ़ाइल जिनमें ऐप्लिकेशन का कोई दूसरा इंस्टेंस लॉन्च किया जा सकता है. इस तरीके से यह पता चलता है कि ऐप्लिकेशन को प्रोफ़ाइलों में इंस्टॉल किया गया हो.
  2. getProfileSwitchingIconDrawable() पर कॉल करें आइकन प्राप्त करने के लिए जिसका उपयोग आप किसी अन्य प्रोफ़ाइल को दर्शाने के लिए कर सकें.
  3. पाने के लिए getProfileSwitchingLabel() पर कॉल करें स्थानीय जगह के अनुसार लिखा हुआ टेक्स्ट, जो उपयोगकर्ता को प्रोफ़ाइल बदलने के लिए कहता है.
  4. startMainActivity() का इंस्टेंस लॉन्च करने के लिए कॉल करें अपना ऐप्लिकेशन किसी दूसरी प्रोफ़ाइल में जोड़ें.

यह देख लें कि आपको जिस मुख्य गतिविधि को लॉन्च करना है उसका एलान आपके ऐप्लिकेशन के ACTION_MAIN इंटेंट कार्रवाई वाली मेनिफ़ेस्ट फ़ाइल और इसमें शामिल है CATEGORY_LAUNCHER इंटेंट कैटगरी.

प्रोग्राम की मदद से वर्क प्रोफ़ाइल को चालू या बंद करना

डिफ़ॉल्ट लॉन्चर (या वे ऐप्लिकेशन जिनके पास MANAGE_USERS या MODIFY_QUIET_MODE) कॉल करके वर्क प्रोफ़ाइल को चालू या बंद कर सकते हैं UserManager.requestQuietModeEnabled(). आप रिटर्न वैल्यू की जांच करें, ताकि यह पता चल सके कि उपयोगकर्ता को स्थिति बदलने से पहले क्रेडेंशियल. ऐसा हो सकता है कि बदलाव न हो तुरंत, ACTION_MANAGED_PROFILE_AVAILABLE या ACTION_MANAGED_PROFILE_UNAVAILABLE ब्रॉडकास्ट करना है, ताकि यह पता चल सके कि यूज़र इंटरफ़ेस को कब अपडेट करना है.

आपका ऐप्लिकेशन, कॉल करके वर्क प्रोफ़ाइल की स्थिति देख सकता है UserManager.isQuietModeEnabled().

किसी भी ऐप्लिकेशन को किसी डिवाइस पर लॉक करना

Android 9 और इसके बाद के वर्शन में, डिवाइस के मालिक और प्रोफ़ाइल के मालिक (सेकंडरी यूज़र के लिए) ऐप्लिकेशन को लॉक टास्क मोड में डालकर, किसी भी ऐप्लिकेशन को डिवाइस की स्क्रीन पर लॉक कर सकते हैं. पहले, ऐप्लिकेशन डेवलपर को लॉक टास्क के लिए सहायता जोड़ना पड़ता था मोड में भी दिखेगी. Android 9, लॉक टास्क की अवधि भी बढ़ा सकता है गैर-सहयोगी सेकंडरी उपयोगकर्ताओं के प्रोफ़ाइल मालिकों के लिए एपीआई. इसके लिए, नीचे दिया गया तरीका अपनाएं स्क्रीन पर किसी ऐप्लिकेशन को लॉक करने के लिए:

  1. DevicePolicyManager.setLockTaskPackages() को यहां कॉल करें लॉक टास्क मोड के लिए, अनुमति वाले ऐप्लिकेशन.
  2. लॉन्च करने के लिए, ActivityOptions.setLockTaskEnabled() को कॉल करें अनुमति वाली सूची में शामिल ऐप्लिकेशन को लॉक टास्क मोड में.

किसी ऐप्लिकेशन को लॉक टास्क मोड में रोकने के लिए, उस ऐप्लिकेशन को लॉक टास्क मोड से हटाएं इनका इस्तेमाल करके, अनुमति वाली सूची में जोड़ें DevicePolicyManager.setLockTaskPackages().

सिस् टम की यूज़र इंटरफ़ेस (यूआई) सुविधाएं चालू करें

लॉक टास्क मोड चालू होने पर, डिवाइस के मालिक और प्रोफ़ाइल के मालिक इसे चालू कर सकते हैं कॉल करके डिवाइस पर कुछ सिस्टम यूज़र इंटरफ़ेस (यूआई) सुविधाएं DevicePolicyManager.setLockTaskFeatures() और पास बिट फ़ील्ड:

आप DevicePolicyManager.getLockTaskFeatures() को कॉल कर सकते हैं लॉक टास्क मोड चालू होने पर, डिवाइस पर उपलब्ध सुविधाओं की सूची पाने के लिए चालू किया गया. जब कोई डिवाइस लॉक टास्क मोड से बाहर निकलता है, तो वह डिवाइस से जुड़ी अन्य नीतियां लागू करें.

गड़बड़ी वाले डायलॉग बंद करें

कुछ मामलों में, जैसे कि खुदरा कारोबार के प्रदर्शन या सार्वजनिक जानकारी दिखाई देता है, तो हो सकता है कि आप उपयोगकर्ताओं को गड़बड़ी वाले डायलॉग न दिखाना चाहें. डिवाइस से जुड़ी नीति क्रैश होने या काम न करने की स्थिति में, कंट्रोलर (DPC) सिस्टम गड़बड़ी वाले डायलॉग को बंद कर सकता है यह जोड़ सकते हैं DISALLOW_SYSTEM_ERROR_DIALOGS उपयोगकर्ता प्रतिबंध. अगर डिवाइस के मालिक ने यह पाबंदी लगाई है, तो इसका असर सभी डायलॉग पर पड़ता है लेकिन सिर्फ़ मुख्य या दूसरे उपयोगकर्ता के तौर पर दिखाए गए गड़बड़ी वाले डायलॉग ही छिपाए जाते हैं जब पाबंदी प्रोफ़ाइल के मालिकों ने लागू की हो. इस पाबंदी का इस्तेमाल वर्क प्रोफ़ाइलों पर असर पड़ सकता है.

Android 9 में, इमर्सिव फ़ुल-स्क्रीन में चलने वाले ऐप्लिकेशन मोड चालू होने पर, रिमाइंडर बबल नहीं दिखता लॉक टास्क मोड पर टैप करें. रिमाइंडर बबल वह पैनल होता है जो उपयोगकर्ताओं को पहली बार लॉन्च करने पर दिखता है जिसमें इमर्सिव मोड से बाहर निकलने का तरीका बताया गया है.

खास तरह के डिवाइसों पर एक से ज़्यादा उपयोगकर्ताओं की मदद करने की सुविधा

Android 9 में, खास तौर पर कुछ समय के लिए इस्तेमाल करने वाले उपयोगकर्ता का कॉन्सेप्ट लॉन्च किया गया है डिवाइसों (पहले इन्हें COSU डिवाइस कहा जाता था) को ऐक्सेस किया जा सकता है. कुछ समय के लिए रहने वाले उपयोगकर्ता यह हैं अल्पकालिक उपयोगकर्ता, जो उन मामलों के लिए लक्षित हैं जब कई उपयोगकर्ता एक ही खास तरह के डिवाइस. इसमें लाइब्रेरी जैसे डिवाइसों पर सार्वजनिक उपयोगकर्ता के सेशन शामिल हैं या हॉस्पिटैलिटी चेक-इन कीऑस्क पर भी, और किसी एक तय डिवाइस पर उपयोगकर्ताओं का सेट, जैसे कि शिफ़्ट वर्कर.

कुछ समय के लिए इस्तेमाल किए जाने वाले उपयोगकर्ता, बैकग्राउंड में बनाए जाने चाहिए. वे इस तरह बनाए जाते हैं उपयोगकर्ता एक डिवाइस का इस्तेमाल कर रहे हों और उन्हें हटा दिया गया हो (साथ ही, जुड़े हुए ऐप्लिकेशन और डेटा से जुड़ी जानकारी) दिखाना. बनाने के लिए थोड़े समय के लिए डिवाइस इस्तेमाल करने वाले उपयोगकर्ता, डिवाइस के मालिक ये काम कर सकते हैं:

  1. कॉल करते समय MAKE_USER_EPHEMERAL फ़्लैग सेट करें DevicePolicyManager.createAndManageUser().
  2. DevicePolicyManager.startUserInBackground() पर कॉल करें कुछ समय के लिए प्रोफ़ाइल बनाने वाले उपयोगकर्ता को बैकग्राउंड में चलाने की सुविधा मिलती है.

ध्यान दें, Android 9 को टारगेट करने वाले ऐप्लिकेशन को कॉल करते समय UserManager.UserOperationException createAndManageUser(). अपवाद के getUserOperationResult() तरीका इस्तेमाल करके जानें कि उपयोगकर्ता नहीं बनाया गया था.

इवेंट की सूचनाएं पाएं

DeviceAdminReceiver को आने वाले इवेंट:

उपयोगकर्ताओं को इवेंट के मैसेज दिखाएं

डिवाइस के मालिक, उपयोगकर्ताओं को दिखने वाले मैसेज कॉन्फ़िगर कर सकते हैं अपने सेशन को शुरू और खत्म करने के लिए:

  • इस्तेमाल की जाने वाली चीज़ें DevicePolicyManager.setStartUserSessionMessage() इसका इस्तेमाल करके, उपयोगकर्ता का सेशन शुरू होने पर उसे दिखने वाले मैसेज को सेट किया जा सकता है. यहां की यात्रा पर हूं संदेश पुनर्प्राप्त करें, कॉल करें DevicePolicyManager.getStartUserSessionMessage().
  • इस्तेमाल की जाने वाली चीज़ें DevicePolicyManager.setEndUserSessionMessage() इसका इस्तेमाल करके, उपयोगकर्ता को सेशन खत्म होने पर दिखने वाले मैसेज को सेट किया जा सकता है. यहां की यात्रा पर हूं संदेश पुनर्प्राप्त करें, कॉल करें DevicePolicyManager.getEndUserSessionMessage().

लॉग आउट करें और उपयोगकर्ताओं को रोकें

डिवाइस के मालिक इनका इस्तेमाल कर सकते हैं DevicePolicyManager.setLogoutEnabled() का इस्तेमाल करके यह तय करें कि सेकंडरी उपयोगकर्ताओं के लिए, लॉग आउट करने की सुविधा चालू है. लॉग आउट करने की सुविधा चालू है या नहीं, यह देखने के लिए कॉल करें DevicePolicyManager.isLogoutEnabled().

सेकंडरी यूज़र्स के प्रोफ़ाइल मालिक कॉल कर सकते हैं दूसरे उपयोगकर्ता के खाते को रोकने के लिए, DevicePolicyManager.logoutUser() और प्राइमरी यूज़र पर वापस स्विच करें.

डिवाइस के मालिक, DevicePolicyManager.stopUser() का इस्तेमाल करके दूसरा उपयोगकर्ता चुना गया.

पैकेज को कैश मेमोरी में सेव करना

उपयोगकर्ताओं के एक तय सेट के साथ शेयर किए गए डिवाइसों पर, उपयोगकर्ता के प्रावधान को आसान बनाने के लिए, जैसे, शिफ़्ट वर्कर के लिए डिवाइस, तो हो सकता है कि ऐसे पैकेज संचित किए जा सकें एक से ज़्यादा उपयोगकर्ता वाले सेशन के लिए ज़रूरी है:

  1. कॉल करें DevicePolicyManager.setKeepUninstalledPackages() APK के तौर पर रखने के लिए पैकेज की सूची तय करने के लिए. इन आइटम की सूची फिर से पाने के लिए पैकेज, कॉल DevicePolicyManager.getKeepUninstalledPackages().

  2. DevicePolicyManager.installExistingPackage() पर कॉल करें के माध्यम से निकाले जाने के बाद रखे गए पैकेज को इंस्टॉल करने के लिए setKeepUninstalledPackages().

अन्य तरीके और कॉन्सटेंट

Android 9 में, बेहतर तरीके से सपोर्ट करने के लिए ये तरीके और कॉन्सटेंट भी शामिल हैं शेयर किए गए डिवाइसों पर उपयोगकर्ता के सेशन:

  • DevicePolicyManager.getSecondaryUsers() को एक डिवाइस पर सभी सेकंडरी उपयोगकर्ता.
  • DISALLOW_USER_SWITCH, उपयोगकर्ता पर लगाई गई पाबंदी है. कॉल करके चालू करें उपयोगकर्ता के स्विच करने की सुविधा को ब्लॉक करने के लिए, DevicePolicyManager.addUserRestriction().
  • LEAVE_ALL_SYSTEM_APPS_ENABLED एक फ़्लैग है इसके लिए उपलब्ध है DevicePolicyManager.createAndManageUser(). सेट होने पर, उपयोगकर्ता प्रावधान के दौरान सिस्टम ऐप्लिकेशन बंद नहीं किए जाते.
  • UserManager.UserOperationException को इन्होंने थ्रो किया DevicePolicyManager.createAndManageUser() जब उपयोगकर्ता नहीं बनाया जा सकता— अपवाद में गड़बड़ी की वजह शामिल है.

पैकेज डेटा साफ़ करें और खाते निकालें

डिवाइस के मालिक और प्रोफ़ाइल के मालिक कॉल कर सकते हैं उपयोगकर्ता का डेटा मिटाने के लिए clearApplicationUserData() . किसी खाते को AccountManager, डिवाइस और प्रोफ़ाइल के मालिक कॉल कर सकते हैं removeAccount().

उपयोगकर्ता की पाबंदियां और सेटिंग पर ज़्यादा कंट्रोल

Android 9 में, DPC के लिए उपयोगकर्ता पाबंदियां लागू की गई हैं. साथ ही, किसी डिवाइस पर एपीएन, समय और टाइमज़ोन, और सिस्टम सेटिंग कॉन्फ़िगर करने की सुविधा.

एपीएन कॉन्फ़िगर करें

डिवाइस के मालिक इन तरीकों का इस्तेमाल इसमें कर सकते हैं: DevicePolicyManager क्लास का इस्तेमाल करके, एपीएन कॉन्फ़िगर किए जा सकते हैं डिवाइस:

समय और टाइमज़ोन कॉन्फ़िगर करें

डिवाइस के मालिक इन तरीकों का इस्तेमाल इसमें कर सकते हैं: समय और टाइमज़ोन सेट करने के लिए, DevicePolicyManager क्लास किसी डिवाइस पर:

ज़रूरी सेटिंग पर उपयोगकर्ता पाबंदियां लागू करें

Android 9 ने सिस्टम की सुविधाओं और सेटिंग को बंद करने के लिए, उपयोगकर्ता के लिए पाबंदियां जोड़ी हैं. यहां की यात्रा पर हूं प्रतिबंध जोड़ें, कॉल करें DevicePolicyManager.addUserRestriction() में से किसी एक के साथ ये UserManager कॉन्सटेंट:

अगर DISALLOW_CONFIG_BRIGHTNESS और DISALLOW_CONFIG_SCREEN_TIMEOUT लागू किए गए किसी डिवाइस पर, डिवाइस के स् वामी अब भी स् क्रीन सेट कर सकते हैं ब्राइटनेस, स्क्रीन की चमक मोड और स्क्रीन टाइम आउट सेटिंग एपीआई का इस्तेमाल कर रहे डिवाइस पर DevicePolicyManager.setSystemSetting().

सीमित डेटा वाला डेटा

डिवाइस के मालिक और प्रोफ़ाइल के मालिक, ऐप्लिकेशन को डिवाइस की सीमित डेटा वाले नेटवर्क. सीमित डेटा वाले नेटवर्क को तब माना जाता है, जब उपयोगकर्ता लागत, डेटा सीमाओं या बैटरी और समस्याओं को ठीक करें. सीमित डेटा वाले नेटवर्क का इस्तेमाल करने से ऐप्लिकेशन को रोकने के लिए, कॉल करें DevicePolicyManager.setMeteredDataDisabledPackages() पैकेज के नामों की सूची पास करना. वर्तमान में प्रतिबंधित ऐप्लिकेशन को पुनर्प्राप्त करने के लिए, कॉल करें DevicePolicyManager.getMeteredDataDisabledPackages().

Android में सीमित डेटा वाले डेटा के बारे में ज़्यादा जानने के लिए, नेटवर्क डेटा ऑप्टिमाइज़ करना पढ़ें इस्तेमाल.

DPC माइग्रेट करें

डिवाइस नीति नियंत्रक (डीपीसी) किसी डिवाइस का मालिकाना हक ट्रांसफ़र कर सकते हैं या वर्क प्रोफ़ाइल को किसी अन्य DPC से लिंक करना. कुछ सुविधाओं को एक जगह से दूसरी जगह ले जाने के लिए, आपको मालिकाना हक ट्रांसफ़र करना पड़ सकता है Android मैनेजमेंट के लिए एपीआई से डिवाइसों को माइग्रेट करने में आपके पास अपना पुराना DPC सेट करना होगा या आपके ईएमएम पर माइग्रेट करने में आईटी एडमिन की मदद करना होगा. क्योंकि आप बस DPC का मालिकाना हक बदल रहा है, तो आप यह बदलाव करने के लिए इस सुविधा का इस्तेमाल नहीं कर सकते कि मैनेजमेंट, उदाहरण के लिए, मैनेज किए जा रहे डिवाइस से वर्क प्रोफ़ाइल पर माइग्रेट करना या कम्यूनिटी दिशा-निर्देशों के उल्लंघन की वजह से, वीडियो को सही जगह बनाया जा सकता है.

डिवाइस एडमिन से जुड़ी नीतियों एक्सएमएल संसाधन का इस्तेमाल इन कामों के लिए किया जा सकता है यह बताएं कि आपके DPC का यह वर्शन माइग्रेशन का समर्थन करता है. टारगेट DPC यह बताता है कि यह मालिकाना हक पाने के लिए, <support-transfer-ownership>. नीचे दिए गए उदाहरण में बताया गया है कि आपके DPC के डिवाइस एडमिन की एक्सएमएल फ़ाइल:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

मालिकाना हक को नए DPC ऐप्लिकेशन पर माइग्रेट करने की इच्छा रखने वाले DPC यह जांच कर सकते हैं कि टारगेट DPC वर्शन DeviceAdminInfo तरीके को कॉल करके माइग्रेशन की सुविधा देता है supportsTransferOwnership(). ट्रांसफ़र करने से पहले के आधार पर, यह सोर्स DPC की ज़िम्मेदारी है कि वह ऐप्लिकेशन सिग्नेचर की तुलना की जा रही है. PackageManager क्लास में शामिल हैं कोड-हस्ताक्षर के साथ काम करने के तरीके.

Android, मालिकाना हक के ज़रिए, सोर्स डीपीसी के सिस्टम और उपयोगकर्ता नीतियों को बनाए रखता है ट्रांसफ़र करें—DPC को इन्हें माइग्रेट नहीं करना होगा. स्रोत DPC कस्टम डेटा को PersistableBundle में की-वैल्यू पेयर का इस्तेमाल करके, टारगेट DPC. एक ट्रांसफ़र पूरा हो जाता है, तो टारगेट DPC कॉल करके इस डेटा को वापस पा सकता है DevicePolicyManager.getTransferOwnershipBundle().

मैनेज किए जा रहे डिवाइस या वर्क प्रोफ़ाइल का मालिकाना हक ट्रांसफ़र करने का तरीका ये है समान:

  1. सोर्स DPC यह जांच करता है कि टारगेट DPC का वर्शन, माइग्रेशन की सुविधा देता है या नहीं और यह पुष्टि करता है कि टारगेट DPC का ऐप्लिकेशन हस्ताक्षर किसी अनुमानित वैल्यू से मेल खाता है.
  2. सोर्स DPC, शुरू करने के लिए transferOwnership() को कॉल करता है ट्रांसफ़र.
  3. सिस्टम, टारगेट डीपीसी को सक्रिय एडमिन बनाता है और प्रबंधित डिवाइस या वर्क प्रोफ़ाइल के मालिक के रूप में.
  4. टारगेट DPC को कॉलबैक मिलता है onTransferOwnershipComplete() और कॉन्फ़िगर कर सकता है bundle आर्ग्युमेंट में दी गई वैल्यू का इस्तेमाल करें.
  5. अगर ट्रांसफ़र के दौरान कोई गड़बड़ी होती है, तो सिस्टम मालिकाना हक वापस का पता लगाना है. अगर आपके सोर्स के डीपीसी को यह पुष्टि करने की ज़रूरत है कि मालिकाना हक को ट्रांसफ़र किया जा रहा है हो गया, isAdminActive() पर कॉल करके जांच करें कि सोर्स DPC अब सक्रिय एडमिन नहीं है.

वर्क प्रोफ़ाइल में चल रहे सभी ऐप्लिकेशन ACTION_PROFILE_OWNER_CHANGED ब्रॉडकास्ट करें प्रोफ़ाइल का मालिक बदल जाता है. मैनेज किए जा रहे डिवाइस पर चल रहे ऐप्लिकेशन को ACTION_DEVICE_OWNER_CHANGED पर ब्रॉडकास्ट करना होगा, जब डिवाइस के मालिक में बदलाव.

पूरी तरह से मैनेज किए जा रहे डिवाइसों पर वर्क प्रोफ़ाइल

डिवाइस के मालिक और प्रोफ़ाइल के मालिक के तौर पर चल रहे, डीपीसी के दो इंस्टेंस ट्रांसफ़र किए जा रहे हैं यह प्रोसेस दो चरणों में होती है. जब निजी प्रोफ़ाइल और वर्क प्रोफ़ाइल सहयोगी (अफ़िलिएट), नीचे दिए गए क्रम में ट्रांसफ़र पूरा करें:

  1. सबसे पहले, वर्क प्रोफ़ाइल का मालिकाना हक ट्रांसफ़र करें.
  2. DeviceAdminReceiver कॉलबैक का इंतज़ार करें onTransferAffiliatedProfileOwnershipComplete() ताकि यह पुष्टि की जा सके कि वर्क प्रोफ़ाइल को टारगेट DPC में ट्रांसफ़र किया गया था.
  3. आखिर में, मैनेज किए जा रहे डिवाइस का मालिकाना हक, टारगेट DPC को ट्रांसफ़र करें.

ओवर-द-एयर (ओटीए) के अपडेट फ़िलहाल अपडेट नहीं किए गए हैं

डिवाइस के मालिक, डिवाइसों के ओटीए सिस्टम अपडेट को 90 दिनों तक के लिए रोक सकते हैं ज़रूरी समय के दौरान, इन डिवाइसों पर चल रहे OS वर्शन को फ़्रीज़ करें (जैसे कि छुट्टियां). किसी तय सीमा के बाद, सिस्टम 60 दिनों का ज़रूरी बफ़र लागू करता है डिवाइस को हमेशा के लिए फ़्रीज़ होने से रोकने के लिए, उसे फ़्रीज़ करने की अवधि सेट करें.

फ़्रीज़ की अवधि के दौरान:

  • डिवाइसों पर उन ओटीए अपडेट की कोई सूचना नहीं मिलती जिन्हें मंज़ूरी मिलना बाकी है.
  • डिवाइस, ओएस पर कोई ओटीए अपडेट इंस्टॉल नहीं करते.
  • डिवाइस इस्तेमाल करने वाले लोग, सेटिंग में जाकर मैन्युअल तरीके से ओटीए अपडेट नहीं देख सकते.

फ़्रीज़ पीरियड सेट करने के लिए, कॉल करें SystemUpdatePolicy.setFreezePeriods(). क्योंकि फ़्रीज़ अवधि को साल में एक बार दोहराया जाता है. अवधि के शुरू और खत्म होने की तारीख दिखाई जाती है पूर्णांक के आधार पर शुरू करें. शुरू होने का दिन ज़रूरी है रोक लगाने की पिछली अवधि के खत्म होने के कम से कम 60 दिन बाद शुरू करना होगा. डिवाइस मालिक SystemUpdatePolicy.getFreezePeriods() को कॉल कर सकते हैं इससे सिस्टम अपडेट की नीति से जुड़े ऑब्जेक्ट पर, पहले से सेट की गई फ़्रीज़ पीरियड की सूची मिलेगी. DevicePolicyManager.getSystemUpdatePolicy() को डिवाइस के मालिक की ओर से सेट की गई कोई भी फ़्रीज़ अवधि वापस लौटाने के लिए अपडेट किया गया है.

वर्क प्रोफ़ाइल में शेयर करने पर पाबंदी लगाना

प्रोफ़ाइल के मालिक, उपयोगकर्ताओं को वर्क प्रोफ़ाइल में निजी डेटा शेयर करने से रोक सकते हैं उपयोगकर्ता की पाबंदियां जोड़कर DISALLOW_SHARE_INTO_MANAGED_PROFILE. इस पाबंदी से, नीचे दिए गए इंटेंट हैंडलिंग और शेयर करने पर रोक लग जाती है:

  • वर्क प्रोफ़ाइल ऐप्लिकेशन के साथ डेटा और फ़ाइलें शेयर करने वाले निजी प्रोफ़ाइल ऐप्लिकेशन.
  • वर्क प्रोफ़ाइल ऐप्लिकेशन, जो निजी प्रोफ़ाइल से आइटम चुनते हैं—उदाहरण के लिए, तस्वीरें या फ़ाइलें.

यह पाबंदी सेट करने के बाद भी आपका डीपीसी, क्रॉस-प्रोफ़ाइल गतिविधि करने की अनुमति दे सकता है कॉल करके इंटेंट addCrossProfileIntentFilter().

हार्डवेयर से सुरक्षित कुंजियां और मशीन सर्टिफ़िकेट

Android 9, ऐसे एपीआई जोड़ता है जो आपको पासकोड और सर्टिफ़िकेट के साथ काम करने में मदद करते हैं. ताकि डिवाइस सुरक्षित तरीके से पहचाने जा सकें. प्रोफ़ाइल के मालिक या डिवाइस में चल रहा DPC मालिकाना हक वाले मोड या किसी ऐसे सर्टिफ़िकेट को इंस्टॉल करने वाले लोगों के नाम नीचे दिए गए कामों को पूरा करें:

  • सुरक्षित हार्डवेयर (जैसे कि किसी भरोसेमंद हार्डवेयर में) में कुंजियां और सर्टिफ़िकेट जनरेट करना Android डिवाइस का एक्ज़ीक्यूशन एनवायरमेंट (TEE) या सिक्योर एलिमेंट (SE) हो. कॉन्टेंट बनाने जनरेट की गई कुंजियां कभी भी सुरक्षित हार्डवेयर नहीं छोड़ती हैं और इनका इस्तेमाल Android कीचेन. कॉल करें DevicePolicyManager.generateKeyPair() एल्गोरिदम (KeyPairGenerator देखें) और आपका कोई भी हार्डवेयर आईडी प्रमाणित करना चाहते हैं, जैसे कि सीरियल नंबर या IMEI नंबर. सुरक्षित ब्राउज़िंग के बारे में ज़्यादा जानने के लिए हार्डवेयर में हुए बदलाव, Android 9 Security देखें बेहतर बनाने की सुविधा.
  • सर्टिफ़िकेट को डिवाइस से जनरेट की गई मौजूदा कुंजी के साथ जोड़ें. कॉल करें DevicePolicyManager.setKeyPairCertificate() सप्लाई कर रहे हैं मौजूदा कुंजी का उपनाम और प्रमाणपत्र शृंखला—जो लीफ़ से शुरू होती है सर्टिफ़िकेट और ऑर्डर में भरोसे की चेन शामिल करना.
  • कुंजी का इस्तेमाल करने से पहले पक्का करें कि सुरक्षित हार्डवेयर उसकी सुरक्षा करता है. जांच करने के लिए पासकोड को सुरक्षित रखने का कौनसा तरीका है. इसके लिए, Key प्रमाणित करना.
  • डिवाइस के मालिक और उन लोगों को हस्ताक्षर किए गए सर्टिफ़िकेट मिल सकते हैं जिन्हें सर्टिफ़िकेट इंस्टॉल करने का ऐक्सेस दिया गया है डिवाइस का स्टेटमेंट Android सिस्टम वर्शन वाले हार्डवेयर आईडी. कॉल करें एक या एक से ज़्यादा DevicePolicyManager.generateKeyPair() पास करना ID_TYPE_BASE_INFO, ID_TYPE_SERIAL में से, ID_TYPE_IMEI या ID_TYPE_MEID idAttestationFlags तर्क. लौटाए गए सर्टिफ़िकेट में हार्डवेयर शामिल है प्रमाणित करने के रिकॉर्ड में मौजूद आईडी. अगर आप हार्डवेयर आईडी शामिल नहीं करना चाहते हैं, तो 0. प्रोफ़ाइल के मालिक, मैन्युफ़ैक्चरर की जानकारी सिर्फ़ ID_TYPE_BASE_INFO). डिवाइस, आईडी को प्रमाणित कर सकता है या नहीं, यह देखने के लिए कॉल करें isDeviceIdAttestationSupported().
  • डिवाइस के उपयोगकर्ताओं को एंटरप्राइज़ कुंजियों के गलत इस्तेमाल से बचाता है (गैर-एंटरप्राइज़ टास्क में) ऐसा करने के बाद, उन कुंजी सर्टिफ़िकेट को नहीं चुना जा सकेगा. सिस्टम में ये चीज़ें शामिल नहीं हैं ऐसे सर्टिफ़िकेट जिन्हें पिकर पैनल में चुना नहीं जा सकता. अपने DeviceAdminReceiver.onChoosePrivateKeyAlias() कॉलबैक विधि का इस्तेमाल करते हैं, तो अन्य नाम को अपनी एंटरप्राइज़ कुंजी पर वापस करें, ताकि सिस्टम उपयोगकर्ता की ओर से अपने-आप सर्टिफ़िकेट चुन लेता है. डिजिटल बटन बनाने के लिए चुने जाने का विकल्प नहीं चुना जा सकता, तो इन DevicePolicyManager तरीकों का इस्तेमाल करें:

इन एपीआई को आपस में जोड़कर, एंटरप्राइज़ डिवाइसों को सुरक्षित तरीके से पहचान सकते हैं. साथ ही, उनकी पुष्टि कर सकते हैं तो पूरी सुरक्षा देने की ज़रूरत नहीं है.

  1. Android डिवाइस, सुरक्षित हार्डवेयर में एक नई निजी कुंजी जनरेट करता है. निजी पासकोड कभी भी सुरक्षित हार्डवेयर को नहीं छोड़ता है, इसलिए यह सीक्रेट रहती है.
  2. डिवाइस, पासकोड का इस्तेमाल करके सर्टिफ़िकेट पर हस्ताक्षर का अनुरोध करता है और उसे भेजता है (CSR) को सर्वर से कनेक्ट करें. सीएसआर में प्रमाणित करने का वह रिकॉर्ड शामिल होता है जिसमें डिवाइस आईडी.
  3. सर्वर, सर्टिफ़िकेट चेन की पुष्टि करता है (Google सर्टिफ़िकेट पर रूट किया गया) और पुष्टि करने के रिकॉर्ड से डिवाइस का मेटाडेटा निकालता है.
  4. सर्वर पुष्टि करता है कि सुरक्षित हार्डवेयर निजी कुंजी की सुरक्षा करता है और कि डिवाइस आईडी का मिलान एंटरप्राइज़ के रिकॉर्ड से होता है. सर्वर यह भी जांच सकता है कि यह ज़रूरी है कि Android सिस्टम और पैच वर्शन सभी ज़रूरी शर्तों को पूरा करते हों.
  5. सर्वर सीएसआर से एक प्रमाणपत्र जनरेट करता है और डिवाइस.
  6. डिवाइस, प्रमाणपत्र को निजी कुंजी के साथ जोड़ता है (जो सुरक्षित हार्डवेयर) ऐप्लिकेशन को एंटरप्राइज़ सेवाओं से कनेक्ट करने में मदद करता है.

सुरक्षा से जुड़े ज़्यादा एपीआई, सुविधाएं, और बदलाव

सुरक्षा लॉग और नेटवर्क लॉग का आईडी

Android 9 में, सुरक्षा और नेटवर्क पर की गई गतिविधि के लॉग में आईडी शामिल होते हैं. अंकों वाला आईडी यह हर इवेंट में एक ही तरह से बढ़ोतरी करता है. इससे आईटी एडमिन को यह समझने में आसानी होती है कि लॉग में अंतर कर पाते हैं. सुरक्षा लॉग और नेटवर्क लॉग अलग-अलग होने की वजह से कलेक्शन के लिए, सिस्टम अलग-अलग आईडी वैल्यू बनाए रखता है.

SecurityEvent.getId() पर कॉल करें, DnsEvent.getId() या ConnectEvent.getId() आईडी की वैल्यू पाने के लिए. सिस्टम जब भी कोई DPC लॉग इन करने की सुविधा चालू करता है या डिवाइस रीस्टार्ट होता है, तो आईडी को रीसेट करता है. कॉल करने पर सुरक्षा लॉग फ़ेच किए गए DevicePolicyManager.retrievePreRebootSecurityLogs() ये आईडी शामिल न करें.

सुरक्षा से जुड़ी जानकारी लॉग करना

सुरक्षा लॉगिंग से हर SecurityEvent को एक लॉग लेवल असाइन होता है. लॉग लेवल पाने के लिए, getLogLevel() को कॉल करें. इस तरीके से लॉग लेवल की ऐसी वैल्यू मिलती है जो इनमें से कोई एक हो सकता है: LEVEL_INFO, LEVEL_WARNING या LEVEL_ERROR.

Android 9, इस टेबल में दिए गए इवेंट को सुरक्षा के लिए लॉग करता है लॉग शामिल करें. किसी इवेंट के टैग को देखने के लिए, getTag() पर कॉल करें. यहां की यात्रा पर हूं इवेंट डेटा वापस पाएं, getData() पर कॉल करें.

टैग करें इवेंट की जानकारी
TAG_CERT_AUTHORITY_INSTALLED सिस्टम के क्रेडेंशियल स्टोरेज में नया रूट सर्टिफ़िकेट इंस्टॉल करने की कोशिश की गई.
TAG_CERT_AUTHORITY_REMOVED सिस्टम के क्रेडेंशियल स्टोरेज से किसी रूट सर्टिफ़िकेट को हटाने की कोशिश की गई.
TAG_CERT_VALIDATION_FAILURE कनेक्शन के दौरान, वाई-फ़ाई सर्टिफ़िकेट की पुष्टि नहीं की जा सकी.
TAG_CRYPTO_SELF_TEST_COMPLETED सिस्टम ने क्रिप्टोग्राफ़िक तरीके से खुद की जांच पूरी कर ली है.
TAG_KEYGUARD_DISABLED_FEATURES_SET एडमिन ऐप्लिकेशन ने डिवाइस या वर्क प्रोफ़ाइल की लॉक स्क्रीन की सुविधाएं बंद कर दी हैं.
TAG_KEY_DESTRUCTION क्रिप्टोग्राफ़िक कुंजी को मिटाने की कोशिश की गई है.
TAG_KEY_GENERATED नई क्रिप्टोग्राफ़िक कुंजी जनरेट करने की कोशिश की गई है.
TAG_KEY_IMPORT नई क्रिप्टोग्राफ़िक कुंजी इंपोर्ट करने की कोशिश की गई है.
TAG_KEY_INTEGRITY_VIOLATION Android को पता चला है कि एन्क्रिप्ट (सुरक्षित) करने वाली या पुष्टि करने वाली कुंजी खराब है.
TAG_LOGGING_STARTED सुरक्षा से जुड़ी जानकारी की रिकॉर्डिंग शुरू हो गई.
TAG_LOGGING_STOPPED सुरक्षा से जुड़ी जानकारी का लॉग रिकॉर्ड होना बंद हो गया है.
TAG_LOG_BUFFER_SIZE_CRITICAL सुरक्षा लॉग बफ़र, अपनी 90% क्षमता तक पहुंच गया है.
TAG_MAX_PASSWORD_ATTEMPTS_SET एडमिन ऐप्लिकेशन ने गलत पासवर्ड डालने की अनुमति दी है, इसकी संख्या सेट की है.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET कोई एडमिन ऐप्लिकेशन, स्क्रीन लॉक होने के लिए ज़्यादा से ज़्यादा टाइम आउट सेट करता है.
TAG_MEDIA_MOUNT डिवाइस पर, हटाए जा सकने वाले स्टोरेज मीडिया को माउंट किया गया है.
TAG_MEDIA_UNMOUNT डिवाइस को हटाने लायक स्टोरेज मीडिया को अलग कर दिया गया है.
TAG_OS_SHUTDOWN Android सिस्टम बंद हो गया.
TAG_OS_STARTUP Android सिस्टम शुरू हो गया.
TAG_PASSWORD_COMPLEXITY_SET किसी एडमिन ऐप्लिकेशन के सेट किए गए पासवर्ड से जुड़ी ज़रूरी शर्तें.
TAG_PASSWORD_EXPIRATION_SET किसी एडमिन ने पासवर्ड की समयसीमा खत्म होने की अवधि सेट की है.
TAG_PASSWORD_HISTORY_LENGTH_SET किसी एडमिन ऐप्लिकेशन ने पासवर्ड का इतिहास सेव किया है, ताकि उपयोगकर्ता पुराने पासवर्ड दोबारा इस्तेमाल न कर सकें.
TAG_REMOTE_LOCK किसी एडमिन ऐप्लिकेशन ने डिवाइस या वर्क प्रोफ़ाइल को लॉक कर दिया है.
TAG_USER_RESTRICTION_ADDED किसी एडमिन ऐप्लिकेशन ने उपयोगकर्ता पर पाबंदी लगाई है.
TAG_USER_RESTRICTION_REMOVED किसी एडमिन ऐप्लिकेशन ने उपयोगकर्ता पर लगी पाबंदी हटा दी है.
TAG_WIPE_FAILURE डिवाइस या वर्क प्रोफ़ाइल को वाइप करने की कोशिश नहीं की जा सकी.

वर्क प्रोफ़ाइल के लिए, लॉक स्क्रीन से जुड़ा चैलेंज

Android 9 से, प्रोफ़ाइल के मालिक के लिए उपयोगकर्ताओं को अलग से लॉक सेट करना ज़रूरी हो सकता है स्क्रीन चैलेंज का इस्तेमाल करके, DISALLOW_UNIFIED_PASSWORD उपयोगकर्ता पर लगी पाबंदी. यहां की यात्रा पर हूं यह पता करें कि क्या उपयोगकर्ता ने अपने डिवाइस के लिए वही लॉक स्क्रीन चैलेंज सेट किया है या नहीं वर्क प्रोफ़ाइल, कॉल DevicePolicyManager.isUsingUnifiedPassword().

अगर किसी डिवाइस में वर्क प्रोफ़ाइल की लॉक स्क्रीन अलग है, DevicePolicyManager.setMaximumTimeToLock() सिर्फ़ पूरे डिवाइस के बजाय वर्क प्रोफ़ाइल के लिए लॉक स्क्रीन टाइम आउट सेट करें.

डेवलपर टूल का ऐक्सेस

वर्क प्रोफ़ाइल में ऑफ़िस का डेटा बनाए रखने के लिए, Android डीबग ब्रिज (adb) टूल वर्क प्रोफ़ाइल में डायरेक्ट्री और फ़ाइलें ऐक्सेस नहीं कर सकते.

बायोमेट्रिक के ज़्यादा विकल्पों के लिए सहायता

Android 9 के साथ, बायोमेट्रिक हार्डवेयर की मदद से पुष्टि करने की प्रोसेस को बेहतर तरीके से कंट्रोल किया जा सकता है वर्क प्रोफ़ाइल की लॉक स्क्रीन पर. मौजूदा को कॉल करें DevicePolicyManager.setKeyguardDisabledFeatures() वाला तरीका इस्तेमाल करने के लिए, KEYGUARD_DISABLE_FACE और KEYGUARD_DISABLE_IRIS. डिवाइस से मिले बायोमेट्रिक पुष्टि के सभी तरीकों को बंद करने के लिए, KEYGUARD_DISABLE_BIOMETRICS जोड़ें.

डिवाइस एडमिन से जुड़ी नीतियों को बंद किया गया

Android 9, नीचे दी गई नीतियों को device का इस्तेमाल करने वाले DPC के लिए 'अब काम नहीं करता' के तौर पर मार्क करता है एडमिन. नीतियों का लगातार काम करना वाला है, जैसा कि वे पहले इस्तेमाल करते थे. Android 10 की रिलीज़ से, इन नीतियों के तहत, डिवाइस एडमिन के इस्तेमाल करने पर Securityअपवाद दिखेगा.

कुछ ऐप्लिकेशन, उपभोक्ता डिवाइस प्रबंधन के लिए डिवाइस एडमिन का इस्तेमाल करते हैं. इसके लिए उदाहरण के लिए, खोए हुए डिवाइस को लॉक करना और मिटाना. ये नीतियां जारी रहेंगी इसे चालू किया जा सकता है:

इन बदलावों के बारे में ज़्यादा जानकारी के लिए, डिवाइस एडमिन लेख पढ़ें बंद है.

बेहतर तरीके से क्यूआर कोड रजिस्टर करना

पहले से मौजूद क्यूआर लाइब्रेरी

Android 9 के साथ क्यूआर लाइब्रेरी भी मौजूद है, ताकि क्यूआर कोड वाले डिवाइस को मैनेज करना आसान हो जाए प्रॉविज़निंग. आईटी एडमिन को सेट अप करने के लिए, अब वाई-फ़ाई की जानकारी मैन्युअल तरीके से नहीं डालनी होगी डिवाइस. हालांकि, Android 9 पर वाई-फ़ाई की जानकारी को शामिल किया जा सकता है क्यूआर कोड स्कैन करें. जब आईटी एडमिन किसी कंपनी के मालिकाना हक वाले क्यूआर कोड को स्कैन करता है डिवाइस, डिवाइस अपने-आप वाई-फ़ाई से कनेक्ट हो जाता है और प्रावधान किया जाता है बिना किसी मैन्युअल इनपुट के प्रोसेस करें.

क्यूआर-कोड प्रावधान करने का तरीका, नीचे दिए गए अतिरिक्त प्रावधान के साथ काम करता है वाई-फ़ाई विवरण दर्ज करें:

प्रॉविज़निंग एक्स्ट्रा का इस्तेमाल करके तारीख और टाइमज़ोन सेट करें

क्यूआर-कोड का प्रावधान करने का तरीका, समयसीमा सेट करने के लिए अतिरिक्त सुविधाएं उपलब्ध कराता है डिवाइस पर समय क्षेत्र:

डेटा वाइप करने के विकल्प

किसी वर्क प्रोफ़ाइल को हटाते समय, डिवाइस के एडमिन उपयोगकर्ताओं को उनके हिसाब से बनाया गया मैसेज दिखा सकते हैं प्रोफ़ाइल या सेकंडरी यूज़र. मैसेज से डिवाइस के उपयोगकर्ताओं को यह समझने में मदद मिलती है कि आईटी एडमिन ने वर्क प्रोफ़ाइल या सेकंडरी उपयोगकर्ता को हटा दिया है. कॉल करें wipeData(int, CharSequence) और एक शॉर्ट वीडियो जानकारी देने वाला मैसेज. मुख्य उपयोगकर्ता या डिवाइस के मालिक के कॉल करने पर, सिस्टम मैसेज नहीं दिखाता है और डिवाइस को फ़ैक्ट्री रीसेट करना शुरू कर देता है.

एम्बेड किए गए ईयूआईसीसी सिम से सदस्यता का डेटा हटाने के लिए, कॉल करें wipeData() और flags में WIPE_EUICC को शामिल करें तर्क है.

सहयोगी प्रोफ़ाइल के मालिकों के लिए तरीके

अफ़िलिएट प्रोफ़ाइल के लिए ये तरीके उपलब्ध हैं मालिक के तौर पर: