Android 11 a introduit le concept de types d'utilisateurs bien définis, qui représentent 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 profils. Consultez la section sur 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 profils, l'OEM doit superposer config_user_types.xml
avec les personnalisations préférées. Le fichier config_user_types.xml
contient une implémentation de référence et une liste complète des
.
Tout attribut, tel que default-restrictions
, spécifié dans
config_user_types.xml
, écrase la valeur par défaut d'AOSP. Tout attribut qui est
non spécifié, respecte la valeur par défaut d'AOSP. Modifier la plupart des attributs, tels qu'un
attributs de badge du type de profil, ont un impact sur les utilisateurs préexistants du type d'utilisateur concerné.
Toutefois, comme les default-restrictions
ne sont appliqués qu'au moment de la création d'un utilisateur, la modification de cet attribut particulier, dans le cas où le fichier config_user_types.xml
est modifié par OTA, n'a aucun effet sur les utilisateurs préexistants. De même, spécifier le nombre maximal d'utilisateurs s'applique uniquement
la création de nouveaux 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 responsable des modifications de la plate-forme requises pour que son profil personnalisé soit compatible avec Android, car AOSP n'est compatible qu'avec les types d'utilisateurs AOSP prédéfinis.
- Les utilisateurs complets ne peuvent pas être définis et seuls leur attribut
default-restrictions
peuvent être personnalisés. - 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
Voirconfig.xml
pour en savoir plus.
Modifier les types d'utilisateurs existants
Vous pouvez personnaliser les types d'utilisateurs existants en remplaçant leurs attributs, comme illustré 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 acceptées:
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
:- Deux profils sont autorisés pour chaque utilisateur parent en définissant
max-allowed-per-parent='2'
. - Les attributs de badge sont définis sur des valeurs choisies à 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"
- Deux profils sont autorisés 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 définir de nouveaux types de profils personnalisés :
<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éfinis 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
en nouveau typecom.example.profilename
lors de la mise à niveau de l'appareil à partir d'une versionuser-type
de<= 1
via OTA.