Unterstützung mehrerer Benutzer

Android unterstützt mehrere Benutzer auf einem einzigen Android-Gerät, indem Benutzerkonten und Anwendungsdaten getrennt werden. Beispielsweise können Eltern ihren Kindern erlauben, das Familien-Tablet zu verwenden, eine Familie kann sich ein Auto teilen, oder ein Notfallteam kann sich ein mobiles Gerät für den Bereitschaftsdienst teilen.

Terminologie

Android verwendet die folgenden Begriffe zur Beschreibung von Android-Benutzern und -Konten.

Allgemein

Die Android-Geräteverwaltung verwendet die folgenden allgemeinen Begriffe.

  • Benutzer . Jeder Benutzer soll von einer anderen natürlichen Person verwendet werden. Jeder Benutzer hat unterschiedliche Anwendungsdaten und einige einzigartige Einstellungen sowie eine Benutzeroberfläche, um explizit zwischen Benutzern zu wechseln. Ein Benutzer kann im Hintergrund laufen, wenn ein anderer Benutzer aktiv ist; Das System verwaltet das Herunterfahren von Benutzern, um gegebenenfalls Ressourcen zu sparen. Sekundäre Benutzer können entweder direkt über die Benutzeroberfläche oder über eine Geräteverwaltungsanwendung erstellt werden.
  • Konto . Konten sind in einem Benutzer enthalten, werden jedoch nicht von einem Benutzer definiert, noch wird ein Benutzer von einem bestimmten Konto definiert oder mit diesem verknüpft. Benutzer und Profile enthalten ihre eigenen eindeutigen Konten, müssen jedoch keine Konten haben, um funktionsfähig zu sein. Die Liste der Konten ist je nach Benutzer unterschiedlich. Einzelheiten finden Sie in der Definition der Kontoklasse .
  • Profil . Ein Profil hat getrennte App-Daten, teilt aber einige systemweite Einstellungen (z. B. Wi-Fi und Bluetooth). Ein Profil ist eine Teilmenge der Existenz eines Benutzers und daran gebunden. Ein Benutzer kann mehrere Profile haben. Profile werden über eine Geräteverwaltungsanwendung erstellt. Ein Profil hat immer eine unveränderliche Zuordnung zu einem übergeordneten Benutzer, der von dem Benutzer definiert wird, der das Profil erstellt hat. Profile bestehen nicht über die Lebensdauer des erstellenden Benutzers hinaus.
  • Anwendung . Die Daten einer Anwendung sind in jedem zugeordneten Benutzer vorhanden. App-Daten werden von anderen Anwendungen innerhalb desselben Benutzers in einer Sandbox gespeichert. Apps innerhalb desselben Benutzers können über IPC miteinander interagieren. Einzelheiten finden Sie unter Android für Unternehmen .

Kategorien von Benutzern

Die Android-Geräteverwaltung verwendet die folgenden Kategorien von Benutzern.

  • Systembenutzer . Erster Benutzer, der einem Gerät hinzugefügt wurde. Der Systembenutzer kann nur durch Zurücksetzen auf die Werkseinstellungen entfernt werden und läuft immer, auch wenn andere Benutzer im Vordergrund sind. Dieser Benutzer hat auch spezielle Privilegien und Einstellungen, die nur er festlegen kann.
  • Zweitbenutzer . Alle Benutzer, die dem Gerät hinzugefügt wurden, außer dem Systembenutzer. Sekundäre Benutzer können entfernt werden (entweder von ihnen selbst oder von einem Admin-Benutzer) und können andere Benutzer auf einem Gerät nicht beeinflussen. Diese Benutzer können im Hintergrund ausgeführt werden und weiterhin über eine Netzwerkverbindung verfügen.
  • Gastbenutzer . Temporärer sekundärer Benutzer. Gastbenutzer haben eine explizite Option, um den Gastbenutzer schnell zu löschen, wenn seine Nützlichkeit beendet ist. Es kann immer nur ein Gastbenutzer gleichzeitig vorhanden sein.
  • Admin-Benutzer . Ein Benutzer, der berechtigt ist, andere Benutzer zu erstellen und zu entfernen sowie einige allgemeine Einstellungen für mehrere Benutzer zu steuern. Standardmäßig ist nur der Systembenutzer ein Administrator.

Kategorien von Profilen

Die Android-Geräteverwaltung verwendet die folgenden Profilkategorien.

  • Verwaltetes Profil . Von einer Anwendung erstellt, um Arbeitsdaten und Apps zu enthalten. Sie werden ausschließlich vom Profilinhaber (der App, die das Unternehmensprofil erstellt hat) verwaltet. Launcher, Benachrichtigungen und letzte Aufgaben werden vom übergeordneten Benutzer und dem Corporate-Profil geteilt.
  • Eingeschränktes Profil . Verwendet Konten basierend auf dem übergeordneten Benutzer, der steuern kann, welche Apps im eingeschränkten Profil verfügbar sind. Nur auf Tablets und Fernsehgeräten verfügbar.

