Configurar apps

Alguns apps desenvolvidos para empresas incluem definições integradas, chamadas configurações gerenciadas, que os administradores de TI podem definir remotamente. Por exemplo, um app pode ter a opção de sincronizar dados apenas quando um dispositivo estiver conectado ao Wi-Fi. Fornecer aos administradores de TI a capacidade de especificar configurações gerenciadas e aplicá-las a dispositivos é um requisito para todos os conjuntos de soluções.

O diagrama abaixo ilustra alguns dos principais estágios do gerenciamento de configurações gerenciadas com uma visão geral das opções disponíveis na API de EMM do Google Play.

Verificar se um app é compatível com as configurações gerenciadas

Use Products.getAppRestrictionsSchema para determinar se um app oferece suporte a configurações gerenciadas. Veja um exemplo que usa a biblioteca de cliente da API Google Play EMM para Java.

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

Todos os apps retornam um esquema de restrições (configurações gerenciadas). Se a chamada retornar um esquema vazio, o app não oferece suporte para o gerenciamento de configurações. Se a chamada retornar um esquema contendo um conjunto de restrições, o app oferece suporte para configurações gerenciadas. Por exemplo, um app que tenha uma propriedade para ativar a impressão remota por uma VPN pode retornar a resposta a seguir para 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"
                }
              ]
            }
          ]
        }
      ]
    }

Especificar configurações gerenciadas

Para apps compatíveis com configurações gerenciadas, é possível permitir que os administradores de TI as definam no console de EMM incorporando o iframe de configurações gerenciadas ou desenvolvendo sua própria IU.

Opção 1: incorporar o iframe de configurações gerenciadas

A maneira mais fácil de oferecer suporte às configurações gerenciadas é incorporar o iframe delas ao console de EMM. O iframe recupera o esquema de configurações gerenciadas de um app especificado e permite que os administradores de TI salvem, editem e excluam perfis de configuração personalizados. Use a API Play EMM para aplicar perfis personalizados aos dispositivos dos usuários. Para saber mais sobre o iframe e como adicioná-lo ao seu console, consulte iframe de configurações gerenciadas.

Opção 2: criar sua própria IU

Usando as configurações retornadas de Products.getAppRestrictionsSchema, você pode criar sua própria IU para que os administradores de TI possam gerenciar as configurações do app.

Aplicar configurações gerenciadas

Para aplicar configurações gerenciadas a dispositivos, o DPC precisa estar integrado à Biblioteca de Suporte do DPC, conforme detalhado em Criar um controlador de política de dispositivo. A Biblioteca de Suporte do DPC processa de forma transparente a delegação ao Google Play para aplicar configurações gerenciadas.

Você pode aplicar configurações gerenciadas a um dispositivo definindo policy.productPolicy.managedConfiguration no policy do Device.

Como usar um mcmId

Sempre que um administrador de TI salva um novo perfil de configuração do iframe de configurações gerenciadas, o iframe retorna um identificador exclusivo chamado mcmId. Uma mcmId não tem limite para o número de dispositivos em que pode ser aplicada e não tem um prazo de validade.

Para aplicar um perfil de configuração a um dispositivo, defina policy.productPolicy.managedConfiguration.configurationVariables.mcmId no policy do Device.

Se você quiser permitir que os administradores de TI usem a variável no iframe de configurações gerenciadas (como $FirstName, $LastName), defina todas as variáveis contidas no perfil usando policy.productPolicy[].managedConfiguration.configurationVariables.mcmId.variableSet[].

Como usar uma lista de propriedades gerenciadas

Você também pode incluir um conjunto de propriedades gerenciadas definindo policy.productPolicy.managedConfiguration.managedProperty[] no policy do Device.

O exemplo abaixo mostra como definir uma configuração. Essa configuração contém uma bundle_array (uma lista) composta por duas propriedades de pacote (um grupo de propriedades relacionadas, nesse caso, propriedades de uma 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 mais informações sobre as diferentes propriedades de configuração a que um app pode oferecer suporte, consulte Definir configurações gerenciadas.

Listar os perfis de configuração de um app

Dependendo de como você projeta sua solução, pode ser necessário mostrar uma lista de perfis de configuração salvos para um app. Para recuperar essa lista, chame Managedconfigurationssettings.list.