طرح نظام التشغيل Android 11 مفهومًا محددًا لأنواع المستخدمين، ويمثّل ذلك جميع الأنواع المختلفة من المستخدمين المسموح لهم باستخدام ميزة "تعدُّد المستخدمين" في 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
من خلال OTA، لن يؤثر في
المستخدِمين الحاليين. وبالمثل، لا ينطبق تحديد الحد الأقصى لعدد المستخدمين إلا عند
إنشاء مستخدمين جدد، ولا تتم إزالة المستخدمين الحاليين.
في ما يلي قيود التخصيص الحالية لكل نوع من أنواع المستخدمين:
- يمكن تخصيص الملفات التجارية وتحديدها بالكامل. في هذه الحالة، يكون المصنّع الأصلي للجهاز هو المسؤول عن إجراء تعديلات على النظام الأساسي على النحو المطلوب لكي يكون ملفه الشخصي المخصّص متوافقًا مع Android، لأنّ "المشروع المفتوح المصدر لنظام Android" لا يتيح سوى استخدام أنواع المستخدمين المحدّدة مسبقًا في "المشروع المفتوح المصدر لنظام Android".
- لا يمكن تحديد المستخدمين الكاملين، ولا يمكن تخصيص سوى سمة
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
على "صحيح" من خلال تحديد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
على قيمة true من خلال تحديد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
عبر التحديث عبر الهواء