Permissões no Android

As permissões do app ajudam a apoiar a privacidade do usuário protegendo o seguinte:

  • Dados restritos, como o estado do sistema e os dados de contato de um usuário.
  • Ações restritas, como conectar-se a um dispositivo pareado e gravar áudio.

Esta página fornece uma visão geral de como as permissões do Android funcionam, incluindo um fluxo de trabalho de alto nível para usar permissões, descrições de diferentes tipos de permissões e algumas práticas recomendadas para o uso de permissões no seu app. Outras páginas explicam como avaliar se o app precisa solicitar permissões, declarar permissões, solicitar permissões de execução erestringir como outros apps podem interagir com os componentes do seu app.

Para ver uma lista completa de permissões do app Android, acesse a página de referência da API de permissões.

Para ver alguns apps de amostra que demonstram o fluxo de trabalho de permissões, acesse o repositório de amostras de permissões do Android no GitHub.

Fluxo de trabalho para usar permissões

Caso seu app ofereça funcionalidade que exija acesso a dados restritos ou ações restritas, determine se você pode receber as informações ou executar as ações sem precisar declarar permissões. Você pode atender a muitos casos de uso no seu app, como tirar fotos, pausar a reprodução de mídia e exibir anúncios relevantes, sem precisar declarar nenhuma permissão.

Se você decidir que seu app precisa acessar dados restritos ou realizar ações restritas para atender a um caso de uso, declare as permissões apropriadas. Algumas permissões, conhecidas como permissões de tempo de instalação, são concedidas automaticamente quando o app é instalado. Outras permissões, conhecidas como permissões de execução, exigem que seu app solicite a permissão no momento da execução.

A figura 1 ilustra o fluxo de trabalho para usar permissões de aplicativo:

Figura 1. Diagrama que mostra o fluxo de trabalho de alto nível para usar permissões no Android.

Tipos de permissões

O Android categoriza permissões em tipos diferentes, incluindo permissões de tempo de instalação, de execução e permissões especiais. Cada tipo de permissão indica o escopo de dados restritos que seu app pode acessar e o escopo de ações restritas que o app pode realizar quando o sistema concede ao seu app essa permissão.

Permissões de tempo de instalação

A imagem à esquerda mostra uma lista das permissões de tempo de instalação de um app. A
    imagem à direita mostra uma caixa de diálogo pop-up contendo duas opções: permitir e negar.
Figura 2. A lista de permissões de tempo de instalação de um app, que aparece em uma app store.

As permissões de tempo de instalação dão ao app acesso limitado a dados restritos e permitem que o app execute ações restritas que afetam minimamente o sistema ou outros apps. Quando você declara as permissões no momento da instalação, o sistema automaticamente concede-as quando o usuário instala o app. Uma app store apresenta um aviso de permissão no momento da instalação quando visualiza a página de detalhes de um app, como mostrado na Figura 2.

O Android inclui vários subtipos de permissões de tempo de instalação, incluindo permissões normais e de assinatura.

Permissões normais

Estas permissões permitem acesso a dados e ações que vão além do sandbox do seu app. No entanto, os dados e as ações apresentam pouco risco à privacidade do usuário e à operação de outros apps.

O sistema atribui o nível de proteção "normal" a permissões normais, conforme mostrado na página de referência da API de permissões.

Permissões de assinatura

Se o app declarar uma permissão de assinatura definida por outro app e se os dois apps forem assinados pelo mesmo certificado, o sistema concederá a permissão ao primeiro app no momento da instalação. Caso contrário, esse primeiro app não poderá receber a permissão.

O sistema atribui o nível de proteção "assinatura" a permissões de assinatura, conforme mostrado na página de referência da API de permissões.

Permissões de execução

Uma caixa de diálogo pop-up contendo duas opções: permitir e negar.
Figura 3. A solicitação de permissão do sistema exibida quando o app solicita uma permissão de execução.

Permissões de execução, também conhecidas como permissões perigosas, dão ao seu app acesso adicional a dados restritos e permitem que ele execute ações restritas que afetam mais significativamente o sistema e outros apps. Portanto, você precisa solicitar permissões de execução no app antes de acessar os dados restritos ou realizar ações restritas. Quando seu app solicita uma permissão de execução, o sistema apresenta uma solicitação de permissão de execução, como mostrado na Figura 3.

Muitas permissões de execução acessam dados particulares do usuário, um tipo especial de dado restrito que inclui informações potencialmente confidenciais. Exemplos de dados particulares do usuário incluem localização e informações de contato.

O sistema atribui o nível de proteção "perigoso" às permissões de execução, conforme mostrado na página de referência da API de permissões.

Permissões especiais

Permissões especiais correspondem a operações de aplicativo específicas. Somente a plataforma e os OEMs podem definir permissões especiais. Além disso, a plataforma e os OEMs geralmente definem permissões especiais quando querem proteger o acesso a ações especialmente poderosas, como sobrepor outros apps.

A página Acesso especial a apps nas configurações do sistema contém um conjunto de operações ativadas pelo usuário. Muitas dessas operações são implementadas como permissões especiais.

Cada permissão especial tem detalhes de implementação próprios. As instruções para usar cada permissão especial aparecem na página de referência da API de permissões. O sistema atribui o nível de proteção "appop" a permissões especiais.

Práticas recomendadas

As permissões do app são criadas com base em recursos de segurança do sistema e ajudam o Android a oferecer compatibilidade com as seguintes metas relacionadas à privacidade do usuário:

  • Controle: o usuário tem controle sobre os dados que compartilha com aplicativos.
  • Transparência: o usuário entende quais dados um aplicativo usa e por que ele acessa esses dados.
  • Minimização de dados: um app acessa e usa apenas os dados necessários para uma tarefa ou ação específica que o usuário invoca.

Esta seção apresenta um conjunto de práticas recomendadas para o uso eficaz de permissões no app. Para ver mais detalhes sobre como trabalhar com permissões no Android, visite a página de práticas recomendadas de permissões do app.

Solicitar um número mínimo de permissões

Ao solicitar uma ação específica, o aplicativo solicitará apenas as permissões necessárias para concluir essa ação. Dependendo de como as permissões são usadas, pode haver uma forma alternativa de atender ao caso de uso do seu app, sem depender de acesso a informações confidenciais.

Associar permissões de execução a ações específicas

Solicite permissões o mais tarde possível no fluxo dos casos de uso do seu aplicativo. Por exemplo, se o app permitir que usuários enviem mensagens de áudio a outras pessoas, aguarde o usuário navegar para a tela de mensagens e pressionar o botão Enviar mensagem de áudio. Depois que o usuário pressiona o botão, seu app pode solicitar acesso ao microfone.

Considerar as dependências do app

Ao incluir uma biblioteca, você também herda seus requisitos de permissões. Esteja ciente das permissões necessárias para cada dependência e para que elas são usadas.

Seja transparente

Ao fazer uma solicitação de permissão, seja claro sobre o que você está acessando e por quê, para que os usuários possam tomar decisões embasadas.

Deixe os acessos do sistema explícitos

Ao acessar dados ou hardware confidenciais, como a câmera ou o microfone, forneça uma indicação contínua no seu app. Esse lembrete ajuda os usuários a entender exatamente quando seu app acessa dados restritos ou executa ações restritas.

Permissões em componentes do sistema

Permissões não servem apenas para solicitar recursos do sistema. Os componentes do sistema do seu app podem restringir quais outros apps podem interagir com seu app, conforme descrito na página sobre como restringir interações com outros apps.

Outros recursos

Para saber mais sobre as permissões do app no Android, consulte os seguintes recursos adicionais:

Amostras