- 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 que pode ser usada para limitar o acesso a componentes ou recursos específicos do aplicativo em que foi declarada ou em outros. Consulte a seção Permissões na introdução e o documento Segurança e permissões para ver mais informações sobre como as permissões funcionam.
- atributos:
android:description
- Uma descrição da permissão legível pelo usuário, mais longa e mais
informativa do que o rótulo. Ela pode ser exibida para explicar a
permissão ao usuário, por exemplo, quando outro aplicativo pede
para receber a permissão do usuário.
Esse atributo precisa ser 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 para a permissão, que pode ser exibido aos usuários.
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, ele precisa ser definido como uma referência a um recurso de string, para que possa ser localizado como outras strings na interface do usuário.
android:name
- O nome da permissão. Esse é o nome que vai ser usado no
código para fazer referência à permissão, por exemplo, em um elemento
<uses-permission>
e 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 os pacotes 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 esses pacotes sejam assinados com o mesmo certificado do primeiro pacote.
Recomendamos adicionar o nome do pacote dos apps como prefixo nas permissões, usando a nomeação no estilo de domínio inverso. Esse prefixo precisa ser seguido de
.permission.
e de uma descrição do recurso que a permissão representa, usando 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>
neste ou em outro aplicativo. Se esse atributo não for definido, a permissão não vai pertencer a um grupo. android:protectionLevel
-
Caracteriza o possível risco implicado na permissão e indica o procedimento que o sistema precisa seguir ao determinar se vai conceder 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 sinalizações. 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 menor risco que concede a apps que a solicitarem 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 solicitar a aprovação explícita do usuário, embora o usuário sempre tenha a opção de revisar essas permissões antes da instalação. " dangerous
"Uma permissão de alto risco que concede ao aplicativo que a solicita acesso a dados particulares do usuário ou controle sobre o dispositivo que pode afetar negativamente o usuário. Como esse tipo de permissão apresenta risco em potencial, o sistema pode não a conceder automaticamente ao aplicativo que faz a solicitação. Por exemplo, qualquer permissão perigosa solicitada por um aplicativo pode ser exibida ao usuário e exigir confirmação antes de prosseguir, ou alguma outra medida pode ser tomada para evitar que o usuário permita automaticamente o uso de tais instalações. " 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 concede a permissão automaticamente sem notificar o usuário ou solicitar a aprovação explícita dele. " signatureOrSystem
"Sinônimo antigo para
"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, porque o nível de proteção de
signature
é suficiente para a maioria das necessidades e funciona independente de onde os aplicativos estiverem 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 porque estão sendo criados em conjunto.
- introduzido em:
- Nível 1 da API
- veja 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 2022-05-16 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"
}]