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 quais recursos de hardware e software 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 deve usar essa tag de manifesto. Sempre forneça suporte à entrada por botão direcional para auxiliar usuários com problemas de visão. Ofereça também suporte a dispositivos que ofereçam botão direcional além do toque ou em vez dele. Para mais informações sobre como oferecer suporte à entrada por botão direcional no app, leia Ativar navegação com foco. Se o app não puder funcionar sem 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
Indica se o aplicativo exige ou não um controle de navegação de cinco direções: "true" se precisar e "false", se não precisar. 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. O controle 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
Indica se o app precisa ou não de um teclado de hardware: "true" se sim e "false" se não.
android:reqKeyboardType
O tipo de teclado que o aplicativo exige, se houver. Esse atributo não distingue teclados de hardware e software. Se um teclado de hardware de determinado tipo for necessário, especifique o tipo aqui 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 está 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 requer nenhum tipo de controle de navegação. O requisito de navegação não está 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 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 este atributo.

android:reqTouchScreen
O tipo de tela 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 tela touchscreen é indefinido. 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 pode ser 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.

implementação:
Nível 3 da API
veja também:
  • ConfigurationInfo