قدّم Android 11 مفهوم أنواع المستخدمين المحدّدة جيدًا، والتي تمثّل جميع الأنواع المختلفة من المستخدمين الذين تسمح بهم ميزة "تعدد المستخدمين" في Android. باستخدام هذه الميزة، يمكن لمصنّعي المعدّات الأصلية تخصيص أنواع المستخدمين المحدّدة مسبقًا في مشروع Android مفتوح المصدر (AOSP) وتحديد أنواع ملفات شخصية جديدة. لمزيد من المعلومات، يُرجى الاطّلاع على قسم أنواع المستخدمين.
توضّح هذه الصفحة إرشادات التنفيذ اللازمة لتخصيص أنواع المستخدمين.
التخصيص
لتخصيص أنواع المستخدمين في AOSP وتحديد أنواع ملفات شخصية جديدة، على مصنّع المعدّات الأصلية
إضافة طبقة فوق
config_user_types.xml
باستخدام التخصيصات المفضّلة. يحتوي ملف config_user_types.xml على نموذج تنفيذ وقائمة شاملة بالسمات القابلة للإعداد.
أي سمة، مثل default-restrictions، يتم تحديدها في ملف config_user_types.xml، تحل محل الإعداد التلقائي في AOSP. وأي سمة لا يتم تحديدها، تلتزم بالإعداد التلقائي في AOSP. يؤثر تغيير معظم السمات، مثل سمات شارة نوع الملف الشخصي، في المستخدمين الحاليين من هذا النوع.
ومع ذلك، بما أنّ default-restrictions لا يتم تطبيقها إلا عند إنشاء مستخدم، فإنّ تعديل هذه السمة تحديدًا، في حال تغيير ملف config_user_types.xml من خلال تحديث عبر الهواء، لن يؤثر في المستخدمين الحاليين. وبالمثل، لا يتم تطبيق تحديد الحد الأقصى لعدد المستخدمين إلا عند إنشاء مستخدمين جدد، ولا تتم إزالة المستخدمين الحاليين.
في ما يلي قيود التخصيص الحالية لكل نوع من أنواع المستخدمين:
- يمكن تخصيص الملفات الشخصية وتحديدها بالكامل. في هذه الحالة، يكون مصنّع المعدّات الأصلية مسؤولاً عن إجراء تعديلات على النظام الأساسي حسب ما هو مطلوب لكي يتم دعم ملفه الشخصي المخصّص في Android، لأنّ 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>
في عينة التعليمات البرمجية هذه، يتم تخصيص أنواع المستخدمين التالية في مشروع Android المفتوح المصدر (AOSP) من خلال تعديل الخصائص المتاحة:
مستخدم بحقوق كاملة
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. - يتم ضبط القيود التلقائية
no_smsوno_outgoing_callsعلى صحيح من خلال تحديدdefault-restrictions no_sms="true" no_outgoing_calls="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: يحوّل جميع الملفات الشخصية المُدارة الحالية من النوعandroid.os.usertype.profile.MANAGEDإلى النوع الجديدcom.example.profilenameعند ترقية الجهاز من إصدارuser-typeمن<= 1من خلال تحديث عبر الهواء.