Várias funções principais do dispositivo, como a leitura de registros de chamadas e o envio de mensagens SMS, dependem do acesso a informações confidenciais do usuário. Para proteger a privacidade e oferecer aos usuários mais controle sobre as informações que eles fornecem aos apps no dispositivo, o Google Play restringe o acesso dos apps a grupos de permissões relacionados a chamadas e mensagens.
Se você distribui seu app na Google Play Store e quer acessar informações confidenciais do usuário relacionadas a registros de chamadas e mensagens SMS, seu app precisa ser registrado como o gerenciador padrão do usuário para a função principal do dispositivo relacionada a essa permissão. Isso só não vai ser possível caso o app se enquadre em um dos casos de exceção que aparece na Central de Ajuda do Play Console. Por exemplo, para acessar permissões relacionadas a chamadas, seu app precisa ser registrado como o gerenciador do Google Assistente ou Telefone padrão do usuário, a menos que ele se enquadre em um dos casos de exceção.
Este guia fornece uma breve visão geral de como os usuários acessam os gerenciadores padrão em dispositivos com tecnologia Android. Em seguida, o guia revisa os requisitos que um app precisa satisfazer antes de se tornar qualificado para ser um gerenciador padrão. Por fim, o guia explica o processo de recebimento do consentimento do usuário para se tornar um gerenciador padrão.
Para saber mais sobre os gerenciadores padrão e sobre como lidar com permissões em um app disponível na Google Play Store, consulte o Guia de políticas de permissões.
Visualizar e alterar o conjunto de gerenciadores padrão
O Android permite que os usuários definam gerenciadores padrão para vários casos de uso principais, como fazer ligações, enviar mensagens SMS e fornecer recursos de tecnologia adaptativa.
O app Configurações no Android inclui uma tela que mostra aos usuários quais apps estão sendo veiculados como gerenciadores padrão para as principais funções do dispositivo, como mostrado na Figura 1. Nessa tela, os usuários podem mudar o gerenciador padrão de uma determinada função, como mostrado na Figura 2.
Com as informações confidenciais do usuário acessadas por um app durante a veiculação como gerenciador padrão, seu app não pode se tornar um gerenciador padrão, a menos que atenda aos seguintes requisitos de funcionalidade básica e informações do produto da Play Store:
- Seu app precisa ser capaz de executar a funcionalidade da qual é um gerenciador padrão. Por exemplo, um gerenciador de SMS padrão precisa ser capaz de enviar mensagens de texto.
- Seu app precisa fornecer uma política de privacidade.
- Seu app precisa deixar clara a funcionalidade principal na descrição da Play Store. Por exemplo, um gerenciador de Telefone padrão precisa descrever os recursos relacionados ao telefone na descrição.
- Seu app precisa declarar as permissões apropriadas para o caso de uso dele. Para mais detalhes sobre quais permissões você pode declarar como gerenciador, consulte a orientação sobre o uso de grupos de permissões de SMS ou de registro de chamadas na Central de Ajuda do Play Console.
- Seu app precisa pedir para se tornar um gerenciador padrão antes de solicitar as
permissões associadas a esse gerenciador. Por exemplo, um app precisa enviar uma solicitação
para se tornar o gerenciador de SMS padrão antes de solicitar a permissão
READ_SMS
.
Solicitar consentimento do usuário
Depois de garantir que seu app satisfaz os requisitos necessários para se tornar um gerenciador padrão, você pode adicionar lógica para mostrar a caixa de diálogo vista na Figura 3. Essa caixa de diálogo solicita que o usuário transforme seu app no gerenciador padrão de um caso de uso específico.
O código de exemplo a seguir mostra a lógica necessária para exibir um prompt que pede ao usuário para alterar o gerenciador de SMS padrão do dispositivo:
Kotlin
val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT) setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName) startActivityForResult(setSmsAppIntent, your-result-code)
Java
Intent setSmsAppIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName()); startActivityForResult(setSmsAppIntent, your-result-code);