Obsługa wielu użytkowników

Android obsługuje wielu użytkowników na jednym urządzeniu z Androidem, oddzielając konta użytkowników i dane aplikacji. Na przykład rodzice mogą zezwolić swoim dzieciom na korzystanie z rodzinnego tabletu, rodzina może dzielić się samochodem, a krytyczny zespół reagowania może dzielić urządzenie mobilne do dyżuru na wezwanie.

Terminologia

Android używa następujących terminów do opisywania użytkowników i kont Androida.

Ogólny

Zarządzanie urządzeniami z Androidem używa następujących ogólnych terminów.

  • Użytkownik . Każdy użytkownik jest przeznaczony do użytku przez inną osobę fizyczną. Każdy użytkownik ma odrębne dane aplikacji i kilka unikalnych ustawień, a także interfejs użytkownika do jawnego przełączania się między użytkownikami. Użytkownik może działać w tle, gdy inny użytkownik jest aktywny; system zarządza zamykaniem użytkowników w celu oszczędzania zasobów, gdy jest to właściwe. Użytkowników drugorzędnych można tworzyć bezpośrednio za pomocą interfejsu użytkownika lub z aplikacji do zarządzania urządzeniami .
  • Konto . Konta są zawarte w obrębie użytkownika, ale nie są zdefiniowane przez użytkownika, ani użytkownik nie jest zdefiniowany przez dane konto ani z nim powiązany. Użytkownicy i profile zawierają swoje własne unikalne konta, ale nie muszą posiadać kont, aby działały. Lista kont różni się w zależności od użytkownika. Aby uzyskać szczegółowe informacje, zobacz Definicja klasy konta .
  • Profil . Profil zawiera oddzielne dane aplikacji, ale udostępnia niektóre ustawienia systemowe (na przykład Wi-Fi i Bluetooth). Profil jest podzbiorem i jest powiązany z istnieniem użytkownika. Użytkownik może mieć wiele profili. Profile są tworzone za pomocą aplikacji Device Administration . Profil zawsze ma niezmienne powiązanie z użytkownikiem nadrzędnym, zdefiniowanym przez użytkownika, który utworzył profil. Profile nie istnieją poza okresem istnienia użytkownika tworzącego.
  • Aplikacja . Dane aplikacji istnieją w obrębie każdego powiązanego użytkownika. Dane aplikacji są piaskowane z innych aplikacji w ramach tego samego użytkownika. Aplikacje tego samego użytkownika mogą komunikować się ze sobą za pośrednictwem IPC. Aby uzyskać szczegółowe informacje, zapoznaj się z artykułem Android dla przedsiębiorstw .

Kategorie użytkowników

Administracja urządzeniami z systemem Android korzysta z następujących kategorii użytkowników.

  • Użytkownik systemu . Pierwszy użytkownik dodany do urządzenia. Użytkownika systemu nie można usunąć z wyjątkiem przywrócenia ustawień fabrycznych i jest on zawsze uruchomiony, nawet gdy na pierwszym planie są inni użytkownicy. Ten użytkownik ma również specjalne uprawnienia i ustawienia, które tylko on może ustawić.
  • Użytkownik dodatkowy . Dowolny użytkownik dodany do urządzenia inny niż użytkownik systemu. Użytkownicy drugorzędni mogą zostać usunięci (same lub przez administratora) i nie mogą wpływać na innych użytkowników urządzenia. Ci użytkownicy mogą działać w tle i nadal mieć łączność z siecią.
  • Użytkownik gość . Tymczasowy użytkownik dodatkowy. Użytkownicy-goście mają wyraźną opcję szybkiego usunięcia użytkownika-gościa, gdy jego użyteczność się skończy. W danym momencie może być tylko jeden użytkownik-gość.
  • Administrator . Użytkownik, który ma uprawnienia do tworzenia i usuwania innych użytkowników, a także do kontrolowania niektórych ogólnych ustawień wielu użytkowników. Domyślnie administratorem jest tylko użytkownik systemu.

Kategorie profili

Administracja urządzeniami z systemem Android wykorzystuje następujące kategorie profili.

  • Profil zarządzany . Utworzony przez aplikację w celu przechowywania danych i aplikacji służbowych. Zarządza nimi wyłącznie właściciel profilu (aplikacja, która utworzyła profil korporacji). Launcher, powiadomienia i ostatnie zadania są współdzielone przez użytkownika nadrzędnego i profil korporacji.
  • Profil zastrzeżony . Używa kont opartych na użytkowniku rodzica, który może kontrolować, jakie aplikacje są dostępne w profilu z ograniczeniami. Dostępne tylko na tabletach i telewizorach.

Typy użytkowników

