Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

<uses-permission>

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 por getExternalFilesDir()). 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: