配置应用

一些专为企业设计的应用包含名为受管理的 IT 管理员可远程配置的配置文件。例如,应用可能 可以选择只在设备连接到 Wi-Fi 时同步数据。正在提供 IT 管理员能够指定托管配置并将其应用到 设备是所有解决方案集的一项要求。

下图说明了托管配置的一些关键阶段 并提供 Google Play EMM 提供的选项概览 API。

检查应用是否支持受管配置

使用 Products.getAppRestrictionsSchema 以确定应用是否支持托管配置。下面是一个示例 使用 适用于 Java 的 Google Play EMM API 客户端库

public AppRestrictionsSchema getAppRestrictionsSchema(String enterpriseId,
    String productId, String language) throws IOException {
  return androidEnterprise
     .product()
     .getAppRestrictionsSchema(enterpriseId, productId, language)
     .execute();
}

所有应用都会返回应用限制(受管配置)架构。如果调用 返回空架构,则表示应用不支持管理配置。如果 该调用返回一个包含一组限制的架构,那么应用 支持托管配置。例如,某个应用具有 通过 VPN 启用远程打印时可能会向 Products.getAppRestrictionsSchema

    {
      "kind": "androidenterprise#appRestrictionsSchema",
      "restrictions": [
        {
          "key": "printing_enabled",
          "title": "Enable printing",
          "restrictionType": "bool",
          "description": "Allow user to print from the app",
          "defaultValue": {
            "type": "bool",
            "valueBool": true,
          }
        },
        {
          "key": "vpn_configurations",
          "title": "VPN configurations",
          "restrictionType": "bundle_array",
          "description": "List of VPN configurations",
          "nestedRestriction": [
            {
              "key": "vpn_configuration",
              "title": "VPN configuration",
              "restrictionType": "bundle",
              "nestedRestrictions": [
                {
                  "key": "server",
                  "title": "VPN server host",
                  "restrictionType": "string"
                },
                {
                  "key": "username",
                  "title": "VPN account username",
                  "restrictionType": "string"
                }
              ]
            }
          ]
        }
      ]
    }

指定受管配置

对于支持托管配置的应用,您可以允许 IT 管理员进行设置 从 EMM 控制台嵌入受管配置 iframe 或通过 开发自己的界面

方法 1:嵌入受管配置 iframe

要支持托管配置,最简单的方法就是在 将配置 iframe 复制到 EMM 控制台中。iframe 会检索托管 配置架构,并允许 IT 管理员保存、修改 和删除自定义配置文件您可以使用 Play EMM API 自定义个人资料与用户设备相关联。要详细了解 iframe 以及如何添加 iframe, 请参阅 受管配置 iframe

方法 2:创建自己的界面

使用从 Products.getAppRestrictionsSchema 返回的配置, 可以创建自己的界面,供 IT 管理员管理应用配置。

应用受管配置

如需将受管配置应用于设备,必须集成您的 DPC 使用 DPC 支持库,详见构建设备政策 控制器DPC 支持库 以透明的方式处理向 Google Play 授予的委托,以应用受管理的 配置。

您可以通过设置 policy.productPolicy.managedConfigurationDevicepolicy

使用 mcmId

每当 IT 管理员从受管理账号保存新配置文件时 配置 iframe,该 iframe 会返回一个名为 mcmId 的唯一标识符。一个 “mcmId”对可以应用的设备数量没有限制, 没有到期时间

要将配置文件应用于设备,请将 policy.productPolicy.managedConfiguration.configurationVariables.mcmIdDevicepolicy

如果您想允许 IT 管理员在受管理的环境中使用变量 配置 iframe(例如 $FirstName、$LastName)时,您需要定义任意 配置文件中包含的变量 policy.productPolicy[].managedConfiguration.configurationVariables.mcmId.variableSet[]

使用受管理的资源列表

您还可以通过设置 policy.productPolicy.managedConfiguration.managedProperty[]Devicepolicy

以下示例展示了如何定义配置。此配置 包含一个 bundle_array(列表),它由两个 bundle 属性(一个 一组相关属性,在本例中为 VPN 的属性)。

    ManagedConfiguration managedConfiguration = new ManagedConfiguration()
      .setManagedProperty(
        ImmutableList.of(
            new ManagedProperty()
                .setKey("printing_enabled")
                .setValueBool(true),
            new ManagedProperty()
                .setKey("vpn_configurations")
                .setValueBundleArray(
                    ImmutableList.of(
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn1.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("john.doe"))),
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn2.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("jane.doe")))))));

如需详细了解应用可配置的不同配置属性 请参阅定义代管式 配置

列出应用的配置文件

根据您设计解决方案的方式,您可能需要显示 为应用保存配置文件。要检索此列表,请调用 Managedconfigurationssettings.list