Android 11 a introduit le concept de types d'utilisateurs bien définis, représentant tous les différents types d'utilisateurs autorisés par la fonctionnalité multi-utilisateur Android. Grâce à cette fonctionnalité, les OEM peuvent personnaliser les types d'utilisateurs AOSP prédéfinis et définir de nouveaux types de profil. Pour en savoir plus, consultez la section sur les types d'utilisateurs.
Cette page détaille les consignes d'implémentation nécessaires pour personnaliser les types d'utilisateurs.
Personnalisation
Pour personnaliser les types d'utilisateurs AOSP et définir de nouveaux types de profil, l'OEM doit superposer config_user_types.xml
avec les personnalisations souhaitées. Le fichier config_user_types.xml
contient une implémentation de référence et une liste complète d'attributs configurables.
Tout attribut, tel que default-restrictions
, spécifié dans le fichier config_user_types.xml
, remplace la valeur par défaut d'AOSP. Tout attribut non spécifié obéit à la valeur par défaut d'AOSP. La modification de la plupart des attributs, tels que les attributs de badge d'un type de profil, affecte les utilisateurs préexistants de ce type d'utilisateur.
Toutefois, comme les default-restrictions
ne sont appliquées qu'au moment de la création d'un utilisateur, la modification de cet attribut particulier, si le fichier config_user_types.xml
est modifié par l'OTA, n'a aucun effet sur les utilisateurs préexistants. De même, la spécification du nombre maximal d'utilisateurs ne s'applique que lors de la création d'utilisateurs. Les utilisateurs existants ne sont pas supprimés.
Voici les restrictions de personnalisation actuelles pour chaque type d'utilisateur:
- Les profils peuvent être entièrement personnalisés et définis. Dans ce cas, l'OEM est chargé d'apporter les modifications de plate-forme nécessaires à la prise en charge de son profil personnalisé dans Android, car AOSP n'accepte que les types d'utilisateurs AOSP prédéfinis.
- Les utilisateurs complets ne peuvent pas être définis, et seul leur attribut
default-restrictions
peut être personnalisé. - L'utilisateur système ne peut pas être personnalisé à l'aide de ce mécanisme. Dans ce cas,
default-restrictions
peut être défini à l'aide decom.android.internal.R.array.config_defaultFirstUserRestrictions
. Pour en savoir plus, consultezconfig.xml
.
Modifier les types d'utilisateurs existants
Les types d'utilisateurs existants peuvent être personnalisés en rempla��ant leurs attributs, comme indiqué dans l'exemple de code suivant.
<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>
Dans cet exemple de code, les types d'utilisateurs AOSP suivants sont personnalisés en modifiant les propriétés prises en charge.
Utilisateur avec accès complet
android.os.usertype.full.SECONDARY
:- La restriction par défaut de
no_sms
est définie sur "true" en spécifiantdefault-restrictions no_sms="true"
.
- La restriction par défaut de
Utilisateur du profil
android.os.usertype.profile.MANAGED
:- Vous pouvez autoriser deux profils pour chaque utilisateur parent en définissant
max-allowed-per-parent='2'
. - Les attributs du badge sont définis sur les valeurs souhaitées à l'aide de
icon-badge
,badge-plain
,badge-no-background
,badge-labels
etbadge-colors
. - Les restrictions par défaut de
no_sms
etno_outgoing_calls
sont définies sur "true" en spécifiantdefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Vous pouvez autoriser deux profils pour chaque utilisateur parent en définissant
Reportez-vous à UserTypeFactory.java
et UserTypeDetails.java
pour connaître la signification et les valeurs par défaut de ces propriétés.
Définir des types de profils personnalisés
L'exemple de code suivant montre comment les nouveaux types de profil personnalisés sont définis.
<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>
Dans cet exemple de code, le type de profil com.example.profilename
est défini comme suit:
max-allowed-per-parents
est défini sur2
pour deux profils par utilisateur parent.change-user-type
: convertit tous les profils gérés existants de typeandroid.os.usertype.profile.MANAGED
vers le nouveau typecom.example.profilename
lors de la mise à niveau de l'appareil depuis une versionuser-type
d'<= 1
via OTA.