In Android 11 wurde das Konzept der klar definierten Nutzertypen eingeführt, die alle verschiedenen Nutzertypen repräsentieren, die von der Android-Mehrfachnutzerfunktion zulässig sind. Mit dieser Funktion können OEMs vordefinierte AOSP-Nutzertypen anpassen und neue Profiltypen definieren. Weitere Informationen finden Sie im Abschnitt Nutzertypen.
Auf dieser Seite finden Sie die Implementierungsrichtlinien, die Sie zum Anpassen von Nutzertypen benötigen.
Personalisierung
Um AOSP-Nutzertypen 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 der konfigurierbaren Attribute.
Alle Attribute, z. B. default-restrictions
, die in der Datei config_user_types.xml
angegeben sind, überschreiben die AOSP-Standardeinstellungen. Für alle nicht angegebenen Attribute gilt der AOSP-Standard. Änderungen an den meisten Attributen, z. B. an den Kennzeichenattributen eines Profiltyps, wirken sich auf bereits vorhandene Nutzer dieses Nutzertyps aus.
Da default-restrictions
jedoch nur beim Erstellen eines Nutzers angewendet werden, hat die Änderung dieses Attributs, falls die config_user_types.xml
-Datei per Over-the-air (OTA) geändert wird, keine Auswirkungen auf bereits vorhandene Nutzer. Die Angabe der maximalen Anzahl von Nutzern gilt ebenfalls nur beim Erstellen neuer Nutzer. Vorhandene Nutzer werden nicht entfernt.
Die aktuellen Anpassungsbeschränkungen für die einzelnen Nutzertypen sind:
- Profile können vollständig angepasst und definiert werden. In diesem Fall ist der OEM dafür verantwortlich, die erforderlichen Plattformänderungen vorzunehmen, damit sein benutzerdefiniertes Profil in Android unterstützt wird, da AOSP nur die vordefinierten AOSP-Nutzertypen unterstützt.
- Vollständige Nutzer können nicht definiert werden und nur ihr
default-restrictions
-Attribut kann angepasst werden. - Der Systemnutzer kann mit diesem Mechanismus nicht angepasst werden. In diesem Fall kann
default-restrictions
mitcom.android.internal.R.array.config_defaultFirstUserRestrictions
festgelegt werden. Weitere Informationen finden Sie unterconfig.xml
.
Vorhandene Nutzertypen ändern
Vorhandene Nutzertypen können angepasst werden, indem ihre Attribute überschrieben 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-Nutzertypen angepasst, indem die unterstützten Eigenschaften geändert werden:
Als Nutzer mit Vollzugriff
android.os.usertype.full.SECONDARY
:- Die Standardeinschränkung für
no_sms
ist „wahr“, wenn Siedefault-restrictions no_sms="true"
angeben.
- Die Standardeinschränkung für
Profilnutzer
android.os.usertype.profile.MANAGED
:- Für jeden übergeordneten Nutzer sind zwei Profile zulässig. Legen Sie dazu
max-allowed-per-parent='2'
fest. - Kennzeichenattribute werden mit
icon-badge
,badge-plain
,badge-no-background
,badge-labels
undbadge-colors
auf ausgewählte Werte festgelegt. - Die Standardeinschränkungen von
no_sms
undno_outgoing_calls
werden durch Angabe vondefault-restrictions no_sms="true" no_outgoing_calls="true"
auf „wahr“ gesetzt.
- Für jeden übergeordneten Nutzer sind zwei Profile zulässig. Legen Sie dazu
Die Bedeutung und die Standardwerte dieser Properties finden Sie unter UserTypeFactory.java
und UserTypeDetails.java
.
Benutzerdefinierte Profiltypen definieren
Im folgenden Codebeispiel wird gezeigt, 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
so definiert:
max-allowed-per-parents
ist für zwei Profile pro Elternnutzer auf2
festgelegt.change-user-type
: Wandelt alle vorhandenen verwalteten Profile vom Typandroid.os.usertype.profile.MANAGED
in den neuen Typcom.example.profilename
um, wenn das Gerät über OTA von eineruser-type
-Version von<= 1
auf die neueste Version aktualisiert wird.