写点什么

让你的应用兼容 Android for Work

2015 年 3 月 01 日

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

2015 年 3 月 01 日 08:483964

评论

发布
暂无评论
发现更多内容

云算力挖矿平台APP,算力挖矿建设开发

13530558032

互联网人必备知识cookie和session认证

架构师修行之路

分布式 身份认证 session Cookie

微服务架构下的系统集成

码猿外

架构 微服务 系统集成

区块链支付新模式开发,USDT支付系统搭建

13530558032

oeasy教您玩转linux010201持续输出yes

o

我所在公司和大数据

2流程序员

Docker 私有镜像仓库的搭建及认证

哈喽沃德先生

Docker 容器 微服务 镜像 容器技术

架构师训练营 -- 第 12 周作业

stardust20

cookie和session的关系看这一篇就够了

架构师修行之路

session Cookie

数字货币交易平台源码,数字货币交易所开发核心功能

13530558032

kubernetes node affinity 写法

Geek_f24c45

Kubernetes

2020-08-29-第十二周学习总结

路易斯李李李

你真的知道什么是线程安全吗?

老胡爱分享

并发编程 线程 java 并发

区块链助力军事人力资源配置

CECBC区块链专委会

区块链 军事

大数据应用场景

dongge

【Spring Boot系列】之多种依赖集成方式

TinyKing

架构设计开学第一天

escray

学习 从零开始学架构 架构师预科班

2020-08-29-第十二周作业

路易斯李李李

Week 12 学习总结

Jeremy

第九周

Acker飏

AtlassianTeam Playbook | 用户体验中的移情地图

Atlassian

团队管理 敏捷开发 Atlassian

Atlassian Team Playbook | 用户体验画布挖掘业务价值

Atlassian

团队管理 敏捷开发 Atlassian

所按非所得——聊一聊StandHogg漏洞

OPPO安全

安全攻防 安全 安全开发 漏洞

大数据解答(一)

dony.zhang

大数据 mapreduce

数字资产钱包开发,数字加密货币app搭建

13530558032

42图揭秘,「后端技术学些啥」

我是程序员小贱

Flink SQL FileSystem Connector 分区提交与自定义小文件合并策略

Apache Flink

flink

甲方日常 5

句子

工作 随笔杂谈 日常

FlinkX 如何读取和写入 Clickhouse?

Apache Flink

flink

十年Java开发传奇经历:我是如何从外包逆袭成为大厂架构师的

Java成神之路

Java 程序员 面试 微服务 多线程

Week 12 命题作业

Jeremy

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

让你的应用兼容Android for Work-InfoQ