使用工作资料

工作资料是一种受管理的资料,它与主要用户资料具有单独的应用数据,但共享一些系统级设置,例如 Wi-Fi 和蓝牙。工作资料的主要目标是创建一个隔离且安全的容器来保存受管理的数据。工作资料的管理员可以完全控制数据的范围、入口、出口和生命周期。以下是工作资料的一些特点:

  • 创建。主要用户中的任何应用都可以创建工作资料。在创建之前,系统会向用户通知工作资料的行为和政策执行情况。

  • 管理。称为资料所有者的应用可以以编程方式调用 DevicePolicyManager 类中的 API 以限制使用。资料所有者在初始资料设置时定义。工作资料独有的政策涉及应用限制、可更新性和 intent 行为。

  • 视觉处理。来自工作资料的应用、通知和小部件带有徽章,并且通常与来自主要用户的用户界面 (UI) 元素内联提供。

实现详情

工作资料作为辅助用户实现,因此在工作资料中运行的应用的 UID 为 uid = 100000 \* userid + appid。这些资料具有单独的应用数据 (/data/user/userid),类似于主要用户。

AccountManagerService 为每个用户维护单独的帐号列表。工作资料用户和常规辅助用户之间的帐号差异包括以下几点:

  • 工作资料与其父用户关联,并在启动时与主要用户一起启动。

  • 工作资料的通知由 ActivityManagerService 启用,允许工作资料与主要用户共享活动堆栈。

  • 其他共享系统服务包括 IME、A11Y 服务、Wi-Fi 和 NFC。

  • 启动器 API 使启动器能够显示来自工作资料的带有徽章的应用和允许列表中的小部件,与主要资料中的应用并排显示,而无需切换用户。

数据隔离

工作资料使用以下数据隔离规则。

应用

当同一应用同时存在于主要用户和工作资料中时,应用会限定在其自身隔离的数据范围内。通常,应用独立运行,并且除非它们持有 INTERACT_ACROSS_PROFILES 权限或 应用操作,否则无法跨资料用户边界直接与实例通信。

帐号

工作资料中的帐号与主要用户不同,并且凭据无法跨资料用户边界访问。只有各自上下文中的应用才能访问其各自的帐号。

Intent

管理员控制 intent 是在工作资料内部还是外部解析。默认情况下,来自工作资料的应用限定在工作资料内,Device Policy API 的异常情况除外。

设备标识符

在具有工作资料的个人设备上,Android 12 或更高版本会移除对设备硬件标识符(IMEI、MEID、序列号)的访问权限,并提供唯一的特定于注册的 ID,用于标识特定组织的工作资料注册。注册 ID 在恢复出厂设置后仍然稳定,从而可以可靠地跟踪具有工作资料的设备的库存。

具有工作资料的个人拥有的设备必须使用特定于注册的 ID;公司拥有的设备(包括工作资料和完全受管理设备)也可以选择使用该 ID。要使用特定于注册的 ID,EMM 必须为他们管理的每个设备设置组织 ID,之后他们可以读取该设备上的特定于注册的 ID 并将其作为序列号处理。如需了解详情,请参阅工作资料的安全性与隐私权增强功能

设置

设置执行范围限定为工作资料,但锁定屏幕和加密设置例外,这些设置的范围限定为设备并在主要用户和工作资料之间共享。除了这些例外情况外,资料所有者在工作资料外部没有设备管理员权限。

具有工作资料的设备上的设备管理

Android 5.0 及更高版本支持使用 DevicePolicyManager 类在自带设备 (BYOD) 个人设备上进行工作资料的设备管理。此外,Android 11 还引入了公司拥有的设备上的工作资料概念。对于 BYOD 和公司拥有的设备这两种情况,工作资料内部的设备管理功能保持不变,但是,公司拥有的设备上的工作资料可能会提供额外的功能/政策,例如 installSystemUpdatesetScreenCaptureDisabledsetPersonalAppsSuspended,这些功能/政策可以将管理员政策执行范围扩展到工作资料之外,以用于某些设备范围的政策。

  • 个人设备(自带设备 (BYOD))上的工作资料:设备是个人设备,包含由与雇主关联的 IT 管理员管理的工作资料。

  • 公司拥有的设备上的工作资料:设备由雇主提供或拥有,包含由与雇主关联的 IT 管理员管理的工作资料。应用可以调用 isOrganizationOwnedDeviceWithManagedProfile() 来确定设备是否已预配为具有受管理资料的组织拥有的设备。

如需详细了解工作资料创建和设备政策 API 用法,请参阅创建工作资料

