Mit Android 11 wurde das Konzept von genau definierten Nutzertypen eingeführt, die alle verschiedenen Nutzertypen darstellen, die von der Android-Funktion für mehrere Nutzer unterstützt werden. 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 für die Anpassung von Nutzertypen erforderlich sind.
Anpassung
Um AOSP-Nutzertypen anzupassen und neue Profiltypen zu definieren, muss der OEM config_user_types.xml mit den gewünschten Anpassungen überschreiben. Die Datei config_user_types.xml enthält eine Referenzimplementierung und eine umfassende Liste der konfigurierbaren Attribute.
Jedes Attribut, z. B. default-restrictions, das in der Datei config_user_types.xml angegeben ist, überschreibt den AOSP-Standardwert. Für alle Attribute, die nicht angegeben sind, gilt der AOSP-Standardwert. Wenn Sie die meisten Attribute ändern, z. B. die Badge-Attribute eines Profiltyps, wirkt sich das auf bestehende Nutzer dieses Nutzertyps aus.
Da default-restrictions jedoch nur bei der Erstellung eines Nutzers angewendet werden, hat die Änderung dieses Attributs, falls die config_user_types.xml-Datei von OTA geändert wird, keine Auswirkungen auf vorhandene Nutzer. Die Angabe der maximalen Anzahl von Nutzern gilt nur für das Erstellen neuer Nutzer. Vorhandene Nutzer werden nicht entfernt.
Die aktuellen Einschränkungen für die Anpassung 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. Nur ihr Attribut
default-restrictionskann angepasst werden. - Der Systemnutzer kann mit diesem Mechanismus nicht angepasst werden. In diesem Fall kann
default-restrictionsmitcom.android.internal.R.array.config_defaultFirstUserRestrictionsfestgelegt 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 durch Ändern der unterstützten Eigenschaften angepasst:
Uneingeschränkter Nutzer
android.os.usertype.full.SECONDARY:- Die Standardeinschränkung von
no_smswird durch die Angabe vondefault-restrictions no_sms="true"auf „true“ gesetzt.
- Die Standardeinschränkung von
Profilnutzer
android.os.usertype.profile.MANAGED:- Für jeden übergeordneten Nutzer sind zwei Profile zulässig, wenn
max-allowed-per-parent='2'festgelegt ist. - Kennzeichenattribute werden mit
icon-badge,badge-plain,badge-no-background,badge-labelsundbadge-colorsauf die ausgewählten Werte festgelegt. - Die Standardeinschränkungen von
no_smsundno_outgoing_callswerden durch Angabe vondefault-restrictions no_sms="true" no_outgoing_calls="true"auf „true“ gesetzt.
- Für jeden übergeordneten Nutzer sind zwei Profile zulässig, wenn
Informationen zur Bedeutung und zu den Standardwerten dieser Attribute finden Sie unter UserTypeFactory.java und UserTypeDetails.java.
Benutzerdefinierte Profiltypen definieren
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 wird der Profiltyp com.example.profilename so definiert:
max-allowed-per-parentsist für zwei Profile pro Elternnutzer auf2festgelegt.change-user-type: Konvertiert alle vorhandenen verwalteten Profile des Typsandroid.os.usertype.profile.MANAGEDin den neuen Typcom.example.profilename, wenn das Gerät über OTA von eineruser-type-Version von<= 1aktualisiert wird.