Permissões no Android

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 dos usuários.
  • Ações restritas, como a conexão a um dispositivo pareado e a gravação de áudio.

Esta página oferece um resumo 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ão e algumas práticas recomendadas para o uso de permissões no app. Outras páginas explicam como minimizar as solicitações de permissão do app, declarar permissões, solicitar permissões de execução e restringir como outros apps podem interagir com os componentes do app.

Para conferir 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. 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. O nível de proteção de cada permissão é baseado no tipo e é mostrado na página de referência da API de permissões.

Permissões da 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 instalação dão ao app acesso limitado a dados restritos ou permitem que o app execute ações restritas que afetam minimamente o sistema ou outros apps. Quando você declara as permissões de instalação, a app store mostra um aviso de permissões de instalação quando o usuário visualiza a página de detalhes de um app, como mostrado na Figura 2. O sistema concede automaticamente ao app as permissões quando o usuário o instala.

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

Permissões normais

Essas permissões autorizam o acesso a dados e ações que vão além do sandbox do seu app, mas apresentam muito pouco risco à privacidade do usuário e à operação de outros apps.

O sistema atribui o nível de proteção normal às permissões normais.

Permissões de assinatura

O sistema concede uma permissão de assinatura a um app somente quando ele é assinado pelo mesmo certificado do app que define a permissão.

Os aplicativos que implementam serviços privilegiados, como preenchimento automático ou serviços de VPN, também usam permissões de assinatura. Esses apps exigem permissões de assinatura de vinculação de serviço para que somente o sistema possa se vincular aos serviços.

O sistema atribui o nível de proteção signature às permissões de assinatura.

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 extra a dados restritos ou autorizam 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. Não suponha que essas permissões já tenham sido concedidas anteriormente. Verifique e, se necessário, faça a solicitação delas antes de cada acesso.

Quando seu app solicita uma dessas permissões, o sistema mostra uma solicitação de permissão de execução, como 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 microfone e a câmera oferecem acesso a informações confidenciais. Portanto, o sistema ajuda você a explicar por que seu app acessa essas informações.

O sistema atribui o nível de proteção dangerous às permissões de execução.

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.

Grupos de permissões

As permissões podem pertencer a grupos de permissões. Eles consistem em um conjunto de permissões logicamente relacionadas. Por exemplo, as permissões para enviar e receber mensagens SMS podem pertencer ao mesmo grupo, já que ambas estão relacionadas à interação do aplicativo com SMS.

Os grupos de permissões ajudam o sistema a minimizar o número de caixas de diálogo mostradas ao usuário quando um app solicita permissões relacionadas. Quando um usuário recebe uma solicitação para conceder permissões a um aplicativo, as permissões que pertencem ao mesmo grupo são apresentadas na mesma interface. No entanto, as permissões podem mudar grupos sem aviso. Portanto, não presuma que uma permissão específica esteja agrupada com qualquer outra permissão.

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 suporte a estas metas relacionadas à privacidade do usuário:

  • Controle: o usuário tem controle sobre os dados que compartilha com apps.
  • Transparência: o usuário entende quais dados um app 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 app. Por exemplo, se o app permitir que usuários enviem mensagens de áudio a outras pessoas, espere que o usuário navegue para a tela de mensagens e pressione 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 de cada dependência e para que elas são usadas.

Seja transparente

Ao fazer uma solicitação de permissão, explique claramente o que você está acessando, por qual motivo o acesso é necessário e quais funcionalidades serão afetadas se as permissões forem negadas, para que os usuários possam tomar decisões embasadas.

Deixe os acessos do sistema explícitos

Quando você acessar dados ou hardware confidenciais, como a câmera ou o microfone, forneça uma indicação contínua no seu app se o sistema ainda não fornecer esses indicadores. 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 o seu, conforme descrito na página sobre como restringir interações com outros apps.