طرح نظام التشغيل 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
من خلال التحديث عبر الهواء.