<uses-permission>

Observação: em alguns casos, as permissões solicitadas pelo <uses-permission> podem afetar a forma como o Google Play filtra o aplicativo. Se você solicitar uma permissão relacionada a hardware, como CAMERA, o Google Play presume que o aplicativo exige o recurso de hardware especificado e ele é filtrado de 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. O usuário concede permissões quando o app é instalado em dispositivos com o Android 5.1 ou versões anteriores ou, enquanto o app está em execução, em dispositivos com o Android 6.0 ou versões mais recentes.

Para mais informações sobre permissões, consulte a seção Permissões na visão geral do manifesto do app e o guia Permissões no Android. Uma lista de permissões definidas pela plataforma base está disponível 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
O nível mais alto da API em que essa permissão é 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, no Android 4.4 (nível 19 da API) e versões mais recentes, não é mais necessário que seu app solicite a permissão WRITE_EXTERNAL_STORAGE para gravar nos próprios diretórios específicos do app no armazenamento externo, fornecidos por getExternalFilesDir().

No entanto, a permissão é necessária para o nível da API 18 e versões anteriores. Então, é possível declarar que isso a permissão é necessária somente até o nível 18 da API com uma declaração como esta:

<uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

Dessa forma, no nível 19 da API e versões mais recentes, o sistema não concede mais a permissão WRITE_EXTERNAL_STORAGE ao app.

Adicionado no nível 19 da API.

introduzido em:
Nível 1 da API
confira também: