Private space

Figure 1.私密空间可以解锁和锁定,以显示或隐藏设备上的敏感应用。

Private Space 让用户能够在设备上创建一个安全、隔离的环境,防止敏感应用被窥探。私密空间中的应用会在启动器的单独容器中显示,并且在私密空间锁定时,会从最近用过的应用视图、通知、设置和其他应用中隐藏。

经过沙盒隔离的空间是一个单独的 Android 个人资料。当最终用户在私密空间内添加或安装应用时,该应用会安装在这个新的 Android 个人资料中。系统会将此视为全新安装的应用,并且不会将任何应用数据复制到私密空间。当空间锁定时,私密个人资料用户会停止运行,而当空间解锁时,用户会启动运行。

私密空间中的应用会作为主空间中应用的单独副本安装。用户内容(用户生成或下载的内容)和用户帐号在私密空间和主空间之间是分开的。只有在私密空间解锁时,您才能使用系统共享表单和照片选择器让应用访问跨空间的内容。

私密空间基于 Android 多用户模型,并添加了以下个人资料用户类型

个人资料
私密
用户类型
android.os.usertype.profile.PRIVATE

“设置”和“启动器”应用

您需要更新“设置”和“启动器”应用,以支持锁定、解锁和隐藏状态。当私密空间锁定时,启动器会提供一个解锁入口点(隐藏状态除外)。当私密空间处于锁定状态时,“设置”应用不得泄露私密空间的存在。

使用 LauncherApps#getLauncherUserInfo 识别私密个人资料用户。启动器应用需要注册 锁定状态解锁状态,并在收到这些广播时更改其界面中私密空间的状态。这两个广播都有一个名为 EXTRA_USER 的额外常量,您可以使用该常量来引用私密个人资料用户。

启动器应用可以使用 UserManager.isQuietModeEnabled 方法来检查私密个人资料状态。

私密个人资料

私密个人资料添加了新的个人资料类型 android.os.usertype.profile.PRIVATE,以用于私密空间。私密个人资料可以与工作个人资料和克隆个人资料共存于同一设备上。它是一个与主 Android 用户分开的沙盒空间。当私密空间解锁时,应用会在“设置”、“共享表单”、“照片选择器”和 DocsUI 中变为可见。当私密空间锁定时,私密空间内的应用不会在任何这些界面中显示。私密空间在单个设备上只能有一个实例,并且只能为主用户存在(不能为辅助用户或在其他个人资料内存在)。

权限

启动器应用必须具有 android.permission.ACCESS_HIDDEN_PROFILES 权限和 android.app.role.RoleManager.ROLE_HOME 角色才能访问私密个人资料。

未使用 AOSP 启动器的实现需要修改其启动器,以添加对私密个人资料的支持。如需详细了解如何开发具有私密空间的启动器应用,请访问我们的开发者网站上的启动器应用

Intent

电话 Intent 会路由到主用户并显示通知。所有其他 Intent 都限制在私密个人资料中,并且不会重定向。