<uses-configuration>

sintaxis:
<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"] />
se incluye en:
<manifest>
descripción:

Indica las características de hardware y software que requiere la aplicación. Por ejemplo, una aplicación puede especificar que requiere un teclado físico o un dispositivo de navegación en particular, como una bola de seguimiento. La especificación se utiliza para evitar la instalación de la aplicación en dispositivos en los que no funcionará.

Nota: La mayoría de las apps no deberían usar esta etiqueta de manifiesto. Siempre debes admitir la entrada con un mando de dirección (pad direccional) para ayudar a los usuarios con discapacidad visual y garantizar la compatibilidad con los dispositivos que proporcionan entrada de pad direccional.

Si quieres obtener información para admitir la entrada de pad direccional en tu aplicación, consulta el artículo sobre Cómo administrar las acciones de los controles. Si tu app no puede funcionar sin una pantalla táctil, utiliza la etiqueta <uses-feature> para declarar el tipo de pantalla táctil requerido, que va desde "android.hardware.faketouch" para tipos de eventos táctiles básicos hasta más avanzados, como "android.hardware.touchscreen.multitouch.jazzhand", para una entrada distinta de varios dedos.

atributos:
android:reqFiveWayNav
Determina si la aplicación requiere un control de navegación de cinco direcciones. Es "true" si lo requiere y "false" si no lo requiere. Un control de cinco direcciones es aquel que permite mover la selección hacia arriba, abajo, la derecha y la izquierda, y también proporciona una forma de invocar la selección actual. Puede ser un mando de dirección (pad direccional), una bola de seguimiento o algún otro dispositivo.

Si una aplicación requiere un control de dirección, pero no uno de un determinado tipo, puedes configurar este atributo como "true" e ignorar el atributo reqNavigation. Sin embargo, si requiere un tipo particular de control de dirección, puedes ignorar este atributo y configurar reqNavigation en su lugar.

android:reqHardKeyboard
Determina si la aplicación requiere un teclado de hardware. Es "true" si lo requiere y "false" si no lo requiere.
android:reqKeyboardType
Es el tipo de teclado que requiere la aplicación, si corresponde. Este atributo no distingue entre teclados de hardware y software. Si se requiere un teclado de hardware de cierto tipo, especifica el tipo aquí y configura el atributo reqHardKeyboard como "true".

El valor debe ser una de las siguientes cadenas:

Valor Descripción
"undefined" La aplicación no requiere un teclado. No se definió un requisito de teclado. Este es el valor predeterminado.
"nokeys" La aplicación no requiere un teclado.
"qwerty" La aplicación requiere un teclado QWERTY estándar.
"twelvekey" La aplicación requiere un teclado de doce teclas, como el de la mayoría de los teléfonos, con teclas para los dígitos del 0 al 9 más las teclas de asterisco (*) y numeral (#).
android:reqNavigation
Es el dispositivo de navegación requerido por la aplicación, si lo hay. El valor debe ser una de las siguientes strings:
Valor Descripción
"undefined" La aplicación no requiere ningún tipo de control de navegación. No se definió el requisito de navegación. Este es el valor predeterminado.
"nonav" La aplicación no requiere un control de navegación.
"dpad" La aplicación requiere un pad direccional para la navegación.
"trackball" La aplicación requiere una bola de seguimiento para la navegación.
"wheel" La aplicación requiere una rueda de navegación.

Si una aplicación requiere un control de navegación, pero el tipo exacto no importa, entonces, puedes configurar el atributo reqFiveWayNav como "true" en lugar de este.

android:reqTouchScreen
El tipo de pantalla táctil que requiere la aplicación, si corresponde. El valor debe ser una de las siguientes cadenas:
Valor Descripción
"undefined" La aplicación no requiere una pantalla táctil. El requisito de pantalla táctil no está definido. Este es el valor predeterminado.
"notouch" La aplicación no requiere una pantalla táctil.
"stylus" La aplicación requiere una pantalla táctil que funcione con una pluma stylus.
"finger" La aplicación requiere una pantalla táctil que se pueda utilizar con un dedo.

Nota: Si tu app necesita algún tipo de entrada táctil, declara el tipo de pantalla táctil requerido con la etiqueta <uses-feature>, empezando por "android.hardware.faketouch" para eventos básicos de estilo táctil.

primera inclusión:
Nivel de API 3
consulta también: