Android 11 ha introdotto il concetto di definizione tipi di utenti, che rappresentano tutti i diversi tipi di utenti consentiti Funzionalità multiutente di Android. Con questa funzionalità, gli OEM possono personalizzare Tipi di utenti AOSP e definizione di nuovi tipi di profilo. Consulta la sezione sulle tipi di utente.
Questa pagina illustra le linee guida di implementazione necessarie per personalizzare i tipi di utenti.
Personalizzazione
Per personalizzare i tipi di utente AOSP e definire nuovi tipi di profilo, l'OEM
deve sovrapporsi
config_user_types.xml
con le personalizzazioni preferite. Il file config_user_types.xml
contiene un'implementazione di riferimento e un elenco completo di
attributi.
Qualsiasi attributo, ad esempio default-restrictions
, specificato nel
config_user_types.xml
file, sovrascrive quello predefinito di AOSP. Qualsiasi attributo
non specificato, rispetta il valore predefinito di AOSP. Modificano la maggior parte degli attributi, ad esempio
attributi badge del tipo di profilo, influiscono sugli utenti preesistenti di quel tipo di utente.
Tuttavia, poiché le default-restrictions
vengono applicate solo nel momento in cui l'utente viene
modificato, modificando questo particolare attributo, nel caso in cui
config_user_types.xml
file è stato modificato da OTA e non ha alcun effetto sui file preesistenti
utenti. Analogamente, la specifica del numero massimo di utenti si applica solo alla creazione di nuovi utenti; gli utenti esistenti non vengono rimossi.
Le attuali limitazioni di personalizzazione per ciascun tipo di utente sono le seguenti:
- I profili possono essere completamente personalizzati e definiti. In questo caso, l'OEM è responsabile di apportare le modifiche alla piattaforma necessarie per supportare il proprio profilo personalizzato in Android, poiché AOSP supporta solo i tipi di utente AOSP predefiniti.
- Non è possibile definire utenti con accesso completo e solo il loro attributo
default-restrictions
può essere personalizzato. - L'utente del sistema non può essere personalizzato con questo meccanismo. In questo caso,
È possibile impostare
default-restrictions
utilizzandocom.android.internal.R.array.config_defaultFirstUserRestrictions
. Consultaconfig.xml
per ulteriori informazioni.
Modificare i tipi di utenti esistenti
I tipi di utenti esistenti possono essere personalizzati sostituendo i relativi attributi come mostrato nel seguente esempio di codice:
<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 questo esempio di codice, i seguenti tipi di utente AOSP vengono personalizzati modificando le proprietà supportate:
Utente con accesso completo
android.os.usertype.full.SECONDARY
:- La limitazione predefinita di
no_sms
viene impostata su true specificandodefault-restrictions no_sms="true"
.
- La limitazione predefinita di
Utente del profilo
android.os.usertype.profile.MANAGED
:- Per ogni utente genitore sono consentiti due profili tramite l'impostazione
max-allowed-per-parent='2'
. - Gli attributi del badge vengono impostati su valori scelti utilizzando
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Le limitazioni predefinite di
no_sms
eno_outgoing_calls
sono impostate su true specificandodefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Per ogni utente genitore sono consentiti due profili tramite l'impostazione
Consulta UserTypeFactory.java
e UserTypeDetails.java
per il significato e i valori predefiniti di queste proprietà.
Definisci i tipi di profilo personalizzati
Il seguente esempio di codice mostra come vengono definiti i nuovi tipi di profilo personalizzati:
<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 questo esempio di codice, il tipo di profilo com.example.profilename
è definito come segue:
max-allowed-per-parents
è impostato su2
per due profili per utente genitore.change-user-type
: consente di convertire tutti i profili gestiti esistenti di tipoandroid.os.usertype.profile.MANAGED
nel nuovo tipocom.example.profilename
durante l'upgrade del dispositivo da una versioneuser-type
di<= 1
tramite OTA.