Android学习之 managed configuration (MDM Support 移动设备管理支持)

Android学习之 managed configuration

目录

  1. 远程配置概述

  2. 定义管理配置

  3. 检查管理配置

  4. 监听管理的配置的变化

  5. 发送配置管理反馈给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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 GlassFish 应用服务器中,ManagedResource 和 ManagedObject 都是管理资源的机制。下面我将以 JDBC 连接池为例,来举例说明 ManagedResource 和 ManagedObject 的使用。 在 GlassFish 中,JDBC 连接池是一种资源,可以通过 ManagedResource 和 ManagedObject 来进行管理。在这个例子中,JDBC 连接池是 ManagedResource,而数据源是 ManagedObject。 具体来说,一个 JDBC 连接池可以有多个数据源,每个数据源都有一个名称、一个连接 URL、一个用户名、一个密码等属性。在 GlassFish 中,这些属性可以通过 ManagedObject 进行管理。 例如,我们可以通过以下命令在 GlassFish 中创建一个名为 myPool 的 JDBC 连接池: ``` asadmin create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource --property user=root:password=123456:url=jdbc:mysql://localhost:3306/test myPool ``` 在这个命令中,我们指定了连接池的资源类型、数据源类名、属性等信息。其中,--property 参数指定了数据源的属性,这些属性将作为 ManagedObject 进行管理。 一旦创建了 JDBC 连接池,我们就可以使用 JMX 来管理其中的数据源。例如,我们可以使用 JConsole 连接到 GlassFish 中的 MBean 服务器,然后找到 myPool 的 MBean,从而访问其中的 ManagedObject。 在 JConsole 中,我们可以找到 myPool 的 MBean,然后展开它,可以看到其中包含了多个 ManagedObject,每个 ManagedObject 都代表一个数据源。我们可以通过这些 ManagedObject 来查看和修改数据源的属性,例如修改用户名和密码等。 总之,ManagedResource 和 ManagedObject 是 GlassFish 中管理资源的两个不同层次,ManagedResource 是更高层次的资源管理机制,而 ManagedObject 是 ManagedResource 的一部分,用于实现具体的属性管理。在 GlassFish 中,JDBC 连接池就是一个很好的例子,演示了 ManagedResource 和 ManagedObject 的使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值