Obsługuj 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ą pozwolić swoim dzieciom na korzystanie z rodzinnego tabletu, rodzina może dzielić samochód, a zespół reagowania krytycznego może korzystać z urządzenia mobilnego w celu dyżurowania.

Terminologia

Do opisu użytkowników i kont Androida używane są następujące terminy.

Ogólny

Zarządzanie urządzeniami z Androidem wykorzystuje następujące ogólne warunki:

  • 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 pewne unikalne ustawienia, a także interfejs użytkownika umożliwiający jawne przełączanie między użytkownikami. Użytkownik może działać w tle, gdy aktywny jest inny użytkownik; system zarządza zamykaniem użytkowników w celu oszczędzania zasobów, gdy jest to konieczne. Użytkowników dodatkowych można utworzyć bezpośrednio w interfejsie użytkownika lub w aplikacji Device Administration .
  • Konto: Konta są zawarte w obrębie użytkownika, ale nie są przez niego definiowane, ani użytkownik nie jest definiowany przez żadne konto ani nie jest z nim powiązany. Użytkownicy i profile zawierają własne, unikalne konta, ale nie muszą mieć kont, aby działać. Lista kont różni się w zależności od użytkownika. Szczegółowe informacje można znaleźć w definicji klasy konta .
  • Profil: profil oddziela dane aplikacji, ale udostępnia niektóre ustawienia ogólnosystemowe (na przykład Wi-Fi i Bluetooth). Profil jest podzbiorem istnienia użytkownika i jest z nim powiązany. Użytkownik może mieć wiele profili. Profile są tworzone za pomocą aplikacji Administracja urządzeniem . Profil zawsze ma niezmienne powiązanie z użytkownikiem nadrzędnym, zdefiniowanym przez użytkownika, który utworzył profil. Profile nie istnieją poza czasem życia tworzącego użytkownika.
  • Aplikacja: dane aplikacji istnieją w obrębie każdego powiązanego użytkownika. Dane aplikacji są izolowane z innych aplikacji tego samego użytkownika. Aplikacje tego samego użytkownika mogą wchodzić w interakcje ze sobą za pośrednictwem protokołu IPC. Szczegółowe informacje można znaleźć w artykule Android dla przedsiębiorstw .

Kategorie użytkowników

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

  • Użytkownik systemowy: Pierwszy użytkownik dodany do urządzenia. Użytkownika systemowego nie można usunąć z wyjątkiem przywrócenia ustawień fabrycznych i zawsze działa, nawet jeśli inni użytkownicy są na pierwszym planie. Ten użytkownik ma również specjalne uprawnienia i ustawienia, które tylko on może konfigurować.
  • Użytkownik systemu bezgłowego: Pierwszy użytkownik dodany do urządzenia, jeśli urządzenie jest skonfigurowane do pracy w trybie użytkownika systemu bezgłowego (poprzez ustawienie ro.fw.mu.headless_system_user=true ). Bezgłowy użytkownik systemu zawsze działa w tle, więc takie urządzenia wymagają dodatkowych użytkowników na pierwszym planie, aby umożliwić interakcję z użytkownikiem.
  • Użytkownik dodatkowy: Dowolny użytkownik dodany do urządzenia, inny niż użytkownik systemu. Dodatkowi użytkownicy mogą zostać usunięci (samodzielnie lub przez administratora) i nie mogą mieć wpływu na innych użytkowników urządzenia. Ci użytkownicy mogą działać w tle i nadal mieć połączenie sieciowe.
  • 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ść dobiegnie końca. W danym momencie może być tylko jeden użytkownik-gość.
  • Użytkownik administracyjny: użytkownik mający uprawnienia do tworzenia i usuwania innych użytkowników, a także kontrolowania niektórych ogólnych ustawień wielu użytkowników. Domyślnie tylko użytkownik systemu jest administratorem.

Kategorie profili

Android wykorzystuje następujące kategorie profili:

  • Profil zarządzany: utworzony przez aplikację w celu przechowywania danych służbowych i aplikacji. Zarządza nimi wyłącznie właściciel profilu (aplikacja, która utworzyła profil korporacyjny). Program uruchamiający, powiadomienia i ostatnie zadania są udostępniane użytkownikowi nadrzędnemu i profilowi ​​korporacyjnemu.
  • Profil z ograniczeniami: korzysta z kont użytkownika nadrzędnego, który może kontrolować, jakie aplikacje są dostępne w profilu z ograniczeniami. Dostępne tylko na tabletach i urządzeniach telewizyjnych.
  • Klonuj profil: system Android obsługuje tworzenie oddzielnego typu użytkownika profilu klonowania, aby umożliwić uruchomienie dwóch wystąpień tej samej aplikacji na urządzeniu. AOSP nie zapewnia kompleksowej obsługi tej funkcji. Producenci OEM muszą dodać dostosowania, aby zapewnić pełną funkcjonalność użytkownikom Androida.

Typy użytkowników

W systemie Android 11 powyższą klasyfikację użytkowników i profili podzielono na dobrze zdefiniowane typy użytkowników , reprezentujące wszystkie typy użytkowników i profile dozwolone przez funkcję wielu użytkowników systemu Android.

Predefiniowane 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
  • android.os.usertype.profile.CLONE

Producenci OEM mają możliwość skonfigurowania tych typów użytkowników poprzez nałożenie pliku 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 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 wprowadzenie modyfikacji platformy wymaganych do obsługi zmian, w tym modyfikacja kodu sprawdzającego profile zarządzane, aby w razie potrzeby obsługiwały nowy typ profilu.

