Há várias maneiras de provisionar dispositivos. Os requisitos comerciais de seus clientes determinam quais métodos de provisionamento você quer usar.
Noções básicas sobre o provisionamento de dispositivos
Os cenários de implantação de provisionamento de dispositivos que seus clientes querem oferecer (como BYOD ou propriedade da empresa) determinam os modos de operação usados (como o modo de proprietário do dispositivo ou o modo de proprietário do perfil). Da mesma forma, os modos de operação e as versões do Android que precisam ter suporte determinam quais métodos de provisionamento vão ser implementados.
Cenários de implantação
Em um cenário de implantação de propriedade da empresa, a empresa é proprietária e controla totalmente os dispositivos que os funcionários usam. Normalmente, as organizações implantam dispositivos da empresa quando precisam monitorar e gerenciar estritamente todo o dispositivo.
As empresas que oferecem suporte a um cenário de implantação BYOD permitem que os funcionários tragam dispositivos pessoais para o trabalho e os usem para acessar informações e aplicativos privilegiados da empresa.
Modos de operação
As implantações de propriedade da empresa são aceitas pelo modo de operação proprietário do dispositivo. No Android, seu app de gerenciamento é chamado de controlador de política de dispositivo (DPC). O DPC aplica políticas em um dispositivo Android e, quando funciona como proprietário do dispositivo, gerencia todo o dispositivo. Como proprietário do dispositivo, o DPC pode realizar ações em todo o dispositivo, como configurar a conectividade, definir configurações globais e redefinir a configuração original.
As implantações BYOD são compatíveis com o modo de operação do proprietário do perfil. Por meio do DPC, a empresa permite o uso profissional de dispositivos pessoais adicionando um perfil de trabalho à conta de usuário principal no dispositivo. O perfil de trabalho está associado ao usuário principal, mas como um perfil separado. Como proprietário do perfil, o DPC gerencia apenas o perfil de trabalho no dispositivo e tem controle limitado fora desse perfil.
As implantações de dispositivos legados são compatíveis com o modo de operação legado, que permite o controle limitado do DPC sobre um dispositivo, como a capacidade de limpar um dispositivo, exigir um código de acesso ou aplicar algumas políticas. É possível fornecer gerenciamento de apps em dispositivos legados por meio do Google Play, permitindo que o usuário adicione uma Conta do Google ou fazendo com que seu DPC adicione uma conta do Google Play gerenciada ao dispositivo legado.
O modo legado não é recomendado para implantações em que é possível implementar o modo de proprietário do dispositivo ou o modo de proprietário do perfil. Use o nível mais alto possível de gerenciamento de dispositivos em vez de uma solução de "menor denominador comum" em uma frota grande.
Métodos de provisionamento do proprietário do dispositivo
Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.
Dependendo do caso de uso, há dois tipos principais de métodos de provisionamento para o modo de proprietário do dispositivo.
- Em um fluxo orientado a dispositivos, os administradores de TI podem usar a NFC para provisionar um grande número de dispositivos. Esse fluxo pode ser usado em cenários com uma conta do Google Play gerenciado ou do G Suite.
- Em um fluxo baseado no usuário, as opções vão depender de a organização usar o G Suite ou não.
- Em um cenário do G Suite, o usuário adiciona a Conta do Google durante a configuração inicial do dispositivo, e o DPC precisa orientá-lo nas etapas para configurar o proprietário do dispositivo. Um fluxo orientado ao usuário pode ajudar os usuários finais a configurar novos dispositivos e também é uma alternativa quando os dispositivos não são compatíveis com NFC.
- Quando uma organização não usa o G Suite, use o método de contas do Google Play gerenciado.
Observação:se você limitar a distribuição do app a países específicos no Google Play, essas restrições serão ignoradas durante o provisionamento do proprietário do dispositivo. O DPC será transferido por download mesmo que o dispositivo não esteja em um país de destino.
Métodos de provisionamento do proprietário do perfil
O método recomendado para provisionar o modo de operação do proprietário do perfil depende se a organização usa ou não o G Suite.
- No caso do G Suite, o método recomendado é um fluxo orientado ao usuário em que ele adiciona a Conta do Google, e o DPC o orienta nas etapas de configuração do proprietário do perfil.
- Quando uma organização não usa o G Suite, o método recomendado é o método de contas do Google Play gerenciado.
O método tradicional, em que o usuário é instruído a instalar manualmente o DPC, também é compatível. O usuário precisa fazer o download do DPC no Google Play e instalá-lo. Em seguida, o DPC orienta o usuário durante o restante do processo para configurar o proprietário do perfil.
Métodos de provisionamento para dispositivos legados
Os dispositivos legados executam versões do Android anteriores à 5.0 ou não são compatíveis com perfis de trabalho. O método recomendado para provisionar um dispositivo legado depende de a organização usar Contas do Google gerenciadas.
- No caso de Contas do Google gerenciadas, o método recomendado é um fluxo orientado ao usuário em que ele adiciona a Conta do Google, e o DPC o orienta nas etapas de configuração.
- Quando uma organização não usa Contas do Google gerenciadas, o método recomendado é Contas do Google Play gerenciado, em que o usuário instala o DPC do Google Play. O DPC pode adicionar contas do Google Play gerenciado a um dispositivo legado, de maneira semelhante à maneira como ela adiciona a conta a um perfil de trabalho.
O método tradicional, em que o usuário é instruído a instalar manualmente o DPC, para depois adicionar uma Conta do Google, também é compatível. O usuário precisa fazer o download do DPC no Google Play e instalá-lo. Em seguida, o DPC orienta o usuário durante o restante do processo de configuração.
Principais diferenças de provisionamento nas versões do Android
Cenário de implantação |
Modo de operação |
Método de provisionamento |
*Antes 5.0 |
5,0, 5,1 |
6.0, mais tarde |
7.0, mais tarde |
Pertence à empresa | Proprietário do dispositivo | Código QR | ✓ | |||
Contas do Google Play gerenciado | ✓ | ✓ | ||||
Conta do Google | ✓ | ✓ | ||||
NFC | ✓ | ✓ | ✓ | |||
Legada | Contas do Google Play gerenciado | ✓ | ||||
Conta do Google | ✓ | |||||
BYOD | Perfil de proprietário | Contas do Google Play gerenciado | ✓ | ✓ | ✓ | |
Conta do Google | **5,1 | ✓ | ✓ | |||
Instalação manual de DPC | ✓ | ✓ | ✓ | |||
Legada | Contas do Google Play gerenciado | ✓ | ||||
Conta do Google | ✓ | |||||
Instalação manual de DPC | ✓ |
*O modo legado também é recomendado para dispositivos que não são compatíveis com perfis de trabalho, mesmo que executem uma versão do Android posterior à 5.0. Normalmente, são dispositivos com pouca memória RAM.
**O método Conta do Google no Android 5.1 oferece suporte apenas ao modo de operação do proprietário do perfil, e o usuário só pode configurá-lo em Configurações > Adicionar conta.
Considerações gerais de implementação
Veja alguns pontos a serem considerados ao gravar seu DPC, independentemente do modo de operação implementado.
Compatibilidade com o Google Play Services
O guia de APK do Google Play Services instrui os desenvolvedores a verificar a versão do serviço antes de realizar transações de API. Como a tentativa de atualizar o Google Play Services causa interrupções graves no processo de configuração do dispositivo, o DPC não pode tentar atualizar o Google Play Services antes do término do provisionamento de dispositivos.
Os principais pontos sobre a compatibilidade do DPC com o Google Play Services são:
- O DPC precisa ser executado usando o Google Play Services fornecido com um dispositivo específico.
- O DPC não pode depender de novos recursos quando versões futuras do Google Play Services estiverem disponíveis no momento do provisionamento de dispositivos.
Quando o provisionamento de dispositivos for concluído, o DPC poderá solicitar que o usuário atualize o Google Play Services para que o DPC possa usar os recursos mais recentes. No entanto, se um recurso não estiver disponível por algum motivo, o DPC precisará retornar à versão que acompanha o dispositivo.
Como recuperar detalhes do dispositivo
Devido a atrasos na propagação, pode levar até dois minutos para que uma chamada para devices.get de um dispositivo recém-registrado retorne os detalhes do dispositivo.
Se o fluxo de trabalho exigir os detalhes antes que o usuário final possa usar o dispositivo ou o perfil de trabalho, sugerimos usar uma tela de progresso no DPC e aguardar até que a chamada seja bem-sucedida.
Considerações de implementação para o modo de proprietário do perfil
Veja alguns pontos a serem considerados ao gravar seu DPC para implementar o modo de operação do proprietário do perfil.
Remover ou desativar o DPC pessoal
Ao provisionar o modo de proprietário do perfil de operação, o DPC começa a ser executado no perfil pessoal e inicia o processo para criar um perfil de trabalho. Depois que o perfil de trabalho é criado, o DPC também é executado dentro dele. O DPC no perfil de trabalho conclui o processo de provisionamento. Nesse momento, o DPC no perfil pessoal precisa desativar a si mesmo ou o usuário do dispositivo precisa removê-lo.
O usuário remove o DPC pessoal
- O DPC pessoal detecta
ACTION_MANAGED_PROFILE_PROVISIONED.
. Em dispositivos Android 5.1, o DPC pessoal detectaACTION_MANAGED_PROFILE_ADDED
. - O DPC pessoal inicia uma solicitação de desinstalação
ACTION_UNINSTALL_PACKAGE
. Isso solicita que o usuário desinstale o DPC pessoal. Para a melhor experiência do usuário, o processo de desinstalação precisa ocorrer durante o fluxo de provisionamento.
O DPC pessoal é desativado automaticamente
- O DPC pessoal detecta
ACTION_MANAGED_PROFILE_PROVISIONED.
. Em dispositivos Android 5.1, o DPC pessoal detectaACTION_MANAGED_PROFILE_ADDED
. - Se aplicável, o DPC pessoal precisa liberar os privilégios de administrador do dispositivo antes de ser desativado.
- O DPC pessoal inicia uma solicitação de desativação de
setApplicationEnabledSetting
com o parâmetroCOMPONENT_ENABLED_STATE_DISABLED
. - O usuário pode reativar o DPC pessoal no Google Play.
Considerações de implementação do modo proprietário do dispositivo
Veja alguns pontos a serem considerados ao gravar seu DPC para implementar o modo de operação do proprietário do dispositivo.
O dispositivo precisa ser novo ou redefinido para a configuração original
Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.
O modo "Proprietário do dispositivo" dá ao DPC controle total sobre um dispositivo. Se o provisionamento do modo de proprietário do dispositivo após a configuração inicial fosse permitido:
- Um malware pode criar um proprietário e assumir o controle do dispositivo.
- Problemas de privacidade podem ocorrer se já houver alguns dados ou apps do usuário no dispositivo.
Configurar o modo "Proprietário do dispositivo" apenas em dispositivos da empresa
Provisione o modo proprietário do dispositivo apenas nos dispositivos que você identificar como sendo da empresa do seu cliente. É possível verificar isso detectando um identificador de dispositivo exclusivo (como um número de série) ou usando um conjunto dedicado de contas autorizadas para registro de dispositivos por meio da política de EMM.
Se não for possível verificar a propriedade da empresa de um dispositivo, crie um mecanismo de proteção contra falhas para que o modo de proprietário do dispositivo não seja provisionado por engano. Por exemplo, você pode solicitar que o usuário do dispositivo confirme ou realize alguma ação afirmativa antes de provisionar o modo de proprietário do dispositivo.
Ativar apps do sistema
Quando o DPC provisiona um perfil de trabalho, todos os apps do sistema sem ícones na tela de início são considerados essenciais para o dispositivo e podem ser executados automaticamente no perfil de trabalho. Os apps do sistema que têm ícones na tela de início são considerados opcionais, e você pode decidir se eles vão ser ativados.
Ativar apps do sistema pelo Google Play
Ativar apps do sistema usando o Google Play é fácil, e os usuários vão receber atualizações assim que forem disponibilizadas.
Ativar apps do sistema usando as APIs do framework do Android
Se você quiser que os usuários vejam apps do sistema assim que começarem a usar os dispositivos,
ative esses apps como parte do processo de provisionamento de dispositivo. O DPC ativa
apps do sistema por nome de pacote ou intent, usando DevicePolicyManager.enableSystemApp()
.
Existem algumas maneiras de identificar os apps do sistema que você quer ativar e apresentar no console de EMM para administradores de TI.
Criar catálogos de apps do sistema
Nesse método, cada dispositivo determina quais apps estão nele e envia esses dados de volta ao console de EMM. O console de EMM exibe esses dados dinamicamente ao criar a política do dispositivo, o que permite que o administrador de TI gerencie apps por app.
- Se o perfil de trabalho ainda não estiver provisionado no dispositivo, extraia uma lista de todos
os apps com ícones na tela de início em um dispositivo usando
queryIntentActivities()
:
private List
getAppsWithLauncher() {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
return getPackageManager().queryIntentActivities(i, 0);
} - Se o perfil de trabalho já estiver provisionado no dispositivo, extraia uma lista de todos
os apps usando
PackageManager.GET_DISABLED_COMPONENTS
ePackageManager.GET_UNINSTALLED_PACKAGES
. - Para encontrar apps do sistema na lista de apps, marque
FLAG_SYSTEM
, que indica se um app está instalado na imagem do sistema do dispositivo.
Prós:
- oferece aos administradores de TI uma visão completa dos apps em todos os dispositivos.
- Fornece controle granular sobre quais aplicativos são ativados.
Desvantagens:
- Como cada dispositivo tem um catálogo de apps diferente, é difícil aplicar um modelo de configuração de política única a vários tipos de dispositivos.
- Pode ser desafiador apresentar o volume de apps específicos de OEM de maneira significativa para administradores de TI.
Categorizar apps do sistema por funcionalidade
Quando um administrador de TI quer ativar um app do sistema para um grupo de dispositivos, ele seleciona um app genérico com base na funcionalidade, por exemplo, "Navegador do sistema". O DPC permite todos os apps do sistema para essa intent.
Prós:
- Ativação simples e baseada em funcionalidades para administradores de TI.
- Garante a funcionalidade consistente em vários dispositivos, pelo menos para casos de uso comuns.
Desvantagens:
- Limita os apps do sistema àqueles que têm suporte em todos os tipos de dispositivos.
- Os administradores de TI podem querer enviar uma versão de OEM de um app (por exemplo, um navegador Samsung®), mas não outra (como um navegador LG®).
- Os administradores de TI podem não querer enviar vários apps, mas não podem impedir isso quando há vários gerenciadores de intents.
Suporte apenas a apps do sistema aprovados
Você trabalha com o OEM para identificar pacotes específicos de OEM e oferecer suporte apenas a eles no console de EMM. Isso também permite catalogar as configurações gerenciadas para o app de OEM, o que não saberia de outra forma, porque o app de OEM não está hospedado no Google Play.
Prós:
- simplifica bastante o fluxo de trabalho de integração e elimina os casos extremos que são problemáticos nas duas primeiras opções.
- É possível catalogar as configurações gerenciadas para o app de OEM e apresentá-las no console de EMM para administradores de TI.
- Permite relacionamentos próximos com OEMs para oferecer suporte a dispositivos principais.
Desvantagens:
- Menos escalonável e, como resultado, reduz a escolha do consumidor.
Considerações de implementação para o modo legado
Veja alguns pontos a serem considerados ao gravar seu DPC para implementar o modo de operação legado.
Determinar se um dispositivo é compatível com perfis de trabalho
Para dispositivos que não oferecem suporte a perfis de trabalho, é possível provisionar o modo de operação legado. Um dispositivo não é compatível com perfis de trabalho quando:
- Executa uma versão do Android anterior à 5.0.
- tiver pouca quantidade de RAM, mesmo que execute uma versão do Android mais recente que a 5.0;
Para determinar se os perfis de trabalho são compatíveis, o DPC pode usar o PackageManager.
if (!getPackageManager().hasSystemFeature(
PackageManager.FEATURE_MANAGED_USERS)) {
// Use legacy mode
...
}
Cenários de teste para seu DPC
O Test DPC é um app de código aberto fornecido pelo Google para testar a funcionalidade empresarial do seu app de DPC. O DPC de teste está disponível no github ou no Google Play. É possível usar o DPC de teste para:
- Simular recursos no Android
- Definir e aplicar políticas
- Definir restrições de apps e intents
- Configurar perfis de trabalho
- Configurar dispositivos Android totalmente gerenciados
Embora o objetivo principal do DPC de teste seja um veículo para testar sua solução empresarial para o Android, ele também pode ser usado como uma fonte de exemplo de código para recursos do Android.
Personalizar o provisionamento
Durante o provisionamento de dispositivos, a interface do usuário do sistema mostra uma cor padrão na barra de status e um logotipo padrão na parte de cima da tela. Defina cores e logotipos personalizados para fornecer uma transição visual consistente entre o DPC e a interface do sistema ou permita que os administradores façam isso usando o console de EMM. Por exemplo, um administrador pode fazer upload do logotipo de uma empresa ou personalizar a aparência das telas que mostram notificações.
Seu DPC aplica as opções de cor e logotipo usando os extras
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
e DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
.
Para definir uma cor personalizada, use EXTRA_PROVISIONING_MAIN_COLOR
para definir um número inteiro que indique a cor predominante a ser exibida durante o provisionamento
de dispositivos. Coloque o extra (constante) em uma intent com
ACTION_PROVISION_MANAGED_PROFILE
ou
ACTION_PROVISION_MANAGED_DEVICE
.
Para saber como os números inteiros são representados, consulte Cor. Para conferir um exemplo, consulte MAIN_COLOR
no
app TestDPC.
Para definir um logotipo personalizado, use o EXTRA_PROVISIONING_LOGO_URI
e configure uma imagem que será exibida na parte superior da tela durante o provisionamento do dispositivo. Coloque o extra (constante) em uma intent com ACTION_PROVISION_MANAGED_PROFILE
ou ACTION_PROVISION_MANAGED_DEVICE
. Confira se a imagem tem uma densidade de pixels razoável para o dispositivo.
Para conferir um exemplo, consulte LOGO_URI
no app TestDPC.
Método de código QR
O método de provisionamento de código QR configura e configura o modo proprietário do dispositivo lendo um código QR no assistente de configuração. O código QR contém um payload de pares de chave-valor com todas as informações necessárias para que o DPC provisione um dispositivo.
Seu console de EMM precisa fornecer uma maneira para os administradores de TI criarem códigos QR para os dispositivos que querem provisionar. O administrador de TI envia os códigos QR para os usuários finais, e eles fazem a leitura dos códigos QR para fornecer os dispositivos.
Casos de uso para provisionamento de código QR
Alguns dispositivos, como tablets, não são compatíveis com NFC. O provisionamento de código QR é uma maneira fácil de provisionar uma frota distribuída de dispositivos que não são compatíveis com NFC. Um administrador de TI pode enviar códigos QR aos usuários para permitir o provisionamento baseado em usuários.
O provisionamento de código QR não requer uma identidade do Google, como um domínio ou uma Conta do Google. As organizações que usam o Android, mas não usam o G Suite, não têm uma identidade do Google.
Assim como a NFC, o provisionamento de código QR permite implantações de quiosque e de uso único quando uma identidade do Google (ou qualquer identidade) não é necessária ou desejável. Por exemplo, um dispositivo de quiosque em uma loja não pertence a ninguém e não deve ter uma identidade de usuário final.
Criar um código QR
Um código QR válido para o provisionamento de um código QR é uma string JavaScript® Object Notation (JSON) codificada em UTF-8. É possível incluir estas propriedades em códigos QR válidos:
Sempre obrigatório
Obrigatório se um DPC ainda não estiver instalado no dispositivo
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
Recomendado se o dispositivo ainda não estiver conectado ao Wi-Fi
Opcional
EXTRA_PROVISIONING_LOCALE
EXTRA_PROVISIONING_TIME_ZONE
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER
EXTRA_PROVISIONING_LOCAL_TIME
EXTRA_PROVISIONING_WIFI_HIDDEN
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
EXTRA_PROVISIONING_WIFI_PROXY_HOST
EXTRA_PROVISIONING_WIFI_PROXY_PORT
EXTRA_PROVISIONING_WIFI_PROXY_BYPASS
EXTRA_PROVISIONING_WIFI_PAC_URL
EXTRA_PROVISIONING_SKIP_ENCRYPTION
Este exemplo cria um código QR válido:
{ "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.emm.android/com.emm.android.DeviceAdminReceiver", "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=", "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "https://path.to/dpc.apk", "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false, "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork", "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": { "dpc_company_name": "Acme Inc.", "emm_server_url": "https://server.emm.biz:8787", "another_custom_dpc_key": "dpc_custom_value" } }
Processo de provisionamento de código QR
- O assistente de configuração solicita que o usuário toque na tela de boas-vindas seis vezes. Os toques devem ser feitos no mesmo lugar da tela.
- O assistente de configuração solicita que o usuário se conecte à Internet para que o assistente de configuração possa fazer o download de um leitor de código QR.
- O Google Play Services faz o download de um módulo que contém um mecanismo de reconhecimento de código QR.
- O usuário lê o código QR enviado pelo administrador de TI.
- O assistente de configuração faz o download do app DPC e inicia o processo de provisionamento do proprietário do dispositivo usando
ACTION_PROVISION_MANAGED_DEVICE
.
Método de contas do Google Play gerenciado
Um DPC pode usar o método de provisionamento de contas do Google Play gerenciado para configurar o modo de proprietário do dispositivo ou o modo de proprietário do perfil. Esse método de provisionamento é destinado a organizações que não usam o G Suite atualmente.
O método de provisionamento de contas do Google Play gerenciado usa a Biblioteca de Suporte DPC. Essa biblioteca de cliente garante o bom funcionamento das contas do Google Play gerenciado. Ele também mantém a compatibilidade com futuras atualizações do processo de provisionamento de contas do Google Play gerenciado.
Pré-requisitos para provisionar dispositivos
- O ID corporativo é criado e registrado com uma identidade de EMM, e o ESA é definido, conforme descrito em Criar e registrar uma empresa.
- A identidade corporativa do usuário é conhecida pelo console de EMM.
- O usuário pode fazer login no app de DPC usando as credenciais aceitas pelo console de EMM, geralmente credenciais de e-mail corporativo.
Configurar o modo de proprietário do perfil
É possível provisionar o modo de operação do proprietário do perfil em um dispositivo usado em um cenário BYOD como um dispositivo pessoal.
- O usuário faz o download manual do DPC no Google Play e o inicia.
- O DPC provisiona o perfil de trabalho usando
ACTION_PROVISION_MANAGED_PROFILE
. - Conclua as etapas finais de configuração.
Configurar o modo proprietário do dispositivo
Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.
Durante a configuração do dispositivo, o usuário insere um token especial específico do DPC quando solicitado a adicionar uma conta. Um token está no formato "afw#DPC_IDENTIFIER". Para um EMM chamado ACME, "afw#acme" instala o DPC padrão do EMM ACME. Cada EMM precisa solicitar um identificador DPC específico do Google antes de usá-lo no processo de provisionamento.
- O usuário ativa um dispositivo novo ou redefinido para a configuração original, e o assistente de configuração é iniciado.
- Ao receber uma solicitação para adicionar uma conta, o usuário insere um token especial no formato "afw#DPC_IDENTIFIER" que identifica o DPC para o EMM.
- Usando o identificador DPC no token, o assistente de configuração adiciona uma Conta do Google temporária ao dispositivo. Essa conta temporária é usada apenas para fazer o download do DPC do EMM no Google Play e é removida nas etapas finais de configuração.
- O DPC provisiona o dispositivo usando
ACTION_PROVISION_MANAGED_DEVICE
. - Conclua as etapas finais de configuração.
Configurar o modo legado
É possível provisionar o modo de operação legado em um dispositivo usado em um cenário BYOD como um dispositivo pessoal, caso o dispositivo não ofereça suporte aos perfis de trabalho.
- O usuário faz o download manual do DPC no Google Play e o inicia.
- O DPC se define como administrador de dispositivo.
- Conclua as etapas finais de configuração.
Etapas finais de configuração para todos os modos de operação
Execute essas etapas somente após a conclusão das etapas iniciais para configurar o modo de proprietário do perfil, o modo de proprietário do dispositivo ou o modo legado.
- O DPC garante que o dispositivo ofereça suporte a contas do Google Play gerenciado
inicializando a Biblioteca de Suporte DPC:
AndroidForWorkAccountSupport androidForWorkAccountSupport = new AndroidForWorkAccountSupport(context, admin); androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
Se você estiver configurando o modo proprietário do dispositivo em um dispositivo, esta etapa vai remover a
Conta do Google temporária adicionada para fazer o download do DPC.
- O usuário faz login no DPC com as credenciais de EMM. Normalmente, são credenciais de e-mail corporativas.
- O DPC solicita credenciais da conta do Google Play gerenciado para o usuário corporativo autenticado no console de EMM.
- Se o console de EMM não tiver um
userId
do Google Play para o usuário, ele criará um novo usuário chamandoUsers.insert()
. Se você estiver provisionando o modo proprietário do dispositivo, especifique uma conta de dispositivo (para implantações dedicadas de dispositivos) ou uma conta de usuário (para implantações da empresa).Observação: como os IDs de usuário são específicos do EMM, eles não poderão ser reutilizados se a empresa tiver a inscrição cancelada e for registrada novamente com outro EMM.
Defina a política do dispositivo chamando
Devices.update
. Defina a política antes de adicionar a conta do Google Play gerenciado ao dispositivo. Caso contrário, a política não será aplicada por um curto período após a adição da conta.- O console de EMM solicita as credenciais da conta do
userId
chamandoUsers.generateAuthenticationToken()
. Esse token de autenticação é de curta duração e não pode ser reutilizado. O DPC precisa usar o token para adicionar a conta de maneira programática. O token não é útil para o usuário final. - A API Google Play EMM retorna o token de autenticação para o console de EMM.
- O console de EMM encaminha o token de autenticação para o DPC.
- O DPC adiciona a conta do Google Play gerenciado ao dispositivo usando
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
.
Método da Conta do Google
Um DPC pode usar o método de provisionamento da Conta do Google para configurar o modo de proprietário do dispositivo, o modo de proprietário do perfil ou o modo legado. Com o método de provisionamento da Conta do Google, o DPC orienta o usuário nas etapas de provisionamento após a adição da Conta do Google durante a configuração inicial do dispositivo.
Quando um usuário digita as credenciais da Conta do Google:
- O servidor de autenticação do Google autentica a conta de usuário.
- O servidor de autenticação se comunica com o servidor empresarial para verificar se o domínio da conta está registrado como um domínio do G Suite ou um domínio gerenciado por EMM.
- Nesse caso, o sistema faz o download automático do DPC associado ao domínio do Google Play e o instala.
Configurar o modo de proprietário do perfil
É possível provisionar o modo de operação do proprietário do perfil durante a configuração inicial de um dispositivo ou quando o usuário está adicionando uma conta. Para isso, use Configurações > Adicionar conta.
- A autenticação da conta é iniciada por um usuário no assistente de configuração ou em Configurações > Adicionar conta.
O GMSCore inicia o provisionamento do perfil de trabalho usando o
ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE
.O DPC é transferido por download automaticamente para o dispositivo e iniciado usando o gerenciador
ACTION_GET_PROVISIONING_MODE
para verificar se o provisionamento do perfil de trabalho é compatível com o DPC.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: informações extras do perfil de trabalho, como endereço de e-mail. O DPC também receberá is_setup_assistant aqui como parte deste pacote. Este pacote será incluído nos gerenciadoresACTION_GET_PROVISIONING_MODE
eACTION_ADMIN_POLICY_COMPLIANCE
.
EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
: nome da conta autenticada que será migrada para o novo perfil de trabalho.A plataforma realiza o provisionamento do perfil de trabalho.
Quando o perfil de trabalho é provisionado, o DPC recebe a transmissão
ACTION_PROFILE_PROVISIONING_COMPLETE
. O gerenciadorACTION_ADMIN_POLICY_COMPLIANCE
do DPC é iniciado no perfil de trabalho.
Depois que o perfil de trabalho é criado, o DPC também é executado nele. O DPC envia políticas para essa Conta do Google gerenciada, garante que o dispositivo não esteja em um estado comprometido e verifica se as políticas são aplicadas (por exemplo, a exigência de uma senha).O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

Configurar o modo proprietário do dispositivo ou COPE
Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser adicionado a um dispositivo em nenhum outro momento.
- A autenticação da conta é iniciada por um usuário no assistente de configuração.
- O GMSCore inicia o provisionamento do proprietário do dispositivo usando
ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE
. 3.O DPC é transferido por download automaticamente para o dispositivo e iniciado usando o gerenciadorGET_PROVISIONING_MODE
para escolher o modo de provisionamento desejado.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: informações extras do perfil de trabalho, como localidade, Wi-Fi e endereço de e-mail. O DPC também receberá is_setup_assistant aqui como parte deste pacote. Este pacote será incluído nos gerenciadoresACTION_GET_PROVISIONING_MODE
eACTION_ADMIN_POLICY_COMPLIANCE
. - A plataforma provisiona o dispositivo para o modo de provisionamento desejado.
Quando o dispositivo é provisionado, o DPC recebe essas transmissões e o gerenciador
ACTION_ADMIN_POLICY_COMPLIANCE
do DPC é iniciado:
ACTION_READY_FOR_USER_INITIALIZATION
ACTION_PROFILE_PROVISIONING_COMPLETE
.O DPC usa o valor de
Global.DEVICE_PROVISIONED
para verificar se o dispositivo é novo ou foi redefinido para a configuração original (não provisionado):
0: não provisionado.
1: Provisionado.O DPC conclui o processo de provisionamento enviando políticas para o dispositivo gerenciado, garantindo que o dispositivo não esteja em um estado comprometido e verificando se as políticas são aplicadas (como a exigência de uma senha).

Configurar o modo legado
É possível provisionar o modo legado de operação durante a configuração inicial de um dispositivo ou quando o usuário adiciona uma conta em Configurações > Adicionar conta. Os requisitos para disponibilizar o Google Play gerenciado para usuários com uma Conta do Google são:
- A Conta do Google faz parte de um domínio gerenciado do Google.
- O domínio do Google gerenciado está configurado para Android com um EMM vinculado à API EMM do Google Play.
Se você quiser fazer o gerenciamento de apps apenas em dispositivos legados, não vai precisar de um DPC. Nesse caso, o usuário adiciona a Conta do Google em Configurações > Adicionar conta. O gerenciamento inclui a seleção dos apps recomendados, a disponibilização dos apps particulares, a compra e a distribuição de licenças.
Se você quiser que seu DPC adicione a Conta do Google:
- O usuário faz o download do DPC no Google Play e o abre.
- O DPC adiciona a Conta do Google gerenciada usando
AccountManager.addAccount()
. Consulte TestDPC para ver um exemplo de implementação de como adicionar uma Conta do Google específica usandoAccountManager.KEY_ACCOUNT_NAME
. - (Opcional) O DPC se define como administrador do dispositivo. Como administrador do dispositivo, o DPC tem recursos de gerenciamento de dispositivos além do gerenciamento de apps.
Considerações de implementação para o método da Conta do Google
O DPC precisa detectar o fluxo de autenticação da Conta do Google procurando extras específicos na intent de inicialização usada. Consulte
LaunchIntentUtil
:- Conta do tipo
android.accounts.Account
: indica que a conta foi adicionada no assistente de configuração ou em Configurações > Adicionar conta, o que exige que o DPC iniciado gerencie o dispositivo ou perfil. is_setup_wizard
do tipo booleano: se for verdadeiro, o DPC foi iniciado no assistente de configuração antes da conclusão dele. Caso contrário, ele foi iniciado em Configurações > Adicionar conta ou em outro fluxo.
Uma verificação simples para saber se o DPC foi iniciado como parte do método da Conta do Google é:
- Conta do tipo
boolean isSynchronousAuthLaunch(Intent launchIntent) { return launchIntent.hasExtra(“is_setup_wizard”); }
O DPC não pode chamar
finish()
antes de concluir a configuração. Ela também precisa retornar um código de resultado positivo (comoRESULT_OK
), já que o DPC é iniciado comstartActivityForResult()
e aguarda um resultado.O DPC precisará aguardar um código de resultado do processo de provisionamento antes de chamar
finish()
se o fluxo de configuração do DPC atingir o ponto de envio de uma intentACTION_PROVISION_*
. Use os callbacksstartActivityForResult()
eonActivityResult()
ao iniciar intentsACTION_PROVISION_*
. Confira exemplos emLaunchActivity
eSetupSyncAuthManagement
.Devido à natureza potencialmente assíncrona do processo de configuração, o DPC não pode confiar em um código de resultado de
RESULT_OK
para indicar que o provisionamento foi bem-sucedido. A única maneira garantida é confiar nos callbacksDeviceAdminReceiver
para que o provisionamento seja bem-sucedido.RESULT_CANCELED
indica que o usuário fez backup em uma parte síncrona do fluxo de configuração, e o DPC precisa reagir a isso.Neste exemplo, o DPC inicia o provisionamento e aguarda o código de resultado de uma atividade:
Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE); startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
...
@Override public void onActivityResult(int req, int res, Intent i) { if (req == REQUEST_MANAGED_PROFILE) { if (res == Activity.RESULT_OK) { setResult(Activity.RESULT_OK); finish(); } else { Toast.makeText(this, “Provisioning failed”, Toast.LENGTH_SHORT).show(); } } }
- O DPC não deve tentar configurar o modo de operação do proprietário do dispositivo se o
dispositivo já estiver provisionado (consulte
ProvisioningStateUtil.isDeviceProvisioned()
). Neste exemplo, o DPC verifica se o dispositivo está provisionado:
public static boolean isDeviceProvisioned(Context context) { ContentResolver cr = context.getContentResolver(); return Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0; }
- Opcional. O DPC pode usar o extra
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
ao iniciar o provisionamento para transmitir informações de estado de volta aoDeviceAdminReceiver
, que, no caso do proprietário do perfil, é executado no perfil de trabalho. O TestDPC usa esse extra para inserir um conjunto diferente de atividades no fluxo da Conta do Google após a conclusão do provisionamento. Confira mais detalhes emDeviceAdminReceiver
.
public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver { @Override public void onProfileProvisioningComplete(Context context, Intent intent) { // Retrieve the admin extras bundle, which we can use to determine the original context for // Test DPC’s launch. PersistableBundle extras = intent.getParcelableExtra( EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE); ...
- Para configurar um perfil de trabalho, o DPC precisa migrar a conta adicionada para o novo
perfil de trabalho. Para fazer isso, o DPC precisa transmitir a conta fornecida na
intent de inicialização para
ACTION_PROVISION_MANAGED_PROFILE
. - O DPC precisa fornecer ao usuário uma call-to-action clara (como um botão "Concluir") para sair do app ao final da configuração. Assim, o usuário não acha que chegou a um beco sem saída no fluxo.
- O DPC deve usar o tema do assistente de configuração ou a biblioteca de layout para que a experiência do usuário seja tranquila e pareça bem integrada.
Método NFC
Um DPC pode usar o método de provisionamento de NFC para configurar o modo de proprietário do dispositivo. No método de provisionamento de NFC ou tag NFC, você cria um app de programação NFC que contém as políticas iniciais e os detalhes de configuração, ajustes e provisionamento de Wi-Fi exigidos pelo cliente para configurar o modo de operação do proprietário do dispositivo. Quando você ou o cliente instala o app para programador de NFC em um dispositivo Android, esse dispositivo se torna o programador.
Para provisionar um dispositivo, o administrador de TI pega um novo dispositivo e o coloca no dispositivo do programador. A promoção transfere configurações ao dispositivo para que ele se conecte à Internet e faça o download das políticas e configurações adequadas. O dispositivo é gerenciado pelo DPC.
Após o provisionamento de um dispositivo, por um curto período, o Google Play exibe conteúdo de consumidor não gerenciado em vez dos apps e coleções aprovados que serão exibidos. Esse atraso pode durar de alguns minutos a uma hora.
Criar o app para programador de NFC e o dispositivo de programação
- Faça o download do app de exemplo para programador de NFC na página de exemplos empresariais do GitHub (link em inglês). Você pode usar o exemplo sem alterações ou modificá-lo para os valores padrão. Consulte o código de amostra dos parâmetros padrão para mais informações.
- Instale o app do programador no dispositivo escolhido.
- Inicie o app de programador NFC e selecione Load Defaults em com.example.android.apis. Esse texto pode variar de acordo com os parâmetros padrão definidos.
Provisionar um dispositivo do cliente
- Encoste o dispositivo do programador com um dispositivo novo ou redefinido para a configuração original.
- Verifique se o dispositivo permanece na tela de boas-vindas inicial que é exibida quando é iniciado. O texto é especificado em
Ready to send:{...}
no app do programador. - Aguarde enquanto o DPC:
- Criptografa o dispositivo.
- Se for um dispositivo de acesso múltiplo por divisão de código (CDMA, na sigla em inglês): ativa o smartphone enquanto uma interface do usuário de telefonia é exibida (não é necessária interação).
- Configura a conexão Wi-Fi.
- Faz o download do arquivo .apk para com.example.android.apis.
- Instala com.example.android.apis.
- Define o administrador de dispositivos de exemplo em com.example.android.apis como proprietário do dispositivo.
- Mostra um "aviso" de sucesso quando o proprietário do dispositivo está ativado.
- Depois de retornar à página inicial (o assistente de configuração é ignorado automaticamente), verifique
se com.example.android.apis está definido como proprietário do dispositivo:
- Em Configurações > Segurança > Administradores do dispositivo, confira se o administrador do dispositivo de exemplo não pode ser removido.
- Em Configurações > Usuários > Usuários e perfis > Você (proprietário), verifique se "Proprietário" é a única conta disponível (um dispositivo pode ter apenas um proprietário ativo por vez).
Exemplos de código do app de programação de NFC
As seções do app de programação de NFC que você vai considerar especialmente úteis têm os comentários inline. Para ver todo o exemplo de código no app de programador NFC, descompacte o arquivo .apk de exemplo usando um programa descompilador Java.
Método bootPropertyUI()
O método initializePropertyUI()
inicializa elementos da interface do usuário (caixas de texto e
caixas de seleção editáveis) no app de programação NFC. As mudanças nesses elementos são sincronizadas com os
pares de chave-valor (KVPs) que a variável mProps
contém. Em algum momento, a variável mProps
é enviada para um dispositivo em uma conexão NFC.
private void initializePropertyUI(int paramInt1, int paramInt2, final String paramString) { Log.d("DeviceProvisioningProgrammerSample","initializeProperty for " + paramString); final EditText localEditText = (EditText)findViewById(paramInt1); final CheckBox localCheckBox =(CheckBox)findViewById(paramInt2); /* Here we initialize text boxes so that when their text is edited the changes are synced to mProps. */ if(localEditText != null) localEditText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable paramAnonymousEditable) { } public void beforeTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3) { } public void onTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, in paramAnonymousInt3) { if ((localCheckBox != null) && (localCheckBox.isChecked())) { DeviceProvisioningProgrammerSample.this.mProps.put(paramString, localEditText.getText().toString()); DeviceProvisioningProgrammerSample.this.refreshMessageView(); } } }); /* Here we initialize check boxes, so that when they are unchecked, the edit boxes are disabled, and the corresponding KVPs are removed from mProps. When they are checked the KVPs are re added, and the text boxes are enabled. */ if (localCheckBox != null) localCheckBox.setOnCheckedChangeListener (new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton paramAnonymousCompoundButton, boolean paramAnonymousBoolean) { Log.d("DeviceProvisioningProgrammerSample", "onCheckedChanged for " + localEditText.getText().toString() + " isChecked = " + paramAnonymousBoolean); if (paramAnonymousBoolean) { localEditText.setEnabled(true); DeviceProvisioningProgrammerSample.this.mProps.put(paramString, localEditText.getText().toString()); DeviceProvisioningProgrammerSample.this.refreshMessageView(); return; } localEditText.setEnabled(false); DeviceProvisioningProgrammerSample.this.mProps.remove(paramString); DeviceProvisioningProgrammerSample.this.refreshMessageView(); } }); }
Parâmetros padrão
Este exemplo de código define os valores padrão que serão enviados a um dispositivo em uma conexão NFC. Alguns parâmetros configuráveis não estão incluídos na amostra, mas talvez seja necessário incluí-los na implementação. É possível encontrar os parâmetros que não estão na amostra neste link.
public void loadDefaults1(View paramView) { /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME */ ((EditText)findViewById(2131034114)).setText("com.example.android.apis"); ((CheckBox)findViewById(2131034113)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION */ ((EditText)findViewById(2131034116)).setText ("https://sites.google.com/site/apidemodownload/somepage/ApiDemos.apk"); ((CheckBox)findViewById(2131034115)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM (note: must be URL-safe)*/ ((EditText)findViewById(2131034118)).setText("ZYk5xsY0xqic51CTqB9kLiMLqwk"); ((CheckBox)findViewById(2131034117)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_WIFI_SSID */ ((EditText)findViewById(2131034120)).setText("\"GoogleGuest\""); ((CheckBox)findViewById(2131034119)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_TIME_ZONE*/ ((EditText)findViewById(2131034122)).setText("Europe/London"); ((CheckBox)findViewById(2131034121)).setChecked(true); ((CheckBox)findViewById(2131034123)).setChecked(false); /* This EditText holds the KVP for EXTRA_PROVISIONING_LOCALE ((EditText)findViewById(2131034126)).setText("en_GB"); ((CheckBox)findViewById(2131034125)).setChecked(true); }
Método onCreate()
O método onCreate()
inicializa o app de programação de NFC e as funções e recursos dele.
As strings android.app.extra correspondem às strings descritas na documentação do DevicePolicyManager
. Por exemplo: DevicePolicyManager.EXTRA_ PROVISIONING_WIFI_SSID ==
"android.app.extra.PROVISIONING_WIFI_SSID"
.
protected void onCreate(Bundle paramBundle) { Log.d("DeviceProvisioningProgrammerSample", "onCreate"); super.onCreate(paramBundle); setContentView(2130903040); this.mTextView = ((TextView)findViewById(2131034112)); this.mProps = new Properties(); initializePropertyUI(2131034114, 2131034113, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME"); initializePropertyUI(2131034116, 2131034115, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION"); initializePropertyUI(2131034118, 2131034117, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM"); initializePropertyUI(2131034120, 2131034119, "android.app.extra.PROVISIONING_WIFI_SSID"); initializePropertyUI(2131034122, 2131034121, "android.app.extra.PROVISIONING_TIME_ZONE"); initializePropertyUI(2131034124, 2131034123, "android.app.extra.PROVISIONING_LOCAL_TIME"); initializePropertyUI(2131034126, 2131034125, "android.app.extra.PROVISIONING_LOCALE"); refreshMessageView(); /* Next we get the default NFC adapter for the Android device being used, and define CreateNdefMessageCallback() for that adapter, which is invoked when another NFC device capable of NDEF push (Android Beam) is within range. CreateNdefMessageCallback is an interface that has one abstract method that needs to be defined. That method, createNdefMessage, creates the message to be pushed. */ NfcAdapter.getDefaultAdapter(this).setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() { public NdefMessage createNdefMessage(NfcEvent paramAnonymousNfcEvent) { /* Here ndefMessage creates an output stream which contains the values from mProps. */ Log.d("DeviceProvisioningProgrammerSample", "Sending Nfc"); ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); try { DeviceProvisioningProgrammerSample.this.mProps.store(localByteArrayOutputStream, DeviceProvisioningProgrammerSample.this.getString(2130968578)); DeviceProvisioningProgrammerSample.this.mTextView.post(new Runnable() { public void run() { DeviceProvisioningProgrammerSample.this.refreshMessageView(); } }); /* Here NdefMessage is created containing an NdefRecord. The NdefRecord contains its record type, and a byte array derived from the mProps output stream. */ return new NdefMessage(new NdefRecord[] { NdefRecord.createMime("application/com.android.managedprovisioning", localByteArrayOutputStream.toByteArray()) }); } catch (IOException localIOException) { while (true) Log.e("DeviceProvisioningProgrammerSample", "io exception", localIOException); } } } , this, new Activity[0]); }
Outros recursos
A NFC avançada descreve tópicos avançados de NFC, como trabalhar com várias tecnologias de etiqueta, gravação em tags NFC e envio em primeiro plano.
Método de instalação manual do DPC
Para configurar o modo de proprietário do perfil usando o método de provisionamento manual de instalação de DPC, o usuário faz o download do DPC no Google Play e o instala. Em seguida, o DPC orienta o usuário durante o restante do processo para configurar o proprietário do perfil da Conta do Google gerenciada.
O DPC pode adicionar a Conta do Google gerenciada antes ou depois de criar o perfil de trabalho. Por exemplo, o DPC pode criar um perfil de trabalho com base nas credenciais de EMM de um usuário em vez de solicitar a Conta do Google gerenciada primeiro.
Configurar o modo de proprietário do perfil
Adicione a Conta do Google gerenciada primeiro
- O usuário faz o download do DPC no Google Play e o instala.
- O DPC adiciona a Conta do Google gerenciada antes de criar o perfil
de trabalho usando
AccountManager.addAccount()
. - O DPC começa a ser executado no perfil pessoal e inicia o processo para
criar um perfil de trabalho usando:
ACTION_PROVISION_MANAGED_PROFILE
: provisiona o perfil de trabalho.
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: informações extras do perfil de trabalho, como localidade, Wi-Fi e endereço de e-mail.
EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
: nome da conta autenticada que será migrada para o novo perfil de trabalho. - O DPC no perfil de trabalho conclui o processo de provisionamento. Depois que o perfil de trabalho é criado, o DPC também passa a ser executado nele. O DPC no perfil de trabalho conclui o processo de provisionamento enviando políticas para essa Conta do Google gerenciada, garantindo que o dispositivo não esteja em um estado comprometido e verificando se as políticas são aplicadas (como a exigência de uma senha).
- Quando o perfil de trabalho é provisionado, o DPC recebe a transmissão
ACTION_PROFILE_PROVISIONING_COMPLETE
. - O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

Crie o perfil de trabalho primeiro
- O usuário faz o download do DPC no Google Play e o instala.
- O DPC começa a ser executado no perfil pessoal e inicia o processo para
criar um perfil de trabalho usando:
ACTION_PROVISION_MANAGED_PROFILE
: provisiona o perfil de trabalho.
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: informações extras do perfil de trabalho, como localidade, Wi-Fi e endereço de e-mail. - O DPC adiciona a Conta do Google gerenciada usando
AccountManager.addAccount()
. - O DPC recebe a transmissão
ACTION_PROFILE_PROVISIONING_COMPLETE
e lêEXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
. - O DPC no perfil de trabalho conclui o processo de provisionamento. Depois que o perfil de trabalho é criado, o DPC também passa a ser executado nele. O DPC no perfil de trabalho conclui o processo de provisionamento enviando políticas para essa Conta do Google gerenciada, garantindo que o dispositivo não esteja em um estado comprometido e verificando se as políticas são aplicadas (como a exigência de uma senha).
- O DPC ativa o perfil de trabalho usando
DevicePolicyManager.setProfileEnabled()
. - O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

Configurar o modo legado
É possível provisionar o modo legado de operação durante a configuração inicial de um dispositivo ou quando o usuário adiciona uma conta em Configurações > Adicionar conta. Os requisitos para disponibilizar o Google Play gerenciado para usuários com uma Conta do Google são:
- A Conta do Google faz parte de um domínio gerenciado do Google.
- O domínio gerenciado do Google está configurado para Android na empresa com um EMM vinculado à API EMM do Google Play.
Se você quiser fazer o gerenciamento de apps apenas em dispositivos legados, não vai precisar de um DPC. Nesse caso, o usuário adiciona a Conta do Google em Configurações > Adicionar conta. O gerenciamento inclui a seleção dos apps recomendados, a disponibilização dos apps particulares, a compra e a distribuição de licenças.
Se você quiser que seu DPC adicione a Conta do Google:
- O usuário faz o download do DPC no Google Play e o abre.
- O DPC adiciona a Conta do Google gerenciada usando
AccountManager.addAccount()
. Consulte TestDPC para ver um exemplo de implementação de como adicionar uma Conta do Google específica usandoAccountManager.KEY_ACCOUNT_NAME
. - (Opcional) O DPC se define como administrador do dispositivo. Como administrador do dispositivo, o DPC tem recursos de gerenciamento de dispositivos além do gerenciamento de apps.