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ć dzieciom na korzystanie z rodzinnego tabletu, rodzina może korzystać z samochodu, a zespół ds. interwencji w sytuacjach krytycznych może używać urządzenia mobilnego w ramach dyżuru.

Terminologia

W Androidzie do opisu użytkowników i kont na Androida używa się tych terminów:

Ogólne

Zarządzanie urządzeniami z Androidem korzysta z tych ogólnych warunkó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 niektóre unikalne ustawienia, a także interfejs umożliwiający wyraźne przełączanie się między użytkownikami. Użytkownik może uruchamiać aplikację w tle, gdy inny użytkownik jest aktywny. System zarządza zamykaniem użytkowników, aby oszczędzać zasoby. Użytkowników dodatkowych można utworzyć bezpośrednio w interfejsie lub w aplikacji Administracja urządzenia.
  • Konto: konta są zawarte w użytkowniku, ale nie są przez niego zdefiniowane. Użytkownik nie jest zdefiniowany przez żadne konto ani z nim połączony. Użytkownicy i profile mają własne konta, ale nie jest konieczne, aby te konta były aktywne. Lista kont różni się w zależności od użytkownika. Więcej informacji znajdziesz w definicji klasy kont.
  • Profil: profil ma oddzielne dane aplikacji, ale udostępnia niektóre ustawienia systemowe (np. Wi-Fi i Bluetooth). Profil jest podzbiorem danych użytkownika i jest z nim powiązany. Użytkownik może mieć kilka profili. Profile są tworzone w aplikacji Administracja urządzenia. Profil zawsze ma niezmienną relację z użytkownikiem nadrzędnym zdefiniowaną przez użytkownika, który utworzył profil. Profile nie istnieją dłużej niż czas istnienia użytkownika, który je utworzył.
  • Aplikacja: dane aplikacji są dostępne dla każdego powiązanego użytkownika. Dane aplikacji są izolowane od innych aplikacji tego samego użytkownika. Aplikacje tego samego użytkownika mogą ze sobą współpracować za pomocą IPC. Więcej informacji znajdziesz w artykule Android dla firm.

Kategorie użytkowników

W zarządzaniu urządzeniami z Androidem występują te kategorie użytkowników:

  • Użytkownik systemowy:pierwszy użytkownik dodany do urządzenia. Użytkownik systemowy nie może zostać usunięty, chyba że przywrócisz ustawienia fabryczne. Jest on zawsze uruchomiony, nawet gdy inni użytkownicy są na pierwszym planie. Ma on też specjalne uprawnienia i ustawienia, które może konfigurować tylko on.
  • Użytkownik systemu bez interfejsu: pierwszy użytkownik dodany do urządzenia, jeśli urządzenie jest skonfigurowane do działania w trybie użytkownika systemu bez interfejsu (za pomocą ustawienia ro.fw.mu.headless_system_user=true). Użytkownik systemu bez interfejsu działa zawsze w tle, dlatego takie urządzenia wymagają dodatkowych użytkowników w planie pierwszym, aby umożliwić interakcję z użytkownikiem.
  • Użytkownik dodatkowy: każdy użytkownik dodany na urządzeniu inny niż użytkownik systemowy. Użytkownicy pomocniczy mogą zostać usunięci (przez siebie lub przez administratora) i nie mogą wpływać na innych użytkowników na urządzeniu. Ci użytkownicy mogą uruchamiać aplikacje w tle i zachować połączenie 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 nie jest już potrzebny. W danym momencie może być tylko 1 użytkownik-gość.
  • Użytkownik o roli administratora: użytkownik, który ma uprawnienia do tworzenia i usuwania innych użytkowników, a także do kontrolowania niektórych ogólnych ustawień dotyczących wielu użytkowników. Domyślnie tylko użytkownik systemu jest administratorem.

Kategorie profili

Android używa tych kategorii profili:

  • Profil zarządzany: utworzony przez aplikację, aby przechowywać dane i aplikacje służbowe. Zarządza nimi wyłącznie właściciel profilu (aplikacja, która utworzyła profil firmy). Użytkownik nadrzędny i profil firmy mogą udostępniać sobie Launchera, powiadomienia i ostatnie zadania.
  • Profil z ograniczonym dostępem: korzysta z kont utworzonych na podstawie konta rodzica, który może kontrolować, jakie aplikacje są dostępne na profilu z ograniczonym dostępem. Dostępne tylko na tabletach i telewizorach.
  • Profil klonu: Android obsługuje tworzenie osobnego typu użytkownika profilu klonu, aby umożliwić uruchamianie na urządzeniu 2 kopii jednej aplikacji. AOSP nie zapewnia kompleksowego wsparcia tej funkcji. Producenci OEM muszą dodać opcje dostosowywania, aby udostępnić tę funkcję użytkownikom Androida.
  • Profil prywatny: to oddzielona od reszty urządzenia przestrzeń piaskownicy, którą można zablokować niezależnie od głównego użytkownika. Profil prywatny może istnieć tylko dla głównego użytkownika. Gdy profil prywatny jest odblokowany, aplikacje są widoczne w ustawieniach, arkuszu udostępniania, selektorze zdjęć i interfejsie dokumentów, ale są ukryte, gdy jest zablokowany. Profil prywatny może występować na tym samym urządzeniu razem z profilem służbowym i profilem klonu.

