Supporta più utenti

Android supporta più utenti su un singolo dispositivo Android separando gli utenti e i dati delle app. Ad esempio, i genitori potrebbero permettere ai loro figli di usano il tablet di famiglia, un'automobile può essere condivisa con la famiglia o un team di pronto intervento potrebbero condividere un dispositivo mobile per il servizio di emergenza.

Terminologia

Android utilizza i seguenti termini per descrivere gli utenti e gli account Android.

Generali

Per la gestione dei dispositivi Android vengono utilizzati i seguenti termini generali:

  • Utente: ogni utente è destinato a essere utilizzato da un cliente persona. Ogni utente ha dati dell'app distinti e alcune impostazioni univoche, nonché un'interfaccia utente per passare esplicitamente da un utente all'altro. Un utente può pubblicare in lo sfondo quando un altro utente è attivo; il sistema gestisce l'arresto, agli utenti di risparmiare risorse quando opportuno. È possibile creare utenti secondari direttamente tramite l'interfaccia utente o da un Dispositivo App di amministrazione.
  • Account: gli account sono contenuti in un utente, ma non sono definiti da un utente, né un utente è definito o collegato a un determinato account. Gli utenti e i profili contengono i propri account univoci, ma non è necessario che abbiano account per essere funzionali. L'elenco degli account varia in base all'utente. Per maggiori dettagli, consulta le Account della classe.
  • Profilo: un profilo ha dati delle app separati, ma condivide alcune impostazioni di sistema (ad esempio Wi-Fi e Bluetooth). Un profilo è un sottoinsieme e correlato all'esistenza di un utente. Un utente può avere più profili. I profili vengono creati tramite Dispositivo App di amministrazione. Un profilo ha sempre un'associazione immutabile a un utente principale, definito dall'utente che ha creato il profilo. I profili non esistono oltre il ciclo di vita dell'utente che li ha creati.
  • App: esistono dati di un'app all'interno di ciascun utente associato. I dati delle app vengono limitati da altre app all'interno dello stesso utente. Le app dello stesso utente possono interagire tra loro tramite IPC. Per maggiori dettagli, consulta ad Android per le aziende.

Categorie di utenti

L'amministrazione dei dispositivi Android utilizza le seguenti categorie di utenti.

  • Utente di sistema: primo utente aggiunto a un dispositivo. L'utente di sistema non può essere rimosso se non tramite il ripristino dei dati di fabbrica ed è sempre in esecuzione anche quando altri utenti sono in primo piano. Questo utente dispone anche di privilegi speciali e impostazioni che solo può configurare.
  • Utente di sistema headless: il primo utente aggiunto a un dispositivo se quest'ultimo è configurato per l'esecuzione in modalità utente di sistema headless (configurando ro.fw.mu.headless_system_user=true). L'utente del sistema headless viene sempre eseguito in background, quindi questi dispositivi richiedono agli utenti in primo piano per consentire l'interazione.
  • Utente secondario:qualsiasi utente aggiunto a un dispositivo diverso dal sistema utente. Gli utenti secondari possono essere rimossi (da soli o da un amministratore) utente) e non possono influire su altri utenti di un dispositivo. Questi utenti possono essere eseguiti in background e continuare ad avere connettività di rete.
  • Utente ospite: utente secondario temporaneo. Gli utenti ospiti hanno un'opzione esplicita per eliminare rapidamente l'utente ospite quando non è più utile. È possibile essere un solo utente ospite alla volta.
  • Utente amministratore:un utente che dispone dell'autorizzazione per creare e rimuovere altri utenti. e controllare alcune impostazioni multiutente generali. Per impostazione predefinita, solo l'utente del sistema è un amministratore.

Categorie di profili

Android utilizza le seguenti categorie di profili:

  • Profilo gestito: creato da un'app per contenere app e dati di lavoro. Sono gestiti esclusivamente dal proprietario del profilo (l'app che il profilo dell'azienda è stato creato). Avvio, notifiche e attività recenti sono condivisi dall'utente principale e dal profilo aziendale.
  • Profilo con restrizioni: utilizza gli account basati sull'utente principale, che può controllare le app disponibili nel profilo con restrizioni. Disponibile solo su tablet e televisori.
  • Profilo clone: Android supporta la creazione di un tipo di utente del profilo clone distinto per consentire l'esecuzione di due istanze di una singola app sul dispositivo. AOSP non fornisce un supporto end-to-end per la funzionalità. Gli OEM devono aggiungere personalizzazioni per offrire la funzionalità completa agli utenti Android.
  • Profilo privato:è uno spazio sandbox separato dal resto del dispositivo. che può essere bloccato separatamente dall'utente principale. Un profilo privato può esistere solo utente principale. Quando il profilo privato è sbloccato, le app diventano visibili nelle impostazioni, in Sharesheet, in PhotoPicker e nella UI di Documenti, ma vengono nascoste quando è bloccato. Il profilo privato può esistere sullo stesso dispositivo insieme al profilo di lavoro e al profilo clone.