Włączanie wielu użytkowników

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ć użytkowników gościnnych i dodatkowych 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ą określić maksymalną liczbę użytkowników. Jeśli producenci urządzeń lub inne osoby zmodyfikowały ustawienia, muszą zapewnić działanie wiadomości SMS i telefonii zgodnie z definicją zawartą 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) odbywa się za pomocą aplikacji, które programowo wywołują API w klasie DevicePolicyManager w celu ograniczenia użycia.

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

Zachowanie systemu z wieloma użytkownikami

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

Uwaga : aby włączyć lub wyłączyć funkcje telefonu i SMS-ów dla dodatkowego 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 dodatkowy użytkownik działa w tle. Na przykład dodatkowy użytkownik działający w tle nie może wyświetlić interfejsu użytkownika ani aktywować usług Bluetooth. Ponadto proces systemowy zatrzyma dodatkowych użytkowników działających w tle, jeśli urządzenie będzie potrzebowało dodatkowej pamięci do wykonywania operacji na pierwszym planie.

Zatrudniając wielu użytkowników na urządzeniu z systemem Android, należy pamiętać o następującym zachowaniu:

  • Powiadomienia pojawiają się jednocześnie dla wszystkich kont danego 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 mieć wpływ na zainstalowane aplikacje dla wszystkich użytkowników.
  • Administrator może usunąć aplikacje lub nawet cały obszar roboczy utworzony przez użytkowników dodatkowych.
  • Domyślnie informacje z sesji użytkownika Gość nie są zachowywane po wyjściu z trybu gościa. Jeśli chcesz, aby informacje z sesji użytkownika gościa pozostały zachowane, musisz utworzyć plik nakładki zasobów, który ustawia wartość config_guestUserAllowEphemeralStateChange na false . Aby uzyskać więcej informacji na temat tworzenia plików nakładek, zobacz Dostosowywanie kompilacji za pomocą nakładek zasobów .

Android Automotive dla wielu użytkowników

Android Automotive wykorzystuje implementację Androida dla wielu użytkowników, aby zapewnić możliwość korzystania ze wspólnego urządzenia.

Typy użytkowników branży motoryzacyjnej

Oprócz typów użytkowników wymienionych powyżej, kompilacje samochodowe są godne uwagi dla tych typów użytkowników:

  • Bezgłowy użytkownik systemu. Użytkownik systemu hostuje wszystkie usługi systemowe. Aby obsługiwać wielu użytkowników w aplikacji Automotive, użytkownik systemu musi być również bezgłowy . Jest tylko jeden użytkownik bez głowy. Użytkownik systemu bezgłowego:
    • Musi zawsze działać w tle.
    • Użytkownik nie może ich usunąć ani uzyskać do nich bezpośredniego dostępu, z wyjątkiem przypadku udostępniania urządzeń. Na przykład użytkownicy nie mogą przełączyć się na ten typ użytkownika, aby wykonywać zadania takie jak pobieranie aplikacji lub dodawanie kont.
    • Można to usunąć jedynie poprzez przywrócenie ustawień fabrycznych.
  • Zwykli użytkownicy. To samo, co w przypadku użytkowników dodatkowych , opisanych powyżej, z tą różnicą, że użytkownicy drugorzędni:
    • Nie uruchamiaj w tle (po wyłączeniu).
    • Można je utworzyć bezpośrednio poprzez interfejs użytkownika.
    • Oddziel dane aplikacji, ale udostępnij niektóre ustawienia ogólnosystemowe. Na przykład Wi-Fi i Bluetooth.

Zastrzeżenia

Poniższe wyjątki dotyczą użytkowników systemu bezgłowego i zwykłych (dodatkowych) użytkowników w branży motoryzacyjnej:

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

Włączenie użytkownika systemu bezgłowego

Począwszy od Androida 10, funkcji wielu użytkowników można używać w zastosowaniach motoryzacyjnych. Ważne rozróżnienia obejmują:

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

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

Gdy użytkownik bezgł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.

Android Automotive dla wielu użytkowników na wielu wyświetlaczach

Nowa eksperymentalna funkcja w systemie Android 14 umożliwia pełnoprawnym użytkownikom dodatkowym (którzy nie są aktualnie użytkownikami na pierwszym planie) uruchamianie działań i uzyskiwanie dostępu do interfejsu użytkownika na wyświetlaczu, do którego są przydzieleni. Ta funkcja umożliwia wielu jednoczesnym użytkownikom systemu operacyjnego Android Automotive obsługę rozwiązań w samochodzie, które zapewniają wielu pasażerom dedykowany interfejs użytkownika w jednej instancji systemu Android.

Aby włączyć tę funkcję na potrzeby programowania, producenci urządzeń muszą zdefiniować nakładkę zasobów zastępującą następującą wartość w 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>

Możesz poeksperymentować z obsługą tylko pasażera (bez kierowcy), włączając następującą dodatkową konfigurację:

<!-- 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>

W systemie Android 14 możesz włączyć obsługę w samochodzie wielu pasażerów jako gości. Aby umożliwić wielu użytkownikom-gościom korzystanie z oprogramowania, producenci urządzeń muszą zdefiniować nakładkę zasobów, która konfiguruje maksymalną dozwoloną liczbę użytkowników-gości w frameworks/base/core/res/res/xml/config_user_types.xml , jak w przykładzie poniżej:

<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>