Permissões usadas somente em gerenciadores padrão

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.

Captura de tela das configurações padrão dos apps
Figura 1. Tela de configurações do sistema mostrando a lista de gerenciadores padrão em um dispositivo.
Captura de tela das configurações padrão de apps de SMS
Figura 2. Tela de configurações do sistema mostrando como mudar o gerenciador de SMS padrão.
Siga os requisitos para gerenciadores padrão

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.

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.

Captura de tela mostrando uma caixa de diálogo voltada ao usuário
Figura 3. Caixa de diálogo perguntando ao usuário se ele quer mudar o gerenciador de SMS padrão do dispositivo.

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);