Android 11 ha introdotto il concetto di tipi di utenti ben definiti, che rappresentano tutti i diversi tipi di utenti consentiti dalla funzionalità multiutente di Android. Gli OEM possono personalizzare i tipi di utenti AOSP predefiniti e definire nuovi tipi di profilo. Per ulteriori informazioni, consulta la sezione sui tipi di utente.
Questa pagina contiene informazioni dettagliate sulle 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 overlay config_user_types.xml
con le personalizzazioni desiderate. Il file config_user_types.xml
contiene un'implementazione di riferimento e un elenco completo di attributi
configurabili.
Qualsiasi attributo, ad esempio default-restrictions
, specificato nel
file config_user_types.xml
, sovrascrive il valore predefinito di AOSP. Tutti gli attributi non specificati
rispettano il valore predefinito di AOSP. La modifica della maggior parte degli attributi, ad esempio gli attributi del badge di un tipo di profilo, interessa gli utenti preesistenti di quel tipo di utente.
Tuttavia, poiché i default-restrictions
vengono applicati solo al momento della creazione di un utente, modificando questo particolare attributo nel caso in cui il file config_user_types.xml
venga modificato da un'agenzia di viaggi online, non ha alcun effetto sugli utenti preesistenti. Analogamente, specificare il numero massimo di utenti si applica solo quando si creano nuovi utenti; gli utenti esistenti non vengono rimossi.
Le attuali limitazioni di personalizzazione per ogni tipo di utente sono le seguenti:
- I profili possono essere completamente personalizzati e definiti. In questo caso, l'OEM è responsabile di apportare modifiche alla piattaforma in base alle esigenze del supporto del profilo personalizzato in Android, poiché AOSP supporta solo i tipi di utente AOSP predefiniti.
- Non è possibile definire gli utenti completi e solo il loro attributo
default-restrictions
può essere personalizzato. - L'utente del sistema non può essere personalizzato con questo meccanismo. In questo caso,
default-restrictions
può essere impostato utilizzandocom.android.internal.R.array.config_defaultFirstUserRestrictions
. Per saperne di più, visita la paginaconfig.xml
.
Modificare i tipi di utenti esistenti
I tipi di utenti esistenti possono essere personalizzati eseguendo l'override dei 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 principale sono consentiti due profili tramite l'impostazione
max-allowed-per-parent='2'
. - Gli attributi del badge vengono impostati sui valori desiderati utilizzando
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Le limitazioni predefinite di
no_sms
eno_outgoing_calls
vengono impostate su true specificandodefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Per ogni utente principale 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
viene definito come segue:
max-allowed-per-parents
è impostato su2
per due profili per utente principale.change-user-type
: converte tutti i profili gestiti esistenti di tipoandroid.os.usertype.profile.MANAGED
nel nuovo tipocom.example.profilename
quando viene eseguito l'upgrade del dispositivo da una versioneuser-type
di<= 1
tramite OTA.