Android 11 hat das Konzept klar definierter Benutzertypen eingeführt, die alle verschiedenen Benutzertypen repräsentieren, die die Android-Mehrbenutzerfunktion zulässt. Mit dieser Funktion können OEMs vordefinierte AOSP-Benutzertypen anpassen und neue Profiltypen definieren. Weitere Informationen finden Sie im Abschnitt über Benutzertypen .
Auf dieser Seite werden die Implementierungsrichtlinien beschrieben, die zum Anpassen von Benutzertypen erforderlich sind.
Anpassung
Um AOSP-Benutzertypen anzupassen und neue Profiltypen zu definieren, muss der OEM config_user_types.xml
mit den gewünschten Anpassungen überlagern. Die Datei config_user_types.xml
enthält eine Referenzimplementierung und eine umfassende Liste konfigurierbarer Attribute.
Jedes Attribut, z. B. default-restrictions
, das in der Datei config_user_types.xml
angegeben ist, überschreibt die AOSP-Standardeinstellung. Jedes Attribut, das nicht angegeben ist, folgt der AOSP-Standardeinstellung. Das Ändern der meisten Attribute, beispielsweise der Badge-Attribute eines Profiltyps, wirkt sich auf bereits vorhandene Benutzer dieses Benutzertyps aus. Da jedoch default-restrictions
nur zum Zeitpunkt der Erstellung eines Benutzers gelten, hat die Änderung dieses bestimmten Attributs, falls die Datei config_user_types.xml
durch OTA geändert wird, keine Auswirkungen auf bereits vorhandene Benutzer. Ebenso gilt die Angabe der maximalen Benutzeranzahl nur beim Anlegen neuer Benutzer; Vorhandene Benutzer werden nicht entfernt.
Die aktuellen Anpassungseinschränkungen für jeden Benutzertyp lauten wie folgt:
- Profile können vollständig angepasst und definiert werden. In diesem Fall ist der OEM dafür verantwortlich, bei Bedarf Plattformänderungen vorzunehmen, damit sein benutzerdefiniertes Profil in Android unterstützt wird, da AOSP nur die vordefinierten AOSP-Benutzertypen unterstützt.
- Vollständige Benutzer können nicht definiert werden und nur ihr Attribut
default-restrictions
kann angepasst werden. - Der Systembenutzer kann mit diesem Mechanismus nicht angepasst werden. In diesem Fall können
default-restrictions
mithilfe voncom.android.internal.R.array.config_defaultFirstUserRestrictions
festgelegt werden. Weitere Informationen finden Sie unterconfig.xml
.
Ändern Sie vorhandene Benutzertypen
Vorhandene Benutzertypen können durch Überschreiben ihrer Attribute angepasst werden, wie im folgenden Codebeispiel gezeigt.
<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>
In diesem Codebeispiel werden die folgenden AOSP-Benutzertypen durch Ändern der unterstützten Eigenschaften angepasst.
Vollständiger Benutzer
android.os.usertype.full.SECONDARY
:- Die Standardeinschränkung von
no_sms
wird durch Angabe vondefault-restrictions no_sms="true"
auf true gesetzt.
- Die Standardeinschränkung von
Profilbenutzer
android.os.usertype.profile.MANAGED
:- Für jeden übergeordneten Benutzer sind zwei Profile zulässig, indem
max-allowed-per-parent='2'
festgelegt wird. - Badge-Attribute werden mithilfe von
icon-badge
,badge-plain
,badge-no-background
,badge-labels
undbadge-colors
auf die gewünschten Werte gesetzt. - Die Standardeinschränkungen von
no_sms
undno_outgoing_calls
werden durch Angabe vondefault-restrictions no_sms="true" no_outgoing_calls="true"
auf true gesetzt.
- Für jeden übergeordneten Benutzer sind zwei Profile zulässig, indem
Die Bedeutung und Standardwerte dieser Eigenschaften finden Sie in UserTypeFactory.java
und UserTypeDetails.java
.
Definieren Sie benutzerdefinierte Profiltypen
Das folgende Codebeispiel zeigt, wie neue, benutzerdefinierte Profiltypen definiert werden.
<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>
In diesem Codebeispiel ist der Profiltyp com.example.profilename
wie folgt definiert:
max-allowed-per-parents
ist für zwei Profile pro übergeordnetem Benutzer auf2
festgelegt.change-user-type
: Konvertiert alle vorhandenen verwalteten Profile des Typsandroid.os.usertype.profile.MANAGED
in den neuen Typcom.example.profilename
, wenn das Gerät von eineruser-type
<= 1
über OTA aktualisiert wird.