Benutzertypen

Android 11 hat die obige Klassifizierung von Benutzern und Profilen in klar definierte Benutzertypen formuliert, die alle verschiedenen Arten von Benutzern und Profilen darstellen, die von der Android-Mehrbenutzerfunktion zugelassen werden.

Die vordefinierten AOSP-Benutzertypen sind in frameworks/base/core/java/android/os/UserManager.java und umfassen derzeit:

  • 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

OEMs haben die Möglichkeit, diese Benutzertypen zu konfigurieren, indem sie die Datei frameworks/base/core/res/res/xml/config_user_types.xml . Dies erleichtert das Ändern der Standardkonfiguration für jeden Benutzertyp, einschließlich seiner Standardeinschränkungen, Symbole, Abzeichen und der maximal zulässigen Anzahl von Benutzern.

Zusätzlich zu den konfigurierbaren AOSP-Benutzertypen können OEMs mithilfe der Datei frameworks/base/core/res/res/xml/config_user_types.xml neue Profiltypen definieren. Dadurch können OEMs bei Bedarf ihre eigenen nicht verwalteten Profiltypen einführen. Es liegt jedoch in der Verantwortung des OEM, die Plattformänderungen nach Bedarf vorzunehmen, um die Änderungen zu unterstützen, einschließlich der Änderung von Code, der nach verwalteten Profilen sucht, um den neuen Profiltyp jetzt gegebenenfalls zu handhaben.

Mehrbenutzer aktivieren

Ab Android 5.0 ist die Mehrbenutzerfunktion standardmäßig deaktiviert. Um die Funktion zu aktivieren, müssen Gerätehersteller ein Ressourcen-Overlay definieren, das die folgenden Werte 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>

Um dieses Overlay anzuwenden und Gast- und sekundäre Benutzer auf dem Gerät zu aktivieren, verwenden Sie die Funktion DEVICE_PACKAGE_OVERLAYS des Android-Build-Systems, um die Werte zu ersetzen für:

  • config_multiuserMaximumUsers mit einem Wert größer als 1
  • config_enableMultiUserUI mit true

Gerätehersteller können über die maximale Anzahl von Benutzern entscheiden. Wenn Gerätehersteller oder andere Einstellungen geändert haben, müssen sie sicherstellen, dass SMS und Telefonie funktionieren, wie im Android Compatibility Definition Document (CDD) definiert.

Verwalten mehrerer Benutzer

Die Verwaltung von Benutzern und Profilen (mit Ausnahme von eingeschränkten Profilen) wird von Anwendungen durchgeführt, die die API in der DevicePolicyManager -Klasse programmgesteuert aufrufen, um die Nutzung einzuschränken.

Schulen und Unternehmen können Benutzer und Profile verwenden, um die Lebensdauer und den Umfang von Apps und Daten auf Geräten zu verwalten, indem sie die oben beschriebenen Typen in Verbindung mit der UserManager-API verwenden , um einzigartige Lösungen zu entwickeln, die auf ihre Anwendungsfälle zugeschnitten sind.

Verhalten von Mehrbenutzersystemen

Wenn einem Gerät Benutzer hinzugefügt werden, werden einige Funktionen eingeschränkt, wenn ein anderer Benutzer im Vordergrund ist. Da App-Daten nach Benutzer getrennt sind, unterscheidet sich der Status dieser Apps je nach Benutzer. Beispielsweise sind E-Mails, die für ein Konto eines Benutzers bestimmt sind, der derzeit nicht im Fokus ist, nicht verfügbar, bis dieser Benutzer und dieses Konto auf dem Gerät aktiv sind.

Standardmäßig hat nur der Systembenutzer vollen Zugriff auf Telefonanrufe und SMS. Der sekundäre Benutzer kann eingehende Anrufe empfangen, aber keine SMS senden oder empfangen. Ein Admin-Benutzer muss diese Funktionen für andere aktivieren.

Hinweis : Um die Telefon- und SMS-Funktionen für einen sekundären Benutzer zu aktivieren oder zu deaktivieren, gehen Sie zu Einstellungen > Benutzer , wählen Sie den Benutzer aus und schalten Sie die Einstellung Telefonanrufe und SMS zulassen auf aus.

Einige Einschränkungen bestehen, wenn ein sekundärer Benutzer im Hintergrund ist. Beispielsweise kann der Hintergrund-Sekundärbenutzer nicht die Benutzeroberfläche anzeigen oder Bluetooth-Dienste aktivieren. Darüber hinaus stoppt der Systemprozess sekundäre Hintergrundbenutzer, wenn das Gerät zusätzlichen Speicher für Operationen im Vordergrundbenutzer benötigt.

