Google 致力于为黑人社区推动种族平等。查看具体举措

使用工作资料

工作资料是指在管理方式和视觉外观方面具有额外特殊属性的 Android 用户工作资料的主要目的是为受管理的数据(如企业数据)创建一个隔离且安全的存储空间。资料管理员可以全权控制数据的范围、入站流量、出站流量和数据生命周期。这些政策可以赋予极高的权限,因此需由工作资料(而非设备管理员)负责执行。

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

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

  • 外观处理。工作资料中的应用、通知和微件带有标志,并且通常内嵌在主用户的界面元素中。

数据隔离

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

应用

当主用户和工作资料中存在同一应用时,应用使用自己的隔离数据进行限定。通常情况下,应用的操作相互独立,无法跨越资料和用户之间的边界直接相互通信。

帐号

工作资料中的帐号在主用户中具有唯一性,无法跨越资料和用户之间的边界访问各自的账号。只有在各自环境中的应用才能访问其各自的帐号。

Intent

管理员可以控制是否在工作资料中解析 intent。默认情况下,工作资料中应用的范围被限定在工作资料内,但设备政策 API 除外。

设备标识符

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

具有工作资料的个人设备必须使用注册专用 ID;公司自有设备(包括工作资料和完全托管设备)也可以选择启用该 ID。如需使用该功能,EMM 必须为其管理的每台设备设置组织 ID,之后 EMM 就可以读取该设备上的注册专用 ID,并将其处理为序列号。有关详情,请参阅工作资料的安全和隐私权增强功能

设置

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

工作资料以次要用户身份实现,例如 uid = 100000 \* userid + appid。与普通用户类似,这些资料也有单独的应用数据 (/data/user/userid)。使用 Binder.getCallingUid() 为所有系统请求计算 userid,并使用 userid 值分隔所有系统状态和响应。

AccountManagerService 为每个用户保留了一个单独的帐号列表。 工作资料用户和常规次要用户之间的帐号差异包括:

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

  • 工作资料通知由 ActivityManagerService 启用,可使工作资料与主用户共享 activity 堆栈。

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

  • 借助启动器 API,可使启动器在主资料中的应用旁显示工作资料中带有标记的应用和已列入许可名单的微件,而无需切换用户。

设备管理

Android 企业设备管理包括以下所有者:

  • 资料所有者。专为自带设备 (BYOD) 环境而设计。
  • 设备所有者。专为由企业负责的环境而设计。

一些设备管理 API 会用于使用方(例如,查找我的设备 API),而其他 API 则仅适用于资料或设备所有者。

资料所有者

设备政策客户端 (DPC) 应用作为资料所有者,通常由企业移动管理 (EMM) 合作伙伴(如 Google Apps Device Policy)提供。资料所有者应用通过发送 ACTION_PROVISION_MANAGED_PROFILE intent 在设备上创建工作资料。工作资料具有应用的标记实例,这些应用在视觉上与个人应用实例不同;标记可将应用标识为工作应用。EMM 仅对工作资料(而非个人空间)进行控制(有一些例外情况,例如强制执行锁定屏幕)。

设备所有者

只能在未配置的设备上设置设备所有者,因为必须在初始设备设置期间配置所有者。快捷设置必须始终显示披露信息。设备所有者可以执行一些资料所有者无法执行的任务,例如:

  • 擦除设备数据。
  • 停用 WLAN 或蓝牙。
  • 设置 setGlobalSetting 的值。
  • 设置 setLockTaskPackages 的值,能够将可以自行固定到前台的软件包列入许可名单。
  • 设置 DISALLOW_MOUNT_PHYSICAL_MEDIA 的值,默认为 FALSE;设置为 TRUE 时,无法装载便携式和可合并的物理介质。

DevicePolicyManager API

Android 5.0 或更高版本提供经过改进的 DevicePolicyManager,其中包含支持公司自有和自带设备 (BYOD) 管理用例的 API,包括限制应用、静默安装证书以及控制跨资料共享 intent 访问权限。首先,使用示例设备政策客户端 (DPC) 应用 BasicManagedProfile.apk。如需了解详情,请参阅构建设备政策控制器

工作资料用户体验

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

具有应用托盘的设备

在 Android 9 或更高版本中,Launcher3 的工作资料用户体验变化有助于用户维护单独的个人资料和工作资料。应用抽屉提供了一个标签式视图,用于区分个人资料应用。当用户首次查看工作资料标签页时,系统会显示一个指导视图,以协助用户浏览工作资料。他们还可以使用启动器的工作标签页中的切换开关来开启或关闭工作资料。

标签式资料视图

在 Android 9 或更高版本中,工作资料可让用户在应用抽屉中的个人应用列表和受管理应用列表之间切换。应用视图分成两个不同的 RecyclerViews,由 ViewPager 管理。用户可以使用应用抽屉顶部的资料标签页在不同资料视图之间切换,如下图所示:


图 1. 个人标签视图

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

标签式视图在 Launcher3 类 AllAppsContainerView 中实现。如需查看标签式资料指示器的参考实现,请参阅 PersonalWorkSlidingTabStrip 类。

指导视图

Android 9 或更高版本支持指导视图,可让用户了解工作标签页的用途,以及可让用户更轻松地访问工作应用。当用户首次打开工作标签页时,您可以使用 Launcher3 在工作标签页屏幕底部显示指导视图,如下所示:

指导视图

图 3. 指导视图

指导视图由 BottomUserEducationView 类定义,其布局由 work_tab_tottom_user_education_view.xml 控制。在 BottomUserEducationView 中,KEY_SHOWED_BOTTOM_USER_EDUCATION 布尔值默认设置为 false。当用户关闭指导视图时,该布尔值将设置为 true

切换以启用或停用工作资料

在 Android 9 或更高版本中,受管理设备管理员可以在工作标签页页脚中显示切换开关,以便用户启用或停用工作资料。工作资料的启用和停用是异步完成的,并且会应用于所有有效的用户资料;此过程由 WorkModeSwitch 类控制。如需了解切换来源,请参阅 WorkFooterContainer

没有应用托盘的设备

对于没有应用托盘的启动器,请继续将工作资料应用的快捷方式放置在工作文件夹中。如果工作文件夹未正确填充,并且新安装的应用未添加到该文件夹,请在 ManagedProfileHeuristic 类的 onAllAppsLoaded 方法中应用以下更改:

for (LauncherActivityInfo app : apps) {
        // Queue all items which should go in the work folder.
        if (app.getFirstInstallTime() < Long.MAX\_VALUE) {
                InstallShortcutReceiver.queueActivityInfo(app, context);
        }
}

验证用户体验变化

如需使用 TestDPC 应用测试工作资料用户体验实现,请执行以下操作:

  1. 在设备上,从 Google Play 商店安装 TestDPC 应用。

  2. 打开启动器或应用抽屉,然后选择设置 TestDPC

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


    图 4. 设置工作资料


    图 5. 添加帐号


    图 6. 设置已完成

  4. 打开启动器或应用抽屉,并验证工作标签页是否存在且包含工作资料页脚。

  5. 通过确认工作资料是否按预期启用和停用工作资料,验证您可否开启或关闭工作资料。下方各图展示了已启用和已停用的工作资料示例:


    图 7. 开启、启用工作资料

    图 8. 关闭、停用工作资料

工作资料应用标志

在 Android 9 或更高版本中,出于无障碍原因,工作标志的颜色为蓝色 (#1A73E8),而不是橙色。