六、用于工作的安卓

你们大多数人都知道安卓设备在全球拥有巨大的市场份额百分比,越来越多的商家遵循自带设备(简称自带设备)政策。这是在 Android for Work 的帮助下完成的,这是一个针对公司的特殊程序,Android 平台中的几个附加功能允许公司内部更好的移动设备管理、管理和集成。

在与企业甚至中小型企业打交道时,您需要遵循特定的准则,并利用安卓应用编程接口为您造福。您可以在以下网址阅读更多关于安卓的信息:

http://developer.android.com/training/enterprise/index.html

安卓棉花糖对安卓工作程序做了一些改变,其中许多改变是为了开发人员和工作用户更好、更容易地使用。

在本章中,我们将介绍安卓棉花糖的变化,这些变化反映了或直接与安卓工作相关:

  • 行为变化
  • 一次性设备的改进
  • 静默安装/卸载应用
  • 改进的证书访问
  • 自动系统更新
  • 第三方证书安装
  • 数据使用统计
  • 管理运行时权限
  • 虚拟专用网接入和显示
  • 工作概况状态

行为变化

安卓棉花糖引入了一些与安卓 for Work 相关的行为变化。

工作档案联系人显示选项

使用以下设置,您现在可以在拨号器通话记录中显示您的工作档案联系人:

DevicePolicyManager.setCrossProfileCallerIdDisabled(ComponentName admin, boolean disabled)

您也可以使用新选项通过蓝牙显示工作联系人。将此设置为false将允许显示;默认值为true(禁用联系人共享选项):

DevicePolicyManager.setBluetoothContactSharingDisabled(ComponentNa me admin, boolean disabled)

Wi-Fi 配置选项

当通过工作配置文件添加无线网络时,通常,添加的配置即使在配置文件被删除后也保持不变。现在,如果删除工作配置文件,配置文件所有者添加的所有配置都将被删除。

无线配置锁

增加了新的Settings.Global设置:

WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN

该设置为整数值设置,即零值或缺失将导致用户修改或删除所有 Wi-Fi 配置。将整数值设置为非零值将启动锁定,这意味着用户不能修改或删除设备所有者创建的 Wi-Fi 配置—用户创建的配置仍可修改。请注意,活动设备所有者在任何无线网络配置中都拥有完全的权限,即使这些配置不是由他们创建的。

工作策略控制器添加

您可以继续向设备添加谷歌帐户,但现在,当添加由 工作策略控制器管理的帐户时,流程会更改为包括工作策略控制器添加。添加的帐户会提示用户安装适当的工作策略控制器。当通过设置或通过启动设备的设置向导添加帐户时,也是如此。有关如何构建工作策略控制器的更多信息,请阅读:

http://developer . Android . com/training/enterprise/work-policy-ctrl . html

设备策略管理器更改

DevicePolicyManager中,你可能会遇到相当多的行为变化;这些在下面的项目符号中列出,并有简短的解释:

  • setCameraDisabled()只为主叫用户影响摄像头;如果配置文件是托管配置文件,则呼叫不会影响主用户上运行的相机应用。
  • setKeyguardDisabledFeatures()可供个人资料所有者和设备所有者使用。
  • 档案所有者可以通过以下方式设置键盘手限制:
    • KEYGUARD_DISABLE_TRUST_AGENTS:这将忽略安全屏幕(个人识别码、模式或密码屏幕)上键盘守卫的信任代理状态
    • KEYGUARD_DISABLE_FINGERPRINT:这将禁用安全屏幕(个人识别码、模式或密码屏幕)上键盘上的指纹传感器
    • KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS:这将只允许安全键盘守卫屏幕上的修订通知和托管配置文件中的应用生成的通知
  • createAndInitializeUser()现在被弃用了。
  • createUser()现已弃用。
  • 使用 setScreenCaptureDisabled()方法,Assist功能会被阻止,但这只会在给定用户的应用处于前台时发生。
  • EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM现在是 SHA-256。对 SHA-1 的传统支持仍然存在,但根据文档,它将在未来的版本中被删除。
  • EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM就是现在的 SHA-256 才。
  • EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS已移除,因此 NFC 缓冲供应不会解锁受工厂重置保护的设备。
  • 在 NFC 供应期间将数据传递给设备所有者可以通过EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE完成。
  • 安卓棉花糖新权限模型下新增DevicePolicyManager API 权限。你可以在上阅读更多关于 DevicePolicyManager的信息。
  • 如果用户取消通过ACTION_PROVISION_MANAGED_PROFILEACTION_PROVISION_MANAGED_DEVICE意图启动的设置流程,现在将返回。
  • 更改为Settings.Global
  • 通过setGlobalSettings()禁用以下设置:
    • BLUETOOTH_ON
    • DEVELOPMENT_SETTINGS_ENABLED
    • MODE_RINGER
    • NETWORK_PREFERENCE
    • WIFI_ON
  • 通过setGlobalSettings()启用设置。