资料所有者

当创建工作资料时,设备政策客户端 (DPC) 应用充当资料所有者。DPC 客户端应用通常由企业移动管理 (EMM) 合作伙伴(例如 Google Apps Device Policy)提供,并且能够在设置为资料所有者时执行政策。工作资料具有带有徽章的应用实例,这些实例在视觉上与应用的个人实例区分开来;徽章将应用标识为工作应用。EMM 仅控制工作资料(工作应用和数据),而不控制个人空间。设备政策仅在工作资料上执行,但有一些例外情况,例如执行锁定屏幕,锁定屏幕适用于整个设备。

工作资料用户体验

Android 9 或更高版本在工作资料和 Android 平台之间创建了更紧密的集成,使用户可以更轻松地在其设备上将工作信息和个人信息分开。工作资料变更会显示在启动器中,并在受管理设备上提供一致的用户体验。

用户可以从设置或“快捷设置”菜单切换工作资料。在 Android 9 或更高版本中,设备实现可能在工作标签页页脚中包含一个切换开关,供用户启用或停用工作资料。切换工作资料是异步完成的,并应用于所有有效的用户资料;此过程由 WorkModeSwitch 类控制。

带有应用托盘的设备

在 Android 9 或更高版本中,Launcher3 的工作资料 UX 变更可帮助用户维护单独的个人资料和工作资料。应用抽屉式导航栏提供了一个选项卡式视图,用于区分个人资料应用和工作资料应用。当用户首次查看工作资料标签页时,系统会向他们显示一个教育性视图,以帮助他们浏览工作资料。

用户可以使用应用抽屉式导航栏顶部的资料标签页或类似的用户界面在不同的资料视图之间切换


图 1. 个人标签页视图

图 2. 工作标签页视图,工作资料切换开关

选项卡式视图作为 AllAppsContainerView Launcher3 类的组成部分实现。如需选项卡式资料指示器的参考实现,请参阅 PersonalWorkSlidingTabStrip 类。

带有工作标签页的设备中的用户教育消息

Android 9 或更高版本支持教育性视图,该视图告知用户工作标签页的用途以及他们如何使工作应用更易于访问。使用 Launcher3,当用户首次打开工作标签页时,可以在工作标签页屏幕中显示教育性视图,如图所示

Educational view

图 3. 教育性视图

不带应用托盘的设备

对于不带应用托盘的启动器,建议继续将工作资料应用的快捷方式放在工作文件夹中。

自定义启动器实现可以使用 getProfiles()getActivityList() 来检索工作资料用户的带有启动器图标的应用列表。

在实现工作文件夹的设备中,用户可以通过打开工作文件夹来访问工作资料应用


图 4. 关闭的工作文件夹

图 5. 打开的工作文件夹

带有工作文件夹的设备中的用户教育消息

对于不带应用托盘的启动器,当用户首次打开工作文件夹时,其中包含工作应用的工作文件夹教育消息可能会以可关闭工具提示的形式显示

Dismissable tooltip

图 3. 可关闭工具提示

验证工作资料用户体验

测试工作资料用户体验的最简单方法是使用 Test DPC 应用设置工作资料。以下步骤介绍了如何在个人设备(BYOD 场景)上设置工作资料

  1. 从恢复出厂设置的设备开始,并使用个人 Google 帐号完成个人资料设置;或者,也可以使用具有个人资料的设备作为起点。

  2. 从 Google Play 商店安装 Test DPC 应用。

  3. 打开启动器或应用抽屉式导航栏,然后选择设置 Test DPC

  4. 按照屏幕上的说明设置工作资料


    图 4. 设置工作资料


    图 5. 添加帐号


    图 6. 设置完成

  5. 打开启动器或应用抽屉式导航栏,并验证工作标签页是否存在以及是否包含工作资料页脚。其他设备制造商的实现可能包含工作文件夹而不是工作标签页。

  6. 通过确认工作资料应用(带有公文包徽章的应用)按预期启用和停用,验证您是否可以从“快捷设置”(或设置)中切换工作资料。在某些设备实现中,当工作资料停用时,工作应用可能会灰显,而在其他实现中(例如带有工作标签页的实现),可能会显示带有消息的叠加层,告知用户工作资料已关闭。下图展示了在实现工作标签页的设备上启用和停用工作资料的示例


    图 7. 切换开启,工作资料已启用

    图 8. 切换关闭,工作资料已停用

工作资料应用徽章

在 Android 9 或更高版本中,出于无障碍功能考虑,工作徽章的颜色为蓝色 (#1A73E8),而不是橙色。