Beachten Sie beim Einsatz mehrerer Nutzer auf einem Android-Gerät folgendes Verhalten:

  • Benachrichtigungen werden für alle Konten eines einzelnen Benutzers gleichzeitig angezeigt.
  • Benachrichtigungen für andere Benutzer werden erst angezeigt, wenn sie aktiv sind.
  • Jeder Benutzer erhält einen Arbeitsbereich zum Installieren und Platzieren von Apps.
  • Kein Nutzer hat Zugriff auf die App-Daten eines anderen Nutzers.
  • Jeder Benutzer kann die installierten Apps für alle Benutzer beeinflussen.
  • Ein Admin-Benutzer kann Apps oder sogar den gesamten Arbeitsbereich entfernen, der von sekundären Benutzern eingerichtet wurde.

Android 7.0 enthält mehrere Verbesserungen, darunter:

  • Arbeitsprofil umschalten . Benutzer können ihr verwaltetes Profil deaktivieren (z. B. wenn sie nicht bei der Arbeit sind). Diese Funktionalität wird erreicht, indem der Benutzer gestoppt wird; UserManagerService ruft ActivityManagerNative#stopUser() .
  • Immer aktives VPN . VPN-Anwendungen können jetzt vom Benutzer, Geräte-DPC oder Managed Profile DPC (gilt nur für Managed Profile-Anwendungen) auf Always-on gesetzt werden. Wenn diese Option aktiviert ist, können Anwendungen nicht auf das öffentliche Netzwerk zugreifen (der Zugriff auf Netzwerkressourcen wird gestoppt, bis das VPN eine Verbindung hergestellt hat und Verbindungen darüber geleitet werden können). Geräte, die device_admin melden, müssen Always-On-VPN implementieren.

Weitere Einzelheiten zu den Geräteverwaltungsfunktionen von Android 7.0 finden Sie unter Android for Work .

Android Automotive Multi-User

Android Automotive stützt sich auf die Multi-User-Implementierung von Android, um ein gemeinsames Geräteerlebnis zu bieten.

Automotive-Benutzertypen

Zusätzlich zu den oben aufgeführten Benutzertypen eignen sich Automotive-Builds für diese Benutzertypen:

  • Headless-Systembenutzer. Der Systembenutzer hostet alle Systemdienste. Um mehrere Benutzer auf Automotive zu unterstützen, muss der Systembenutzer ebenfalls kopflos sein. Es gibt nur einen kopflosen Benutzer. Ein kopfloser Systembenutzer:
    • Muss immer im Hintergrund laufen.
    • Kann vom Benutzer nicht entfernt oder direkt aufgerufen werden, außer im Fall von Device Provisioning. Beispielsweise können Benutzer nicht zu diesem Benutzertyp wechseln, um Aufgaben wie das Herunterladen von Apps oder das Hinzufügen von Konten auszuführen.
    • Kann nur durch Zurücksetzen auf die Werkseinstellungen gelöscht werden.
  • Regelmäßige Benutzer. Dasselbe wie oben beschriebene sekundäre Benutzer , außer dass sekundäre Benutzer:
    • Nicht im Hintergrund laufen (nachdem weggeschaltet wurde).
    • Kann direkt über die Benutzeroberfläche erstellt werden.
    • App-Daten getrennt haben, aber einige systemweite Einstellungen teilen. Zum Beispiel WLAN und Bluetooth.

Vorbehalte

Die folgenden Ausnahmen gelten für Benutzer von Headless-Systemen und reguläre (sekundäre) Benutzer in der Automobilindustrie:

  • Der Headless-Systembenutzer unterstützt keine Arbeitsprofile.
  • Standardmäßig haben normale (sekundäre) Benutzer vollen Zugriff auf Telefonanrufe und SMS.
  • Standardmäßig werden normale (sekundäre) Benutzer nicht im Hintergrund ausgeführt.

Aktivieren des Headless-Systembenutzers

Ab Android 10 kann die Multi-User-Funktion für Automotive-Use-Cases genutzt werden. Wichtige Unterscheidungen sind:

  • Der Systembenutzer ist kopflos und läuft nur im Hintergrund.
  • Menschliche Benutzer interagieren nicht mit dem Systembenutzer.

Um den kopflosen Systembenutzer zu aktivieren, müssen Gerätehersteller die Mehrbenutzerfunktion wie oben beschrieben aktivieren.

Wenn der Headless-Benutzer aktiviert ist:
  1. Um das Gerät als Automotive zu deklarieren, fügen Sie das Feature android.hardware.type.automotive .
  2. Setzen ro.fw.headless_system_user auf true .
  3. Setzen Sie den Wert für config_multiuserMaximumUsers auf 2 (oder höher).

Weitere Informationen finden Sie unter Multi-User-Support in Automotive.