Tipi di utente

Android 11 ha formulato la suddetta classificazione degli utenti e dei profili in una tipi di utente, che rappresentano tutti i diversi tipi di utenti e profili consentiti funzionalità.

I tipi di utente AOSP predefiniti sono definiti in frameworks/base/core/java/android/os/UserManager.java e attualmente includono:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

Gli OEM hanno la possibilità di configurare questi tipi di utenti sovrapponendo il fileframeworks/base/core/res/res/xml/config_user_types.xml. Ciò facilita la modifica della configurazione predefinita per ciascun tipo di utente, incluse restrizioni, icone, badge predefiniti e il numero massimo consentito di utenti.

Oltre ai tipi di utenti AOSP configurabili, gli OEM possono definire nuovi tipi di profili utilizzando il frameworks/base/core/res/res/xml/config_user_types.xml file. In questo modo, gli OEM possono introdurre i propri tipi di profili non gestiti, se lo desiderano. Tuttavia, è responsabilità dell'OEM apportare le modifiche alla piattaforma necessarie per supportare il modifiche, inclusa la modifica di qualsiasi codice che verifichi la presenza di profili gestiti per gestire il nuovo profilo. digita, se appropriato.

Attiva la funzionalità multiutente

La funzionalità multiutente è disattivata per impostazione predefinita. A attivare la funzionalità, i produttori di dispositivi devono definire un overlay di risorse che i seguenti valori in frameworks/base/core/res/res/values/config.xml:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Per applicare questo overlay e attivare gli utenti ospiti e secondari sul dispositivo, utilizza la funzionalità DEVICE_PACKAGE_OVERLAYS del sistema di compilazione Android per sostituire i valori di:

  • config_multiuserMaximumUsers con un valore maggiore di 1
  • config_enableMultiUserUI con true

I produttori di dispositivi possono decidere il numero massimo di utenti. Se il dispositivo produttori o altri soggetti hanno impostazioni modificate, devono garantire che SMS e funzionalità di telefonia come definito Compatibilità con Android Definition Document (CDD).

Gestire più utenti

Gestione di utenti e profili (ad eccezione dei profili con limitazioni) viene eseguita da app che richiamano l'API in modo programmatico DevicePolicyManager classe per limitarne l'utilizzo.

Le aziende possono utilizzare utenti e profili per gestire la durata e l'ambito di app e dati sui dispositivi, utilizzando i tipi descritti sopra in combinazione con le API DevicePolicyManager e UserManager per creare soluzioni uniche personalizzate per i loro casi d'uso.

Comportamento del sistema multiutente

Quando gli utenti vengono aggiunti a un dispositivo, alcune funzionalità vengono limitate quando un altro utente è in primo piano. Poiché i dati delle app sono separati per utente, lo stato di queste app varia in base all'utente. Ad esempio, le email destinate a un account di un utente non attualmente attivo non saranno disponibili finché l'utente e l'account non saranno attivi sul dispositivo.

Nota: per attivare o disattivare le funzioni di telefono e SMS per un utente secondario, vai a Impostazioni > Utenti, seleziona l'utente e disattiva l'impostazione Consenti chiamate e SMS.

Esistono alcune limitazioni quando un utente secondario è in background. Ad esempio, l'utente secondario in background non può visualizzare l'interfaccia utente o Servizi Bluetooth attivi. Inoltre, lo sfondo per l'interruzione del processo di sistema gli utenti secondari se il dispositivo ha bisogno di memoria aggiuntiva per le operazioni nel a un utente in primo piano.

Quando utilizzi più utenti su un dispositivo Android, tieni presente il seguente comportamento:

  • Le notifiche vengono visualizzate contemporaneamente per tutti gli account di un singolo utente.
  • Le notifiche per altri utenti non vengono visualizzate finché non sono attive.
  • Ogni utente ha a disposizione un'area di lavoro per installare e posizionare le app.
  • Nessun utente ha accesso ai dati dell'app di un altro utente.
  • Qualsiasi utente può influire sulle app installate per tutti gli utenti.
  • Un utente amministratore può rimuovere le app o anche l'intera area di lavoro stabilita da utenti secondari.
  • Per impostazione predefinita, le informazioni di una sessione utente Ospite non vengono mantenute quando si esce dalla modalità Ospite. Se vuoi che le informazioni di una sessione utente Ospite vengano mantenute, devi creare una risorsa di overlay che imposta config_guestUserAllowEphemeralStateChange su false. Per ulteriori informazioni sulla creazione di file di overlay, consulta Personalizza la build con overlay di risorse.

Android Automotive multiutente

Android Automotive si basa sull'implementazione multiutente di Android per fornire un dispositivo condiviso un'esperienza senza intervento manuale.

Tipi di utenti nel settore auto e motori

Oltre ai tipi di utenti elencati sopra, le build per il settore auto e motori sono importanti per questi tipi di utenti:

  • Utente del sistema headless. L'utente del sistema ospita tutti i servizi di sistema. Per supportare più utenti in Automotive, l'utente di sistema deve essere anche headless. Esiste un solo utente headless. Un utente del sistema headless:
    • Deve sempre essere eseguita in background.
    • Non possono essere rimossi o accessibili direttamente dall'utente, tranne che nel caso del dispositivo. Provisioning in corso. Ad esempio, gli utenti non possono passare a questo tipo di utente per eseguire attività come scaricare app o aggiungere account.
    • Può essere cancellato solo con un ripristino dei dati di fabbrica.
  • Utenti normali. Gli stessi di Utenti secondari, descritti sopra, tranne per il fatto che gli utenti secondari:
    • Non essere in esecuzione in background (dopo essere stata disattivata).
    • Possono essere creati direttamente tramite l'interfaccia utente.
    • Hanno dati delle app separati, ma condividono alcune impostazioni a livello di sistema. Ad esempio, Wi-Fi e Bluetooth.

Limitazioni

Le seguenti eccezioni si applicano all'utente di sistema headless e agli utenti regolari (secondari) in Automotive:

  • L'utente del sistema headless non supporta i profili di lavoro.
  • Per impostazione predefinita, gli utenti normali (secondari) hanno accesso completo alle telefonate e ai messaggi.
  • Per impostazione predefinita, gli utenti normali (secondari) non vengono eseguiti in background.

Attivare l'utente di sistema headless

A partire da Android 10, la funzionalità multiutente può essere usata per casi d'uso nel settore auto e motori. Ecco alcune delle differenze importanti:

  • L'utente del sistema è headless e viene eseguito solo in background.
  • Gli utenti umani non interagiscono con l'utente di sistema.

Per attivare l'utente di sistema senza interfaccia, i produttori di dispositivi devono attivare il multiutente come descritto sopra.

Quando l'utente headless è abilitato:
  1. Per dichiarare il dispositivo come Auto e motori, aggiungi la funzionalità android.hardware.type.automotive.
  2. Imposta ro.fw.headless_system_user su true.
  3. Imposta il valore di config_multiuserMaximumUsers su 2 (o superiore).

Per ulteriori informazioni, consulta la sezione Supporto multiutente in Automotive.

Android Automotive multiutente su più display

Una nuova funzionalità sperimentale in Android 14 consente agli utenti secondari con accesso completo (non l'utente corrente in primo piano) di avviare attività e accedere all'interfaccia utente sul display a cui sono assegnati. Questa funzionalità consente a più utenti contemporaneamente nel sistema operativo Android Automotive di supportare esperienze in auto che offrono a più passeggeri un'esperienza utente dedicata in una singola istanza di Android.

Per attivare questa funzionalità per l'utilizzo in fase di sviluppo, i produttori di dispositivi devono definire un overlay della risorsa per sostituire il seguente valore in frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Puoi sperimentare un'esperienza solo per i passeggeri (senza conducente) attivando quanto segue configurazione aggiuntiva:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

In Android 14, puoi attivare l'esperienza in auto per più passeggeri come utenti ospiti. Per abilitare più utenti ospiti per l'utilizzo per lo sviluppo, sul dispositivo i produttori devono definire un overlay di risorse che configuri il numero massimo consentito di utenti in frameworks/base/core/res/res/xml/config_user_types.xml, ad esempio esempio:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>