Observação: em alguns casos, as permissões que você solicita por <uses-permission>
podem afetar como seu aplicativo é filtrado pelo Google Play.
Se você solicitar uma permissão relacionada a hardware — CAMERA
, por exemplo —, o Google Play presume que seu aplicativo exige o recurso de hardware básico e filtra o aplicativo pelos dispositivos que não oferecem ele.
Para controlar a filtragem, sempre declare os recursos de hardware explicitamente nos elementos <uses-feature>
, em vez de confiar no Google Play para "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 obter uma lista de permissões que implicam 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 aplicativo funcione corretamente. Permissões são concedidas pelo usuário quando o aplicativo é instalado (em dispositivos com Android 5.1 ou menos recentes) ou enquanto o aplicativo 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 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 geralmente contém o nome do pacote como prefixo. android:maxSdkVersion
- A API de nível mais alto onde essa permissão deve ser concedida ao seu aplicativo. Definir este atributo é útil se a permissão que seu aplicativo exige 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 da API 19), não é mais necessário que seu aplicativo solicite a permissão
WRITE_EXTERNAL_STORAGE
quando seu aplicativo quer escrever os próprios diretórios específicos de aplicativo no armazenamento externo (os diretórios fornecidos porgetExternalFilesDir()
). No entanto, a permissão é necessária para o nível da API 18 e versões anteriores. Portanto, é possível declarar que esta permissão é 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" />
Assim, a partir do nível da API 19, o sistema não concederá mais a permissão
WRITE_EXTERNAL_STORAGE
ao seu aplicativo.Esse atributo foi adicionado no nível da API 19.
- introduzido em:
- Nível da API 1
- veja também: