Configurar apps

Algunas apps diseñadas para empresas incluyen parámetros de configuración integrados denominadas configuraciones administradas que los administradores de TI pueden establecer de forma remota. Por ejemplo, es posible que una app tenga la opción de sincronizar datos solo cuando un dispositivo esté conectado a Wi-Fi. Proporcionar a los administradores de TI la capacidad de especificar configuraciones administradas y aplicarlas a los dispositivos es un requisito para todos los conjuntos de soluciones.

En el siguiente diagrama, se ilustran algunas de las etapas clave de la administración de la configuración administrada con una descripción general de las opciones disponibles a través de la API de EMM de Google Play.

Cómo comprobar si una app admite configuraciones administradas

Usa Products.getAppRestrictionsSchema para determinar si una app admite configuraciones administradas. A continuación, verás un ejemplo en el que se usa la biblioteca cliente de la API de EMM de Google Play para Java.

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

Todas las apps muestran un esquema de restricciones de apps (configuraciones administradas). Si la llamada muestra un esquema vacío, la app no admite la administración de configuraciones. Si la llamada muestra un esquema que contiene un conjunto de restricciones, la app admite configuraciones administradas. Por ejemplo, una app que tiene una propiedad para habilitar la impresión remota a través de una VPN podría mostrar la siguiente respuesta a 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"
                }
              ]
            }
          ]
        }
      ]
    }

Especifica configuraciones administradas

En el caso de las apps que admiten opciones de configuración administradas, puedes permitir que los administradores de TI las configuren desde tu consola de EMM incorporando el iframe de configuraciones administradas o desarrollando tu propia IU.

Opción 1: Incorpora el iframe de las configuraciones administradas

La forma más fácil de admitir configuraciones administradas es incorporar el iframe de configuraciones administradas en tu consola de EMM. El iframe recupera el esquema de configuraciones administradas de una app específica y permite a los administradores de TI guardar, editar y borrar perfiles de configuración personalizados. Puedes usar la API de EMM de Play para aplicar perfiles personalizados a los dispositivos de los usuarios. Para obtener más información sobre el iframe y cómo agregarlo a tu consola, consulta iframes de configuraciones administradas.

Opción 2: Crea tu propia IU

Con los parámetros de configuración que muestra Products.getAppRestrictionsSchema, puedes crear tu propia IU que les permita a los administradores de TI administrar la configuración de las apps.

Aplica configuraciones administradas

Para aplicar configuraciones administradas a dispositivos, tu DPC debe estar integrado en la biblioteca de compatibilidad de DPC, como se detalla en Cómo compilar un controlador de política de dispositivo. La biblioteca de compatibilidad de DPC controla de forma transparente la delegación a Google Play para aplicar configuraciones administradas.

Puedes aplicar configuraciones administradas a un dispositivo estableciendo policy.productPolicy.managedConfiguration en el policy de Device.

Usa un mcmId

Cada vez que un administrador de TI guarda un perfil de configuración nuevo desde el iframe de configuraciones administradas, el iframe muestra un identificador único llamado mcmId. Un elemento mcmId no tiene límite para la cantidad de dispositivos en los que se puede aplicar y no tiene fecha de vencimiento.

Para aplicar un perfil de configuración a un dispositivo, configura policy.productPolicy.managedConfiguration.configurationVariables.mcmId en el policy de Device.

Si quieres permitir que los administradores de TI usen variables en el iframe de las configuraciones administradas (como $FirstName o $LastName), deberás definir cualquier variable contenida en el perfil mediante policy.productPolicy[].managedConfiguration.configurationVariables.mcmId.variableSet[].

Cómo usar una lista de propiedades administradas

También puedes incluir un conjunto de propiedades administradas si configuras policy.productPolicy.managedConfiguration.managedProperty[] en el policy de Device.

En el siguiente ejemplo, se muestra cómo definir una configuración. Esta configuración contiene una bundle_array (una lista) compuesta por dos propiedades de paquete (un grupo de propiedades relacionadas, en este caso, propiedades para una 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")))))));

Para obtener más información sobre las diferentes propiedades de configuración que admite una app, consulta Define opciones de configuración administradas.

Obtén una lista de los perfiles de configuración de una app

Según cómo diseñes tu solución, es posible que desees mostrar una lista de perfiles de configuración guardados de una app. Para recuperar esta lista, llama a Managedconfigurationssettings.list.