Obsługa wielu użytkowników

Android obsługuje wielu użytkowników na 1 urządzeniu z Androidem dzięki rozdzieleniu użytkowników konta i dane aplikacji. Na przykład rodzice mogą pozwolić dzieciom na z rodzinnego tabletu, z rodziny wspólnie z samochodem lub z zespołu pomocy może używać urządzenia mobilnego do dyżurowania.

Terminologia

W Androidzie stosuje się te terminy do opisu użytkowników i kont Androida.

Ogólne

W zarządzaniu urządzeniami z Androidem obowiązują następujące ogólne terminy:

  • Użytkownik: każdy użytkownik jest przeznaczony do użytku przez inną osobę fizyczną. Każdy użytkownik ma własne dane aplikacji i unikalne ustawienia. oraz interfejs do wyraźnego przełączania się między użytkownikami. Użytkownik może uruchomić w tle, gdy inny użytkownik jest aktywny; system zarządza wyłączaniem w razie potrzeby oszczędzanie zasobów. 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 profile zawierają własne, niepowtarzalne konta, ale nie trzeba umieszczać odpowiednie konta. 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 za pomocą Urządzenie Administracja. Profil ma zawsze stałe powiązanie użytkownikowi nadrzędnego zdefiniowanego 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 znajdują się u każdego powiązanego użytkownika. Dane aplikacji są izolowane od innych aplikacji tego samego użytkownika. aplikacji; w ramach tego samego użytkownika mogą wchodzić ze sobą w interakcję w ramach IPC. Więcej informacji: na Androida 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 na urządzeniu. Użytkownik systemu można usunąć tylko przez przywrócenie do ustawień fabrycznych i zawsze działa, nawet gdy Inni użytkownicy działają 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 pomocniczy: dowolny użytkownik dodany na urządzeniu innym niż system. użytkownika. Użytkowników dodatkowych można usunąć (samodzielnie lub przez administratora). użytkownika) i nie mogą wpływać na innych użytkowników urządzenia. Ci użytkownicy mogą uruchamiać w tle i nadal masz 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 nie jest już potrzebny. W danym momencie może być tylko 1 użytkownik-gość.
  • Administrator: użytkownik, który ma uprawnienia do tworzenia i usuwania innych użytkowników. a także zarządzać ogólnymi ustawieniami dla wielu użytkowników. Domyślnie tylko użytkownik systemowy jest administratorem.

Kategorie profili

Android używa tych kategorii profili:

  • Profil zarządzany: utworzony przez aplikację i zawierający dane służbowe. i aplikacje. Są one zarządzane wyłącznie przez właściciela profilu (czyli aplikacji, która utworzył profil firmowy). Użytkownik nadrzędny i profil firmy mogą udostępniać sobie Launchera, powiadomienia i ostatnie zadania.
  • Profil ograniczony:korzysta z kont użytkownika nadrzędnego, który może kontrolować, jakie aplikacje są dostępne w profilu ograniczonym. 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 oferuje kompleksową obsługę 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. ShareSheet, Photopicker i DokumentyUI, ale aplikacje są ukryte po zablokowaniu. Profil prywatny może istnieć na tym samym urządzeniu razem z profilem służbowym, skopiować profil.

Typy użytkowników

Android 11 sformułował powyższą klasyfikację użytkowników i profili w precyzyjnie określony sposób. typów użytkowników, reprezentujących wszystkie typy użytkowników i profili dozwolonych przez wielu użytkowników Androida funkcji.

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

OEM może skonfigurować te typy użytkowników, nakładając frameworks/base/core/res/res/xml/config_user_types.xml. Ułatwia to zmianę konfiguracji domyślnej dla każdego typu użytkownika, w tym domyślne ograniczenia, ikony, plakietki i maksymalną dopuszczalną liczbę 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. Jednak to producent OEM odpowiada za wprowadzenie zmian na platformie wymaganych do obsługi zmian, w tym przez modyfikację kodu, który sprawdza profile zarządzane pod kątem obsługi nowego profilu. w razie potrzeby.

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ć na urządzeniu użytkowników gościnnych i dodatkowych, 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ślać 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 wykonywana przez aplikacje, które automatycznie wywołują interfejs API DevicePolicyManager klasa, aby ograniczyć użycie.

Organizacje 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 użytkownicy są dodawani do urządzenia, niektóre funkcje są ograniczone, 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 adres e-mail przypisany do konta użytkowników, którzy nie są aktualnie wyróżnieni, będą dostępni dopiero po tym, jak to użytkownik i to konto są aktywne na urządzeniu.

Uwaga: aby włączyć lub wyłączyć telefon i SMS-y, dla użytkownika dodatkowego, wybierz Ustawienia > użytkowników, wybierz użytkownika i wyłącz ustawienie Zezwalaj na połączenia telefoniczne i SMS-y.

W przypadku użytkownika dodatkowego w tle obowiązują pewne ograniczenia. Przykład: dodatkowy użytkownik działający w tle nie może wyświetlić interfejsu użytkownika ani Usługi Bluetooth są aktywne. 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.

Gdy zatrudniasz wielu użytkowników na urządzeniu z Androidem, pamiętaj o tych kwestiach: z myślą o użytkownikach:

  • Powiadomienia są wyświetlane dla wszystkich kont danego użytkownika jednocześnie.
  • Powiadomienia innych użytkowników pojawiają się dopiero po ich aktywowaniu.
  • Każdy użytkownik otrzymuje 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 usuwać aplikacje, a nawet cały utworzony obszar roboczy przez użytkowników dodatkowych.
  • Domyślnie informacje dotyczące sesji użytkownika gościa nie są zachowywane po wyjściu z tego trybu. Jeśli chcesz, aby informacje z sesji użytkownika gościa były zachowane, musisz utworzyć zasób plik nakładki, który ustawia config_guestUserAllowEphemeralStateChange jako false Więcej informacji o tworzeniu plików nakładek znajdziesz tutaj: Dostosuj kompilację za pomocą i nakładki zasobów.

Android Automotive dla wielu użytkowników

Android Automotive udostępnia urządzenie współdzielone przez wielu użytkowników w Androidzie z myślą o użytkownikach.

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 systemowe. Aby można było obsługiwać wielu użytkowników w samochodzie, użytkownik systemu musi też mieć włączony interfejs bez interfejsu graficznego. Jest tylko 1 użytkownik bez głowy. Użytkownik systemu bez interfejsu:
    • Musi zawsze działać w tle.
    • Nie można ich usunąć ani uzyskać do nich bezpośredniego dostępu, z wyjątkiem sytuacji, gdy jest to konieczne do wdrożenia urządzenia. Na przykład użytkownicy nie mogą przełączyć się na ten typ użytkownika, aby wykonywać takie czynności jak: pobierać aplikacje ani dodawać kont.
    • Można ją usunąć tylko przez przywrócenie do ustawień fabrycznych.
  • Zwykli użytkownicy. Takie same jak Użytkownicy pomocniczy opisane powyżej, z wyjątkiem tych dodatkowych użytkownicy:
    • 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 Bluetooth.

Uwagi

Poniższe wyjątki dotyczą użytkowników systemu bez interfejsu graficznego oraz zwykłych (dodatkowych) użytkowników w Motoryzacja:

  • 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 funkcja wielu użytkowników może być używana w samochodach. Ważne! wyróżniamy:

  • Użytkownik systemu nie ma interfejsu graficznego i działa tylko w tle.
  • Użytkownicy systemu nie wchodzą w interakcje z użytkownikiem systemu.

Aby umożliwić korzystanie z systemu bez interfejsu graficznego, producenci muszą włączyć obsługę wielu użytkowników zgodnie z opisem 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: Obsługa wielu użytkowników branży motoryzacyjnej.

W Androidzie Automotive wielu użytkowników może korzystać z kilku wyświetlaczy

Nowa funkcja eksperymentalna w Androidzie 14 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 korzystanie z wielu użytkowników systemu operacyjnego Android Automotive, aby obsługiwać funkcje samochodowe, dla pasażerów z dedykowanym interfejsem użytkownika w ramach pojedynczej instancji Androida.

Aby włączyć tę funkcję na potrzeby programowania, 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 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 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 14 możesz włączyć obsługę w samochodzie na kilku jako gości. Aby umożliwić korzystanie z wielu użytkowników gościnnych na potrzeby programowania, producenci urządzeń muszą zdefiniować nakładkę zasobów, która konfiguruje maksymalną dozwoloną liczbę użytkowników gościnnych w frameworks/base/core/res/res/xml/config_user_types.xml, jak w tym przykładzie:

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