कस्टम उपयोगकर्ता टाइप को लागू करना

Android 11 ने अच्छी तरह से तय किए गए उपयोगकर्ता टाइप का कॉन्सेप्ट लॉन्च किया है जिसमें उन सभी अलग-अलग तरह के उपयोगकर्ताओं के बारे में जानकारी मिलती है जिन्हें Android के मल्टी-यूज़र सुविधा ने अनुमति दी है. इस सुविधा की मदद से, OEM पहले से तय AOSP उपयोगकर्ता टाइप को पसंद के मुताबिक बना सकते हैं. साथ ही, वे प्रोफ़ाइल के नए टाइप तय कर सकते हैं. ज़्यादा जानकारी के लिए, उपयोगकर्ता टाइप से जुड़ा सेक्शन देखें.

इस पेज में, लागू करने के दिशा-निर्देशों की जानकारी दी गई है. ये दिशा-निर्देश, उपयोगकर्ताओं के टाइप को पसंद के मुताबिक बनाने के लिए ज़रूरी हैं.

पसंद के मुताबिक बनाएं

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

config_user_types.xml फ़ाइल में दिया गया कोई भी एट्रिब्यूट, जैसे कि default-restrictions, एओएसपी की डिफ़ॉल्ट वैल्यू को ओवरराइट कर देता है. ऐसा कोई भी एट्रिब्यूट जिसे तय नहीं किया गया है, एओएसपी की डिफ़ॉल्ट सेटिंग के हिसाब से काम करता है. प्रोफ़ाइल टाइप के बैज एट्रिब्यूट जैसे ज़्यादातर एट्रिब्यूट में बदलाव करने से, उस टाइप के उन उपयोगकर्ताओं पर असर पड़ता है जो पहले से मौजूद हैं. हालांकि, default-restrictions सिर्फ़ उपयोगकर्ता बनाने के समय लागू होता है. इसलिए, इस एट्रिब्यूट में बदलाव किया जा सकता है. अगर ओटीए से config_user_types.xml फ़ाइल में बदलाव किया जाता है, तो पहले से मौजूद उपयोगकर्ताओं पर इसका कोई असर नहीं पड़ता. इसी तरह, उपयोगकर्ताओं की अधिकतम संख्या तय करने की प्रक्रिया सिर्फ़ तब लागू होती है, जब नए उपयोगकर्ता बनाए जाते हैं; मौजूदा उपयोगकर्ताओं को हटाया नहीं जाता.

हर उपयोगकर्ता टाइप के लिए, पसंद के मुताबिक बनाने की मौजूदा पाबंदियां यहां दी गई हैं:

  • प्रोफ़ाइल पूरी तरह से कस्टमाइज़ और परिभाषित की जा सकती हैं. इस मामले में, OEM की ज़िम्मेदारी है कि वह Android में अपनी कस्टम प्रोफ़ाइल के काम करने के लिए, प्लैटफ़ॉर्म में ज़रूरी बदलाव करे. ऐसा इसलिए है, क्योंकि AOSP सिर्फ़ पहले से तय किए गए AOSP उपयोगकर्ता टाइप के साथ काम करता है.
  • सभी उपयोगकर्ताओं को तय नहीं किया जा सकता और सिर्फ़ उनके default-restrictions एट्रिब्यूट को पसंद के मुताबिक बनाया जा सकता है.
  • इस तरीके का इस्तेमाल करके, सिस्टम के उपयोगकर्ता को पसंद के मुताबिक नहीं बनाया जा सकता. इस मामले में, com.android.internal.R.array.config_defaultFirstUserRestrictions का इस्तेमाल करके default-restrictions को सेट किया जा सकता है. ज़्यादा जानकारी के लिए, config.xml पर जाएं.

मौजूदा उपयोगकर्ता टाइप में बदलाव करें

मौजूदा उपयोगकर्ता टाइप को उनकी पसंद के मुताबिक बनाया जा सकता है. इसके लिए, नीचे दिए गए कोड सैंपल में बताए गए एट्रिब्यूट को बदलें.

<user-types version="0">
    <full-type name="android.os.usertype.full.SECONDARY" >
        <default-restrictions no_sms="true" />
    </full-type>

    <profile-type
        name='android.os.usertype.profile.MANAGED'
        max-allowed-per-parent='2'
        icon-badge='@android:drawable/ic_corp_icon_badge_case'
        badge-plain='@android:drawable/ic_corp_badge_case'
        badge-no-background='@android:drawable/ic_corp_badge_no_background' >
        <badge-labels>
            <item res='@android:string/managed_profile_label_badge' />
            <item res='@android:string/managed_profile_label_badge_2' />
        </badge-labels>
        <badge-colors>
            <item res='@android:color/profile_badge_1' />
            <item res='@android:color/profile_badge_2' />
        </badge-colors>
        <default-restrictions no_sms="true" no_outgoing_calls="true" />
    </profile-type>
</user-types>

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

  • सभी अधिकार वाले उपयोगकर्ता android.os.usertype.full.SECONDARY:

    • no_sms की डिफ़ॉल्ट पाबंदी को default-restrictions no_sms="true" तय करके, 'सही' पर सेट किया गया है.
  • प्रोफ़ाइल उपयोगकर्ता android.os.usertype.profile.MANAGED:

    • हर पैरंट उपयोगकर्ता के लिए, दो प्रोफ़ाइल बनाने की अनुमति है. इसके लिए, max-allowed-per-parent='2' को सेट करें.
    • बैज एट्रिब्यूट, icon-badge, badge-plain, badge-no-background, badge-labels, badge-colors का इस्तेमाल करके, आपके हिसाब से वैल्यू पर सेट किए जाते हैं.
    • default-restrictions no_sms="true" no_outgoing_calls="true" तय करके no_sms और no_outgoing_calls की डिफ़ॉल्ट पाबंदियां, 'सही' पर सेट की गई हैं.

इन प्रॉपर्टी का मतलब और डिफ़ॉल्ट वैल्यू जानने के लिए, UserTypeFactory.java और UserTypeDetails.java देखें.

कस्टम प्रोफ़ाइल के टाइप तय करें

नीचे दिया गया कोड सैंपल दिखाता है कि नए और कस्टम प्रोफ़ाइल टाइप कैसे तय किए जाते हैं.

<user-types version="1">
    <profile-type
        name="com.example.profilename"
        max-allowed-per-parent="2" />

    <change-user-type
        from="android.os.usertype.profile.MANAGED"
        to="com.example.profilename"
        whenVersionLeq="1" />
</user-types>

इस कोड सैंपल में, com.example.profilename प्रोफ़ाइल टाइप को इस तरह बताया गया है:

  • हर अभिभावक उपयोगकर्ता की दो प्रोफ़ाइलों के लिए, max-allowed-per-parents को 2 पर सेट किया गया है.

  • change-user-type: जब डिवाइस को <= 1 के user-type वर्शन से ओटीए के ज़रिए अपग्रेड किया जाता है, तो android.os.usertype.profile.MANAGED टाइप की सभी मौजूदा प्रोफ़ाइल को नए com.example.profilename टाइप में बदल दिया जाता है.