Observação: em alguns casos, as permissões que você solicita
por <uses-permission>
podem afetar como
o aplicativo é filtrado pelo Google Play.
Se você solicitar uma permissão relacionada a hardware,
CAMERA
, por exemplo, o Google Play presume que o
aplicativo exige o recurso de hardware básico e filtra o aplicativo
pelos dispositivos que não oferecem o recurso.
Para controlar a filtragem, sempre declare os
recursos de hardware explicitamente nos elementos <uses-feature>
, em vez de
confiar que o Google Play vai "descobrir" os requisitos nos elementos
<uses-permission>
. Então, se quiser desativar
a filtragem para um recurso específico, é possível adicionar um atributo
android:required="false"
à declaração
<uses-feature>
.
Para ver uma lista de permissões que exigem recursos de hardware, consulte
a documentação do elemento
<uses-feature>
.
- sintaxe:
<uses-permission android:name="string" android:maxSdkVersion="integer" />
- contido em:
<manifest>
- descrição:
- Especifica uma permissão do sistema que precisa ser concedida pelo usuário para
que o app funcione corretamente. Permissões são concedidas pelo usuário quando o
aplicativo é instalado (em dispositivos com Android 5.1 ou mais antigos) ou enquanto o app está em execução (em dispositivos com Android 6.0 ou mais recentes).
Para ver mais informações sobre permissões, consulte a seção Permissões na introdução e o guia de API de Permissões do sistema. Uma lista de permissões definidas pela plataforma base pode ser encontrada em
android.Manifest.permission
. - atributos:
android:name
- O nome da permissão. Pode ser uma permissão definida pelo
aplicativo com o elemento
<permission>
, uma permissão definida por outro aplicativo ou uma das permissões padrão do sistema (como"android.permission.CAMERA"
ou"android.permission.READ_CONTACTS"
). Como esses exemplos mostram, um nome de permissão normalmente inclui o nome do pacote como um prefixo. android:maxSdkVersion
- O nível mais alto da API em que essa permissão precisa ser concedida ao app.
Definir esse atributo é útil se a permissão exigida pelo app não for mais necessária a partir
de um determinado nível da API.
Por exemplo, a partir do Android 4.4 (nível 19 da API), não é mais necessário que o app solicite a permissão
WRITE_EXTERNAL_STORAGE
quando quiser gravar nos próprios diretórios específicos do app no armazenamento externo (os diretórios fornecidos porgetExternalFilesDir()
), mas a permissão é obrigatória para o nível 18 da API e anteriores. Assim, é possível declarar que esta permissão seja necessária somente até o nível da API 18 com uma declaração como esta:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
E a partir do nível 19 da API, o sistema não vai conceder mais a permissão
WRITE_EXTERNAL_STORAGE
ao aplicativo.Esse atributo foi adicionado no nível 19 da API.
- implementação:
- Nível 1 da API
- veja também: