Android通過分隔用戶帳戶和應用程序數據,在單個Android設備上支持多個用戶。例如,父母可以允許他們的孩子使用家庭平板電腦,一個家庭可以共享汽車,或者緊急響應小組可以共享移動設備來執行值班工作。
術語
在描述Android用戶和帳戶時,Android使用以下術語。
一般
Android設備管理使用以下一般術語。
- 用戶。每個用戶都應由不同的自然人使用。每個用戶都有獨特的應用程序數據和一些獨特的設置,以及用於在用戶之間進行顯式切換的用戶界面。當另一個用戶處於活動狀態時,該用戶可以在後台運行。系統會在適當時管理關閉用戶以節省資源。可以直接通過主要用戶界面或從“設備管理”應用程序創建輔助用戶。
- 帳戶。帳戶包含在用戶內,但不由用戶定義,用戶也不由任何給定帳戶定義或鏈接到任何給定帳戶。用戶和個人資料包含其自己的唯一帳戶,但無需具有帳戶即可使用。帳戶列表因用戶而異。有關詳細信息,請參閱帳戶類定義。
- 個人資料。配置文件具有分離的應用程序數據,但共享一些系統範圍的設置(例如,Wi-Fi和藍牙)。個人資料是用戶存在的一部分,並與之相關。一個用戶可以有多個配置文件。配置文件是通過設備管理應用程序創建的。概要文件始終與創建該概要文件的用戶定義的父用戶具有不可變的關聯。在創建用戶的生命週期之外,配置文件不存在。
- 應用程式。應用程序的數據存在於每個關聯的用戶中。應用程序數據是從同一用戶內的其他應用程序中沙盒化的。同一用戶內的應用可以通過IPC進行交互。有關詳細信息,請參閱適用於企業的Android 。
用戶類型
Android設備管理使用以下用戶類型。
- 小學。第一個用戶已添加到設備。除恢復出廠設置外,無法刪除主要用戶,並且即使其他用戶在前台,該主用戶也始終在運行。該用戶還具有隻能設置的特殊特權和設置。
- 次要的。除主要用戶外,添加到設備的任何用戶。可以刪除二級用戶(由他們自己或由一級用戶刪除),並且不會影響設備上的其他用戶。這些用戶可以在後台運行,並繼續保持網絡連接。
- 來賓臨時二級用戶。來賓用戶有一個明確的選項,可以在其用途結束後快速刪除來賓用戶。一次只能有一個訪客用戶。
個人資料類型
Android設備管理使用以下配置文件類型。
- 託管。由應用程序創建,以包含工作數據和應用程序。它們僅由配置文件所有者(創建公司配置文件的應用程序)管理。啟動器,通知和近期任務由主要用戶和公司資料共享。
- 受限制的。使用基於主要用戶的帳戶,該用戶可以控制受限配置文件上可用的應用程序。僅在平板電腦和電視設備上可用。
啟用多用戶
從Android 5.0開始,默認情況下禁用多用戶功能。要啟用此功能,設備製造商必須定義一個資源覆蓋層,以替換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>
要應用此疊加並在設備上啟用訪客和輔助用戶,請使用Android構建系統的DEVICE_PACKAGE_OVERLAYS
功能替換以下值:
-
config_multiuserMaximumUsers
的值大於1
-
config_enableMultiUserUI
為true
設備製造商可以決定最大用戶數。如果設備製造商或其他製造商修改了設置,則他們必須確保Android兼容性定義文檔(CDD)中定義的SMS和電話能夠正常工作。
管理多個用戶
用戶和配置文件(受限配置文件除外)的管理由以編程方式調用DevicePolicyManager
類中的API以限制使用的應用程序執行。
學校和企業可以使用用戶和配置文件來管理應用程序和設備上數據的生命週期以及範圍,結合上面概述的類型和UserManager API來構建針對其用例的獨特解決方案。
多用戶系統行為
將用戶添加到設備時,如果另一個用戶在前台,則某些功能會受到限制。由於應用程序數據由用戶分隔,因此這些應用程序的狀態因用戶而異。例如,發往該用戶當前不在焦點的用戶帳戶的電子郵件在該用戶和帳戶在設備上處於活動狀態之前將不可用。
默認情況下,只有主要用戶才能完全訪問電話和短信。次要用戶可能會收到呼入電話,但無法發送或接收短信。主要用戶必須為其他人啟用這些功能。
注意:要為輔助用戶啟用或禁用電話和SMS功能,請轉到“設置”>“用戶” ,選擇用戶,然後將“允許電話和SMS”設置關閉。
當輔助用戶處於後台時,存在一些限制。例如,後台二級用戶無法顯示用戶界面或激活藍牙服務。此外,如果設備需要額外的內存來在前台用戶中進行操作,則係統進程將停止後台輔助用戶。
在Android設備上僱用多個用戶時,請記住以下行為:
- 通知同時顯示給單個用戶的所有帳戶。
- 在激活之前,不會顯示其他用戶的通知。
- 每個用戶都有一個工作區來安裝和放置應用程序。
- 沒有用戶有權訪問另一個用戶的應用程序數據。
- 任何用戶都可以影響所有用戶安裝的應用程序。
- 主要用戶可以刪除應用程序,甚至可以刪除次要用戶建立的整個工作區。
Android 7.0包括多項增強功能,包括:
- 切換工作資料。用戶可以禁用其託管配置文件(例如在不工作時)。通過停止用戶來實現此功能; UserManagerService調用
ActivityManagerNative#stopUser()
。 - 永遠在線VPN 。用戶,設備DPC或託管配置文件DPC現在可以將VPN應用程序設置為始終在線(僅適用於託管配置文件應用程序)。啟用後,應用程序將無法訪問公共網絡(在VPN已連接並且可以通過其路由連接之前,將停止對網絡資源的訪問)。報告
device_admin
設備必須實現永遠在線的VPN。
有關Android 7.0設備管理功能的更多詳細信息,請參閱Android for Work 。
Android汽車多用戶
Android Automotive依靠Android的多用戶實施來提供共享的設備體驗。
汽車用戶類型
除了上面列出的用戶類型外,Automobile版本對於以下類型的用戶也很重要:
- 無頭系統用戶。系統用戶託管所有系統服務。為了支持Automotive上的多個用戶,系統用戶也必須沒有頭腦。只有一個無頭用戶。無頭系統用戶:
- 必須始終在後台運行。
- 除非是“設備配置”,否則用戶不能直接刪除或訪問。例如,用戶無法切換到該用戶類型來執行諸如下載應用程序或添加帳戶之類的任務。
- 只能通過恢復出廠設置清除。
- 普通用戶。與上述二級用戶相同,不同之處在於二級用戶:
- 請勿在後台運行(遠離後再運行)。
- 可以直接通過用戶界面創建。
- 分離了應用程序數據,但共享了一些系統範圍的設置。例如,Wi-Fi和藍牙。
注意事項
以下例外適用於無頭系統用戶和汽車行業的常規(中學)用戶:
- 無頭系統用戶不支持工作資料。
- 默認情況下,普通(輔助)用戶可以完全訪問電話和短信。
- 默認情況下,常規(輔助)用戶不在後台運行。
啟用無頭系統用戶
從Android 10開始,多用戶功能可用於汽車用例。重要區別包括:
- 系統用戶沒有頭腦,只能在後台運行。
- 人類用戶不與系統用戶互動。
要啟用無頭系統用戶,設備製造商必須如上所述啟用多用戶。
啟用無頭用戶時:- 要將設備聲明為汽車類,請添加功能
android.hardware.type.automotive
。 - 將
ro.fw.headless_system_user
設置為true
。 - 將
config_multiuserMaximumUsers
的值設置為2
(或更高)。
有關更多信息,請參見汽車中的多用戶支持。