Android 11 sformułował powyższą klasyfikację użytkowników i profili na dobrze zdefiniowane typy użytkowników , reprezentujące wszystkie różne typy użytkowników i profile dozwolone przez funkcję Android Multi-user.

Wstępnie zdefiniowane typy użytkowników AOSP są zdefiniowane w frameworks/base/core/java/android/os/UserManager.java i obecnie obejmują:

  • 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

Producenci OEM mogą konfigurować te typy użytkowników, nakładając na siebie plik frameworks/base/core/res/res/xml/config_user_types.xml . Ułatwia to zmianę domyślnej konfiguracji dla każdego typu użytkownika, w tym jego domyślnych ograniczeń, ikon, identyfikatorów i maksymalnej dozwolonej liczby użytkowników.

Oprócz konfigurowalnych typów użytkowników AOSP, producenci OEM mogą definiować nowe typy profili przy użyciu pliku frameworks/base/core/res/res/xml/config_user_types.xml . Dzięki temu producenci OEM mogą w razie potrzeby wprowadzać własne niezarządzane typy profili. Jednak obowiązkiem producenta OEM jest wprowadzanie modyfikacji platformy zgodnie z wymaganiami w celu obsługi zmian, w tym modyfikowanie dowolnego kodu, który sprawdza, czy profile zarządzane będą teraz obsługiwać nowy typ profilu, jeśli jest to właściwe.

Włączanie wielu użytkowników

W systemie Android 5.0 funkcja wielu użytkowników jest domyślnie wyłączona. Aby włączyć tę funkcję, producenci urządzeń muszą zdefiniować nakładkę zasobów, która zastępuje następujące wartości w 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>

Aby zastosować tę nakładkę i włączyć gości i dodatkowych użytkowników na urządzeniu, użyj funkcji DEVICE_PACKAGE_OVERLAYS systemu kompilacji Androida, aby zastąpić wartości:

  • config_multiuserMaximumUsers o wartości większej niż 1
  • config_enableMultiUserUI z true

Producenci urządzeń mogą decydować o maksymalnej liczbie użytkowników. Jeśli producenci urządzeń lub inne osoby mają zmodyfikowane ustawienia, muszą zapewnić działanie SMS-ów i telefonii zgodnie z definicją w dokumencie definicji zgodności z systemem Android (CDD).

Zarządzanie wieloma użytkownikami

Zarządzanie użytkownikami i profilami (z wyjątkiem profili zastrzeżonych) jest wykonywane przez aplikacje, które programowo wywołują interfejs API w klasie DevicePolicyManager w celu ograniczenia użytkowania.

Szkoły i przedsiębiorstwa mogą zatrudniać użytkowników i profile do zarządzania cyklem życia i zakresem aplikacji oraz danych na urządzeniach, używając typów opisanych powyżej w połączeniu z interfejsem UserManager API w celu tworzenia unikalnych rozwiązań dostosowanych do ich przypadków użycia.

Zachowanie systemu wielu użytkowników

Gdy użytkownicy są dodawani do urządzenia, niektóre funkcje są ograniczane, gdy inny użytkownik jest na pierwszym planie. Ponieważ dane aplikacji są oddzielone przez użytkownika, stan tych aplikacji różni się w zależności od użytkownika. Na przykład wiadomość e-mail przeznaczona dla konta użytkownika, który nie jest aktualnie aktywny, nie będzie dostępna, dopóki ten użytkownik i konto nie będą aktywne na urządzeniu.

Domyślnie tylko użytkownik systemu ma pełny dostęp do połączeń telefonicznych i SMS-ów. Drugi użytkownik może odbierać połączenia przychodzące, ale nie może wysyłać ani odbierać SMS-ów. Administrator musi włączyć te funkcje dla innych.

Uwaga : Aby włączyć lub wyłączyć funkcje telefonu i SMS-ów dla drugiego użytkownika, przejdź do Ustawienia > Użytkownicy , wybierz użytkownika i wyłącz ustawienie Zezwalaj na połączenia telefoniczne i SMS-y .

Istnieją pewne ograniczenia, gdy drugi użytkownik pracuje w tle. Na przykład drugorzędny użytkownik działający w tle nie może wyświetlić interfejsu użytkownika ani aktywować usług Bluetooth. Ponadto proces systemowy zatrzyma drugorzędnych użytkowników w tle, jeśli urządzenie będzie wymagało dodatkowej pamięci do operacji na pierwszym planie.