Typy użytkowników

W Androidzie 11 powyższa klasyfikacja użytkowników i profili została sformułowana w ramach dobrze zdefiniowanych typów użytkowników, które reprezentują wszystkie typy użytkowników i profili dozwolone przez funkcję wielu użytkowników w Androidzie.

Wstępnie zdefiniowane typy użytkowników AOSP są zdefiniowane w frameworks/base/core/java/android/os/UserManager.javai 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
  • android.os.usertype.profile.PRIVATE

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

Oprócz konfigurowalnych typów użytkowników AOSP producenci OEM mogą definiować nowe typy profili za pomocą pliku frameworks/base/core/res/res/xml/config_user_types.xml. Umożliwia to producentom OEM w razie potrzeby wprowadzenie własnych typów profili niezarządzanych. OEM musi jednak wprowadzić zmiany w platformie, które umożliwią obsługę tych zmian, w tym zmodyfikować kod, który sprawdza profile zarządzane, aby w odpowiednich przypadkach obsługiwał nowy typ profilu.

Włączanie funkcji 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ąpi w elementach frameworks/base/core/res/res/values/config.xml te wartości:

<!--  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 w tych polach:

  • config_multiuserMaximumUsers o wartości większej niż 1
  • config_enableMultiUserUItrue

Producenci urządzeń mogą określić maksymalną liczbę użytkowników. Jeśli producenci urządzeń lub inne osoby zmodyfikowały ustawienia, muszą zadbać o to, aby SMS-y i telefonia działały zgodnie z definicją w dokumentie z definicją zgodności Androida (CDD).

Zarządzanie wieloma użytkownikami

Zarządzanie użytkownikami i profilami (z wyjątkiem profili z ograniczonym dostępem) jest wykonywane przez aplikacje, które wywołują interfejs API programowo w klasie DevicePolicyManager, aby ograniczyć użycie.

Firmy mogą używać użytkowników i profili do zarządzania czasem trwania oraz zakresem aplikacji i danych na urządzeniach, korzystając z typów opisanych powyżej w połączeniu z interfejsami API DevicePolicyManagerUserManager, aby tworzyć niepowtarzalne rozwiązania dostosowane do ich potrzeb.

Zachowanie systemu wieloużytkownika

Gdy do urządzenia dodawane są nowe osoby, niektóre funkcje są ograniczane, gdy inny użytkownik jest na pierwszym planie. Dane aplikacji są rozdzielone według użytkowników, więc stan tych aplikacji różni się w zależności od użytkownika. Na przykład e-mail wysłany na konto użytkownika, który nie jest obecnie w centrum uwagi, będzie niedostępny, dopóki użytkownik i konto nie będą aktywne na urządzeniu.

Uwaga: aby włączyć lub wyłączyć funkcje telefonu i SMS-ów dla użytkownika pomocniczego, otwórz Ustawienia > Użytkownicy, wybierz użytkownika i wyłącz ustawienie Zezwalaj na rozmowy telefoniczne i SMS-y.

W przypadku użytkownika dodatkowego w tle obowiązują pewne ograniczenia. Na przykład użytkownik dodatkowy w tle nie może wyświetlać interfejsu użytkownika ani aktywować usług Bluetooth. Dodatkowo proces systemowy zatrzymuje w tle dodatkowych użytkowników, jeśli urządzenie potrzebuje dodatkowej pamięci na operacje dla użytkownika na pierwszym planie.

Podczas korzystania z urządzenia z Androidem przez wielu użytkowników należy pamiętać o tych zachowaniach:

  • Powiadomienia pojawiają się na wszystkich kontach danego użytkownika jednocześnie.
  • Powiadomienia dla innych użytkowników nie będą się wyświetlać, dopóki nie zostaną aktywowane.
  • Każdy użytkownik ma obszar roboczy, w którym może instalować i umieszczać aplikacje.
  • Żaden użytkownik nie ma dostępu do danych aplikacji innego użytkownika.
  • Każdy użytkownik może wpływać na zainstalowane aplikacje wszystkich użytkowników.
  • Administrator może usunąć aplikacje lub nawet całą przestrzeń roboczą utworzoną przez użytkowników pomocniczych.
  • Domyślnie informacje z sesji użytkownika-gościa nie są zachowywane po wyjściu z trybu gościa. Jeśli chcesz, aby informacje z sesji użytkownika-gościa były trwałe, musisz utworzyć plik zasobów overlay, który ustawia wartość config_guestUserAllowEphemeralStateChange na false. Więcej informacji o tworzeniu plików nakładek znajdziesz w artykule Dostosowywanie kompilacji za pomocą nakładek zasobów.

Android Automotive dla wielu użytkowników

Android Automotive korzysta z implementacji Androida dla wielu użytkowników, aby zapewnić obsługę współdzielonego urządzenia.

Typy użytkowników pojazdów

Oprócz wymienionych powyżej typów użytkowników wersje Automotive są przeznaczone dla tych typów użytkowników:

  • Użytkownik systemu bez interfejsu. Użytkownik systemu hostuje wszystkie usługi systemu. Aby obsługiwać wielu użytkowników w systemie Automotive, użytkownik systemu musi też być bez głowy. Jest tylko 1 użytkownik bez głowy. Użytkownik systemu bez interfejsu:
    • Aplikacja musi działać w tle.
    • Nie można ich usunąć ani uzyskać do nich bezpośredniego dostępu, z wyjątkiem sytuacji, gdy są one używane do obsługi urządzeń. Na przykład użytkownicy nie mogą przełączyć się na ten typ użytkownika, aby wykonywać takie czynności jak pobieranie aplikacji czy dodawanie kont.
    • Można je usunąć tylko przez przywrócenie ustawień fabrycznych.
  • Zwykli użytkownicy. To samo co użytkownicy dodatkowi, o których mowa powyżej, z tą różnicą, że użytkownicy dodatkowi:
    • nie działają w tle (po wyłączeniu);
    • Można je tworzyć bezpośrednio w interfejsie.
    • mieć oddzielne dane aplikacji, ale udostępniać niektóre ustawienia systemowe; Na przykład Wi-Fi i Bluetooth.

Uwagi

W przypadku systemu bez głowy i zwykłych (wtórnych) użytkowników w Automotive obowiązują następujące wyjątki:

  • Użytkownik systemu bez interfejsu graficznego nie obsługuje profili służbowych.
  • Domyślnie zwykłi (wtórni) użytkownicy mają pełny dostęp do połączeń telefonicznych i SMS-ów.
  • Domyślnie zwykłi (dodatkowi) użytkownicy nie działają w tle.

Włączanie użytkownika systemu bez interfejsu graficznego

Od Androida 10 można używać funkcji wielu użytkowników w samochodach. Ważne różnice:

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

Aby umożliwić użytkownikowi systemu bez głowicy, producenci urządzeń muszą włączyć obsługę wielu użytkowników w sposób opisany powyżej.

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

Więcej informacji znajdziesz w artykule na temat obsługi wielu użytkowników w systemie Automotive.

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

Android 15 umożliwia użytkownikom dodatkowym (którzy nie są bieżącym użytkownikiem na pierwszym planie) uruchamianie działań i dostęp do interfejsu na ekranie, do którego są przypisani. Ta funkcja umożliwia wielu użytkownikom korzystanie z Androida Automotive w tym samym czasie, aby zapewnić obsługę w samochodzie, która umożliwia wielu pasażerom korzystanie z dedykowanego interfejsu w ramach jednego wystąpienia Androida.

Aby włączyć tę funkcję, producenci urządzeń muszą zdefiniować nakładkę zasobów, która zastąpi tę wartość w frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows full users to start in background visible on displays.
Should be false for most devices, except automotive vehicle with passenger displays.
Note: this flag does NOT control the Communal Profile, which is not a full user. -->

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

Możesz przetestować funkcję tylko dla pasażerów (bez kierowcy), włączając tę konfigurację dodatkową:

<!-- 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 Androidzie 15 możesz też włączyć korzystanie z urządzenia w samochodzie przez wielu pasażerów jako użytkowników-gości. Aby umożliwić korzystanie z wielu użytkowników gościnnych na potrzeby testowania, producenci urządzeń muszą zdefiniować nakładkę zasobów, która skonfiguruje maksymalną dozwoloną liczbę użytkowników gościnnych w frameworks/base/core/res/res/xml/config_user_types.xml, na przykład w taki sposób:

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