قدّم نظام التشغيل 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، لأنّ بروتوكول 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
على "صحيح" من خلال تحديد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
من خلال التحديث عبر الهواء