Android学习之 managed configuration
目录
-
远程配置概述
-
定义管理配置
-
检查管理配置
-
监听管理的配置的变化
-
发送配置管理反馈给EMMs(企业移动应用管理人员)
引言
如果开发的APP需要为企业服务,你需要满足一个企业政策特殊的设置需求。Managed configuration(配置管理),就是应用程序约束,企业组织的IT admin 可通过配置管理远程管理apps的配置。配置管理功能对于部署到工作配置文件中的组织批准的应用程序特别有用。
举个例子,某个企业组织需要IT admin(IT 管理员)可以对approved APP执行以下操作:
- 允许或阻止web浏览器的URL
- 配置是否允许应用程序通过蜂窝网络或仅通过Wi-Fi同步内容
- 配置app应用程序的email 设置
那作为Android开发人员,我们如何实现配置管理APP设置呢?看两个简单的配置管理的例子,AppRestrictions(https://github.com/android/enterprise-samples/tree/main/AppRestrictions) 和 AppRestrictionSchema(https://github.com/android/enterprise-samples/tree/main/AppRestrictionSchema)。如果你是企业移动手机管理开发人员(EMM developer),参考 Build a Device Policy Controller 的文章
- 注意:由于历史原因,这些配置设置称为约束(restriction),并使用使用此术语的文件和类(如RestrictionsManager)实现。然而,这些约束实际上可以管理很多设置选项,而不仅仅是对应用程序功能的限制。
一 远程配置概述
首先Apps定义了可被IT 管理员远程管理的配置选项。提供托管配置的应用程序可以任意修改这些配置选项。如果你开发的APP在企业组织的工作环境中运行,IT管理员可以更改应用程序的配置选项。
提供托管配置的应用程序是在同一设备上运行的另一个应用程序。此应用程序通常由IT管理员控制。IT管理员将配置更改传递到提供托管配置的应用程序,然后此程序可以修改你的APP的配置。
你开发的APP要提供可由外部APP或消息传递来管理配置的功能,就要做下面几个事情:
- 在APP的manifest中声明管理配置。这样,IT管理员就可以通过Google Play APIs读取APP的配置。
- 每当应用程序resume(恢复)时,请使用RestrictionsManager对象检查当前管理配置,并更改APP的UI和行为以符合这些配置。
- 监听(Listener)ACTION_APPLICATION_RESTRICTIONS_CHANGED intent。当您收到此广播时,请检查RestrictionsManager以查看当前管理配置是什么,并对APP的行为进行任何必要的更改。
二 定义管理配置
你想定义什么管理配置,APP都可以支持。你要在一个配置管理文件中定义APP的管理配置,并且 在manifest中声明这个配置管理文件。创建一个配置文件是为了让其他APP可以检测到你的APP可以提供哪些可以修改的管理配置。EMM(企业移动应用管理)伙伴就可以通过Google Play APIs 来读取你的APP 的配置。
要定义你的APP的远程配置选项,
- 首先在你APP的manifest 的 <application> 元素中加入下面的代码:
<meta-data android:name="android.content.APP_RESTRICTIONS"
android:resource="@xml/app_restrictions" />
- 创建一个app_restrictions.xml文件,放到APP的 res/xml 文件夹下。文件结构参考 RestrictionManager。该文件有一个顶层的<restrictions>元素,该元素为应用程序的每个配置选项包含一个<restriction>子元素。
注意:不要创建管理配置文件的本地化版本。你的应用程序只允许有一个托管配置文件,所以你的应用程序在所有地方的配置都是一致的。
在企业环境中,EM