<uses-configuration>

Sintaxe:
<uses-configuration
  android:reqFiveWayNav=["true" | "false"]
  android:reqHardKeyboard=["true" | "false"]
  android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
  android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
  android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
contido em:
<manifest>
descrição:

Indica os recursos de hardware e software que o aplicativo exige. Por exemplo, um aplicativo pode especificar que exige um teclado físico ou um dispositivo de navegação específico, como um trackball. A especificação é usada para evitar a instalação do aplicativo em dispositivos em que ele não funciona.

Observação: a maioria dos apps não usa essa tag de manifesto. Sempre ofereça suporte à entrada com botão direcional para auxiliar usuários com deficiência visual e oferecer suporte a dispositivos com botão direcional além do toque ou em vez dele.

Para saber mais sobre como oferecer suporte à entrada por botão direcional no seu app, leia Gerenciar ações do controlador. Se o app não puder funcionar sem a tela touchscreen, use a tag <uses-feature> para declarar o tipo de tela touchscreen necessária, que varia de "android.hardware.faketouch" para eventos básicos de toque a tipos mais avançados, como "android.hardware.touchscreen.multitouch.jazzhand" para entrada distinta com vários dedos.

atributos:
android:reqFiveWayNav
Define se o aplicativo exige um controle de navegação de cinco direções. Será "true" caso necessário e "false" caso contrário. Um controle de cinco direções pode mover a seleção para cima, baixo, à direita ou à esquerda e também oferece uma maneira de invocar a seleção atual. Pode ser um botão direcional, trackball ou outro dispositivo.

Se um app exigir um controle direcional, mas não de um tipo específico, ele pode definir esse atributo como "true" e ignorar o atributo reqNavigation. No entanto, se exigir um tipo específico de controle direcional, ele pode ignorar este atributo e definir reqNavigation.

android:reqHardKeyboard
Define se o aplicativo exige um teclado físico. Será "true" caso necessário e "false" caso contrário.
android:reqKeyboardType
O tipo de teclado que o aplicativo exige, se houver. Esse atributo não distingue teclados de hardware e de software. Se um teclado de hardware de determinado tipo for necessário, especifique o tipo nesse elemento e configure também o atributo reqHardKeyboard como "true".

O valor precisa ser uma destas strings:

Valor Descrição
"undefined" O aplicativo não exige um teclado. Um requisito de teclado não foi definido. Esse é o valor padrão.
"nokeys" O aplicativo não exige um teclado.
"qwerty" O aplicativo exige um teclado QWERTY padrão.
"twelvekey" O aplicativo exige um teclado de doze teclas, como os da maioria dos smartphones, com teclas para os dígitos de 0 a 9, além das teclas asterisco (*) e cerquilha (#).
android:reqNavigation
O dispositivo de navegação exigido pelo aplicativo, se houver. O valor precisa ser uma destas strings:
Valor Descrição
"undefined" O aplicativo não exige nenhum tipo de controle de navegação. O requisito de navegação não foi definido. Esse é o valor padrão.
"nonav" O aplicativo não exige um controle de navegação.
"dpad" O aplicativo exige um botão direcional para a navegação.
"trackball" O aplicativo exige um trackball para navegação.
"wheel" O aplicativo exige uma roda de navegação.

Se um aplicativo exigir um controle de navegação, mas o tipo exato de controle não importar, ele pode definir o atributo reqFiveWayNav como "true", em vez de configurar esse atributo.

android:reqTouchScreen
O tipo de touchscreen que o aplicativo exige, se houver. O valor precisa ser uma destas strings:
Valor Descrição
"undefined" O aplicativo não exige uma tela touchscreen. O requisito de touchscreen não foi definido. Esse é o valor padrão.
"notouch" O aplicativo não exige uma tela touchscreen.
"stylus" O aplicativo exige uma tela touchscreen que seja operada com uma stylus.
"finger" O aplicativo exige uma tela touchscreen que seja operada com um dedo.

Observação: se algum tipo de entrada de toque for necessária para o app, use a tag <uses-feature> para declarar o tipo de touchscreen necessário, começando com "android.hardware.faketouch" para eventos básicos de toque.

introduzido no:
API de nível 3
confira também: