কাস্টম ব্যবহারকারীর ধরন প্রয়োগ করা

Android 11-এ ভালভাবে সংজ্ঞায়িত ব্যবহারকারীর ধরন সম্পর্কিত ধারণা চালু করা হয়েছে, যা Android মাল্টি-ইউজার ফিচারের মাধ্যমে অনুমোদিত সমস্ত বিভিন্ন ধরনের ব্যবহারকারীকে উপস্থাপন করে। এই ফিচারের সাহায্যে, OEM আগে থেকে সংজ্ঞায়িত AOSP ব্যবহারকারীর ধরন কাস্টমাইজ করতে এবং নতুন প্রোফাইলের ধরন সংজ্ঞায়িত করতে পারে। আরও তথ্যের জন্য ব্যবহারকারীর ধরন সংক্রান্ত বিভাগ দেখুন।

ব্যবহারকারীর ধরন কাস্টমাইজ করার জন্য প্রয়োজনীয় প্রয়োগ সংক্রান্ত নির্দেশিকা এই পৃষ্ঠায় বিস্তারিতভাবে বলা আছে।

কাস্টমাইজেশন

AOSP ব্যবহারকারীর ধরন কাস্টমাইজ করতে এবং নতুন প্রোফাইলের ধরন নির্ধারণ করতে, OEM-কে পছন্দসই কাস্টমাইজেশন config_user_types.xml ওভারলে করতে হবে। config_user_types.xml ফাইলে একটি রেফারেন্স প্রয়োগ এবং কনফিগার করা যায় এমন অ্যাট্রিবিউটের একটি বিস্তারিত তালিকা রয়েছে।

default-restrictions-এর মতো যেকোনও অ্যাট্রিবিউট যা config_user_types.xml ফাইলে উল্লেখ করা আছে, তা AOSP ডিফল্টকে ওভাররাইট করে। নির্দিষ্ট করা নেই এমন যেকোনও অ্যাট্রিবিউট AOSP ডিফল্ট মেনে চলে। 'প্রোফাইলের ধরন' ব্যাজের অ্যাট্রিবিউটের মতো বেশিরভাগ অ্যাট্রিবিউট পরিবর্তন করলে, সেই ব্যবহারকারীর ধরনের আগে থেকে থাকা ব্যবহারকারীদের উপর প্রভাব পড়ে। তবে, যেহেতু default-restrictions শুধুমাত্র কোনও ব্যবহারকারীকে তৈরি করার সময় প্রয়োগ করা হয়, তাই OTA দ্বারা config_user_types.xml ফাইল পরিবর্তন করা হলে, এই বিশেষ অ্যাট্রিবিউট পরিবর্তন করার ফলে আগে থেকে থাকা ব্যবহারকারীদের উপর কোনও প্রভাব পড়ে না। একইভাবে, ব্যবহারকারীর সর্বাধিক সংখ্যা নির্দিষ্ট করা শুধুমাত্র নতুন ব্যবহারকারী তৈরি করার সময় প্রযোজ্য হয়; আগে থেকে থাকা ব্যবহারকারীদের সরিয়ে দেওয়া হয় না।

প্রতিটি ব্যবহারকারীর ধরনের জন্য বর্তমান কাস্টমাইজেশন সংক্রান্ত বিধিনিষেধ নিচে উল্লেখ করা হল:

  • প্রোফাইল সম্পূর্ণ কাস্টমাইজ ও সংজ্ঞায়িত করা যেতে পারে। এই ক্ষেত্রে, Android-এ কাজ করার জন্য OEM-কে তার কাস্টম প্রোফাইলের জন্য প্রয়োজনীয় প্ল্যাটফর্ম পরিবর্তন করতে হবে, কারণ AOSP শুধুমাত্র আগে থেকে নির্ধারিত AOSP ব্যবহারকারীর ধরনকে সাপোর্ট করে।
  • সম্পূর্ণ ব্যবহারকারীকে সংজ্ঞায়িত করা যায় না এবং শুধুমাত্র তাদের default-restrictions অ্যাট্রিবিউট কাস্টমাইজ করা যায়।
  • এই মেকানিজম ব্যবহার করে সিস্টেম ব্যবহারকারীকে কাস্টমাইজ করা যাবে না। এই ক্ষেত্রে, default-restrictions ব্যবহার করে সেট করা যেতে পারে com.android.internal.R.array.config_defaultFirstUserRestrictions. আরও তথ্যের জন্য 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>

এই কোড স্যাম্পেলে, নিম্নলিখিত AOSP ব্যবহারকারীর ধরনগুলি কাজ করে এমন প্রপার্টি পরিবর্তন করে কাস্টমাইজ করা হয়েছে:

  • সম্পূর্ণ ব্যবহারকারী android.os.usertype.full.SECONDARY:

    • no_sms-এর ডিফল্ট বিধিনিষেধ true হিসেবে সেট করা হয়, এর জন্য 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 ব্যবহার করে ব্যাজ অ্যাট্রিবিউট বেছে নেওয়া ভ্যালুতে সেট করা হয়।
    • no_sms ও no_outgoing_calls-এর ডিফল্ট বিধিনিষেধ default-restrictions no_sms="true" no_outgoing_calls="true" নির্দিষ্ট করে true হিসেবে সেট করা হয়।

এইসব প্রপার্টির অর্থ ও ডিফল্ট ভ্যালু জানতে 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: OTA-এর মাধ্যমে <= 1-এর user-type ভার্সন থেকে ডিভাইস আপগ্রেড করার সময় android.os.usertype.profile.MANAGED ধরনের আগে থেকে ম্যানেজ করা সব প্রোফাইলকে নতুন com.example.profilename ধরনের প্রোফাইলে কনভার্ট করে।