Zatrudniając wielu użytkowników na urządzeniu z Androidem, pamiętaj o następującym zachowaniu:

  • Powiadomienia pojawiają się jednocześnie dla wszystkich kont jednego użytkownika.
  • Powiadomienia dla innych użytkowników nie pojawiają się, dopóki nie są aktywne.
  • Każdy użytkownik otrzymuje obszar roboczy do instalowania i umieszczania aplikacji.
  • Żaden użytkownik nie ma dostępu do danych aplikacji innego użytkownika.
  • Każdy użytkownik może wpływać na zainstalowane aplikacje dla wszystkich użytkowników.
  • Administrator może usuwać aplikacje, a nawet cały obszar roboczy utworzony przez użytkowników drugorzędnych.

Android 7.0 zawiera kilka ulepszeń, w tym:

  • Przełącz profil do pracy . Użytkownicy mogą wyłączyć swój zarządzany profil (na przykład, gdy nie są w pracy). Funkcjonalność tę osiąga się poprzez zatrzymanie użytkownika; UserManagerService wywołuje ActivityManagerNative#stopUser() .
  • Stały VPN . Aplikacje VPN mogą być teraz ustawione jako zawsze włączone przez użytkownika, DPC urządzenia lub DPC profilu zarządzanego (dotyczy tylko aplikacji z profilem zarządzanym). Gdy ta opcja jest włączona, aplikacje nie mogą uzyskać dostępu do sieci publicznej (dostęp do zasobów sieciowych jest zatrzymywany do momentu nawiązania połączenia z siecią VPN i przekierowywania przez nią połączeń). Urządzenia zgłaszające device_admin muszą mieć zaimplementowaną stałą sieć VPN.

Aby uzyskać więcej informacji na temat funkcji administrowania urządzeniami z systemem Android 7.0, zapoznaj się z artykułem Android for Work .

Android Automotive dla wielu użytkowników

Android Automotive opiera się na implementacji Androida dla wielu użytkowników, aby zapewnić wspólne korzystanie z urządzenia.

Typy użytkowników w branży motoryzacyjnej

Oprócz typów użytkowników wymienionych powyżej, kompilacje motoryzacyjne są godne uwagi dla następujących typów użytkowników:

  • Bezgłowy użytkownik systemu. Użytkownik systemu obsługuje wszystkie usługi systemowe. Aby obsługiwać wielu użytkowników w branży motoryzacyjnej, użytkownik systemu musi również być bezgłowy . Jest tylko jeden użytkownik bez głowy. Bezgłowy użytkownik systemu:
    • Musi zawsze działać w tle.
    • Użytkownik nie może go usunąć ani uzyskać do niego bezpośredniego dostępu, z wyjątkiem przypadku udostępniania urządzenia. Na przykład użytkownicy nie mogą przełączyć się na ten typ użytkownika, aby wykonywać takie zadania, jak pobieranie aplikacji lub dodawanie kont.
    • Można go usunąć tylko przez przywrócenie ustawień fabrycznych.
  • Zwykli użytkownicy. To samo, co Użytkownicy drugorzędni , opisani powyżej, z tą różnicą, że użytkownicy drugorzędni:
    • Nie pracuj w tle (po wyłączeniu).
    • Mogą być tworzone bezpośrednio przez interfejs użytkownika.
    • Mieć oddzielne dane aplikacji, ale udostępniać niektóre ustawienia systemowe. Na przykład Wi-Fi i Bluetooth.

Zastrzeżenia

Następujące wyjątki mają zastosowanie do użytkowników systemu bezgłowego i zwykłych (drugorzędnych) użytkowników w branży motoryzacyjnej:

  • Użytkownik systemu bezgłowego nie obsługuje profili do pracy.
  • Domyślnie zwykli (drugorzędni) użytkownicy mają pełny dostęp do połączeń telefonicznych i SMS-ów.
  • Domyślnie zwykli (drugorzędni) użytkownicy nie działają w tle.

Włączanie użytkownika systemu bezgłowego

Począwszy od Androida 10, funkcja wielu użytkowników może być używana do zastosowań motoryzacyjnych. Ważne wyróżnienia to:

  • Użytkownik systemu jest bezgłowy i działa tylko w tle.
  • Użytkownicy nie wchodzą w interakcję z użytkownikiem systemu.

Aby umożliwić użytkownikowi bezgłowego systemu, producenci urządzeń muszą włączyć wielu użytkowników, jak opisano powyżej.

Gdy użytkownik bez głowy jest włączony:
  1. Aby zadeklarować urządzenie jako samochodowe, dodaj funkcję android.hardware.type.automotive .
  2. Ustaw ro.fw.headless_system_user na true .
  3. Ustaw wartość config_multiuserMaximumUsers na 2 (lub wyższą).

Aby uzyskać więcej informacji, zobacz Wsparcie dla wielu użytkowników w branży motoryzacyjnej.