- Sintaxe:
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | ...] />
- contido em:
<manifest>
- descrição:
- Declara uma permissão de segurança usada para limitar o acesso a componentes ou recursos específicos desse ou de outros aplicativos. Para saber mais sobre como as permissões funcionam, consulte a seção Permissões, na visão geral do manifesto do app, e as Dicas de segurança.
- Atributos:
android:description
- Uma descrição da permissão legível pelo usuário que é mais longa e mais
informativa do que o rótulo. Pode ser mostrada para explicar a
permissão ao usuário, por exemplo, quando ela
é pedida por outro aplicativo.
Esse atributo é definido como uma referência a um recurso de string. Diferente do atributo
label
, ele não pode ser uma string bruta. android:icon
- Uma referência a um recurso drawable para um ícone que representa a permissão.
android:label
- Um nome legível pelo usuário para a permissão.
Como conveniência, o rótulo pode ser configurado diretamente como uma string bruta enquanto você desenvolve o aplicativo. No entanto, quando o aplicativo estiver pronto para ser publicado, defina o rótulo como uma referência a um recurso de string para que ele possa ser localizado como outras strings na interface do usuário.
android:name
- O nome a ser usado no
código para se referir à permissão, por exemplo, em um
elemento
<uses-permission>
ou nos atributospermission
dos componentes do aplicativo.Observação: o sistema não permite que vários pacotes declarem uma permissão com o mesmo nome, a menos que todos eles sejam assinados com o mesmo certificado. Se um pacote declarar uma permissão, o sistema não vai permitir que o usuário instale outros pacotes com o mesmo nome de permissão, a menos que eles sejam assinados com o mesmo certificado do primeiro.
Por esse motivo, o Google recomenda prefixar permissões com o nome do pacote do app usando a nomenclatura no estilo de domínio inverso. Esse prefixo precisa ser seguido de
.permission.
e uma descrição da capacidade que a permissão representa com letras maiúsculas em SNAKE_CASE. Por exemplo:com.example.myapp.permission.ENGAGE_HYPERSPACE
Essa recomendação evita conflitos na nomenclatura e ajuda a identificar com clareza o proprietário e a intenção de uma permissão personalizada.
android:permissionGroup
- Atribui esta permissão a um grupo. O valor desse atributo é
o nome do grupo, que precisa ser declarado com o elemento
<permission-group>
nesse aplicativo ou em outro. Se esse atributo não é definido, a permissão não pertence a um grupo. android:protectionLevel
-
Caracteriza o possível risco implícito na permissão e indica o procedimento que o sistema precisa seguir ao determinar se concede ou não a permissão a um aplicativo que a solicite.
Cada nível de proteção consiste em um tipo de permissão básico e em zero ou mais flags. Por exemplo, o nível de proteção
"dangerous"
não tem sinalizações. Por outro lado, o nível de proteção"signature|privileged"
é uma combinação do tipo de permissão básico"signature"
e a sinalização"privileged"
.A tabela abaixo mostra todos os tipos de permissão básicos. Para uma lista de sinalizações, consulte
protectionLevel
.Valor Significado "normal"
O valor padrão. Uma permissão de baixo risco que concede a apps que a pedem acesso a recursos isolados no nível do aplicativo, com risco mínimo a outros aplicativos, ao sistema ou ao usuário. O sistema concede automaticamente esse tipo de permissão a um aplicativo solicitante na instalação, sem pedir a aprovação explícita do usuário, que ainda tem a opção de revisar essas permissões antes da instalação. "dangerous"
Uma permissão de alto risco que concede ao app que a pede acesso a dados particulares do usuário ou controle sobre o dispositivo, podendo afetar negativamente o usuário. Como esse tipo de permissão apresenta possível risco, o sistema pode não a conceder automaticamente ao aplicativo que fez o pedido. Por exemplo, uma permissão perigosa solicitada por um app pode ser mostrada ao usuário e exigir a confirmação dele antes de prosseguir. Alguma outra medida também pode ser tomada para evitar que o usuário permita automaticamente o uso desses recursos. "signature"
Uma permissão concedida pelo sistema somente se o aplicativo que a solicitar estiver assinado com o mesmo certificado que o aplicativo que declarou a permissão. Se os certificados forem correspondentes, o sistema dará a permissão de forma automática, sem notificar o usuário ou pedir a aprovação explícita dele. "knownSigner"
Uma permissão concedida pelo sistema somente se o aplicativo solicitante estiver assinado com um certificado permitido. Se o certificado do solicitante estiver listado, o sistema dará a permissão de forma automática, sem notificar o usuário ou pedir a aprovação explícita dele. "signatureOrSystem"
Sinônimo antigo de
"signature|privileged"
. Descontinuado no nível 23 da API.Uma permissão que o sistema concede apenas a aplicativos que estejam em uma pasta dedicada na imagem do sistema Android ou que sejam assinados com o mesmo certificado do aplicativo que declarou a permissão. Evite usar essa opção, já que o nível de proteção de
"signature"
é suficiente para a maioria das necessidades e funciona independente de onde os aplicativos estejam instalados.A permissão
"signatureOrSystem"
é usada para algumas situações especiais em que vários fornecedores têm aplicativos integrados a uma imagem do sistema e precisam compartilhar explicitamente recursos específicos que estão sendo criados em conjunto.
- Introduzido no:
- Nível 1 da API
- confira também:
<uses-permission>
<permission-tree>
<permission-group>
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2024-08-22 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Não contém as informações de que eu preciso"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Muito complicado / etapas demais"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Desatualizado"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema na tradução"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema com as amostras / o código"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Outro"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Fácil de entender"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Meu problema foi resolvido"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Outro"
}]
{"lastModified": "\u00daltima atualiza\u00e7\u00e3o 2024-08-22 UTC."}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-08-22 UTC."]]