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
.