一次性设备的改进

您作为设备所有者现在可以控制添加的设置,从而使用以下内容改进设备管理:

  • setKeyguardDisabled()可以是用来禁用或重新启用键盘守卫
  • setStatusBarDisabled()可以是用来禁用或重新启用状态栏
  • UserManager.DISALLOW_SAFE_BOOT是一个新常量,表示用户是否可以将设备引导至安全引导状态
  • Settings.Global.STAY_ON_WHILE_PLUGGED_IN 将防止屏幕在接通电源时关闭

静默安装/卸载应用

现在,您可以使用PackageInstallerAPI 静默地安装和卸载应用。这意味着在没有用户互动的情况下安装应用,甚至作为公司政策的一部分移除应用。该功能使您无需实际激活谷歌账户即可使用设备。 Google Play for Work 不是必需的,允许你将设备作为使用,展示尚未发布的特定应用等等。

改进的证书访问

在安卓棉花糖出现之前,允许用户在没有用户交互的情况下授予被管理应用对证书的访问权限是不可能的,所以现在增加了一个新的回调:

DeviceAdminReceiver.onChoosePrivateKeyAlias (Context context, Intent intent, int uid, Uri uri, String alias)

该回调将允许设备所有者向发出请求的应用无声地提供别名。

自动系统更新

安卓 6.0 中增加了以下选项,其主要目的是允许设备所有者自动接受系统更新:

DevicePolicyManager.setSystemUpdatePolicy (ComponentName admin, SystemUpdatePolicy policy)

SystemUpdatePolicy也增加了,可以从三个选项中选择:

  • TYPE_INSTALL_AUTOMATIC:一有更新就更新为
  • TYPE_INSTALL_WINDOWED:更新应该在定时的系统维护内完成,并且只有更新,仅仅 30 天,然后恢复正常行为
  • TYPE_POSTPONE:将更新推迟 30 天,之后恢复正常行为

如果您有展示平板电脑或信息亭模式设备等设备,并且更新不会干扰设备的工作,这将非常有用。

第三方证书安装

第三方应用现在可以调用DevicePolicyManager应用接口:

  • getInstalledCaCerts()
  • hasCaCertInstalled()
  • installCaCert()
  • uninstallCaCert()
  • uninstallAllUserCaCerts()
  • installKeyPair()

这些应用编程接口调用只能在设备所有者或配置文件所有者授予权限的情况下进行。

数据使用统计

安卓 6.0 新增了一个类:NetworkStatsManager。这有助于您查询数据使用统计,可以在设置 | 数据使用中看到。

自动授予配置文件所有者访问权限,以便他们查询其配置文件中的数据。设备所有者可以访问被管理主用户的数据使用情况。

android.app.usage.NetworkUsageStats类已经改名为NetworkStats

管理运行时权限

安卓棉花糖引入了运行时权限模型,安卓 for Work 不得不处理设备的管理策略。您作为设备所有者现在可以使用setPermissionPolicy()为所有应用的所有运行时请求设置策略。

您可以选择提示用户授予权限或自动静默授予或拒绝权限。自动策略意味着用户不能在设置中修改应用的权限屏幕。

VPN 接入和显示

当前往设置 | 更多 | 虚拟专用网时,您现在可以查看虚拟专用网应用。当使用虚拟专用网络时,显示的通知现在是专用于如何配置该虚拟专用网络:

  • 配置文件所有者:根据 VPN 配置并基于配置文件(个人、工作或两者),显示通知
  • 设备所有者:当为整个设备配置了 VPN 时,会显示通知

工作档案状态

引入了两个新的附加功能,让用户知道他们使用的是不同的配置文件:

  • 使用工作档案中的应用时,状态栏将显示公文包图标
  • 当直接从工作配置文件应用解锁设备时,会显示一个弹出窗口,提醒用户该应用在工作配置文件上运行

总结

正如我们在这一章看到的,安卓棉花糖给安卓的工作世界带来了很多变化。作为开发人员,我们需要始终与组织的需求保持可行的联系。我们需要确保我们浏览并理解安卓的工作世界;棉花糖中的变化帮助我们利用更简单的 API 构建和定位企业工作流。

在下一章中,我们将了解 Chrome 自定义标签应用编程接口的用法和流程。