Google发布了 Android for Work ,该程序让用户在企业环境中使用自己的Android设备成为可能。
对于Android Lollipop,企业管理员可以创建Managed Profile(又称为Work Profile),然后部署到员工的智能手机上并进行远程管理。Managed Profile可以与用户的个人Profile共存,用户无需在两者之间进行切换。IT部门可以决定哪些应用将被推送到这些受管理的设备、这些设备的相应设置以及可用的功能。例如,Managed Profile可以禁止使用摄像头。此外,IT管理员能够随时删除应用和整个Profile。
Managed Profile只能安装在加密设备上。配置和数据都进行了加密并分开存放。用户对自己的个人数据拥有完全的控制并保证私密性,而管理员则控制着企业数据。工作应用及其通知使用Badge可视化标识。管理员可以从Play Store安装任何应用,但在将它们推送到设备之前,建议先进行测试。
对于运行Android Ice Cream Sandwich、Jelly Bean或KitKat的设备,企业可以使用Android for Work独立应用,经由IT部门批准和管理后,它包含的数个应用可以提供安全的服务:邮件、日历、联系人和浏览器等等。
对于免费应用,企业可以将其部署到Managed Profile中。而付费应用,开发者需要在发布过程中选择是否将应用批量销售给企业。
如果开发者按照最佳实践开发自己的Android应用,那么这些应用将能够与Android for Work一起工作,不会有什么问题。反之,则可能面临一些问题。这些问题与管理员针对Managed Profile的限制和强制执行的设置有关。
开发者应该明白,除非管理员明确允许,Android Intention是无法跨Profile的。而Managed Profile包含的应用数量有限,因此,可能会没有合适的应用来处理Managed Profile中的Intent,这会导致功能缺失,甚至在处理不当时应用闪退。为了避免这种情况,开发者必须调用 Intent.resolveActivity() 来检查自己的Intent是否有对应的处理对象。如果失败,则尽可能清晰地通知用户。此外,开发者也不要假设所有设备功能都是有效的,因为管理员可以在Managed Profile中禁用某些功能。
另一个问题源于Profile拥有独立的存储区域。这意味着文件URI无法跨Profile传递。如果Managed Profile的应用触发Intent并传递一个文件URI,而这个文件URI是由用户个人Profile中的应用处理时,将会导致失败。文件URI应该使用 FileProvider.getUriForFile() 包装成Content URI再传递。
为了确保应用能够在Managed Profile中正常工作,建议使用Google提供的 BasicManagedProfile ( 下载ZIP )进行测试。要了解创建企业应用更详细的信息,请访问 Building Apps for Work 。
查看英文原文: How to Make Sure an App Works with Android for Work