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