to top

<uses-configuration>

syntax:
<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"] />
contained in:
<manifest>
description:
Indicates what hardware and software features the application requires. For example, an application might specify that it requires a physical keyboard or a particular navigation device, like a trackball. The specification is used to avoid installing the application on devices where it will not work.

If an application can work with different device configurations, it should include separate <uses-configuration> declarations for each one. Each declaration must be complete. For example, if an application requires a five-way navigation control, a touch screen that can be operated with a finger, and either a standard QWERTY keyboard or a numeric 12-key keypad like those found on most phones, it would specify these requirements with two <uses-configuration> elements as follows:

<uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
                    android:reqKeyboardType="qwerty" />
<uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
                    android:reqKeyboardType="twelvekey" />
attributes:
android:reqFiveWayNav
Whether or not the application requires a five-way navigation control — " true" if it does, and " false" if not. A five-way control is one that can move the selection up, down, right, or left, and also provides a way of invoking the current selection. It could be a D-pad (directional pad), trackball, or other device.

If an application requires a directional control, but not a control of a particular type, it can set this attribute to "true" and ignore the reqNavigation attribute. However, if it requires a particular type of directional control, it can ignore this attribute and set reqNavigation instead.

android:reqHardKeyboard
Whether or not the application requires a hardware keyboard — " true" if it does, and " false" if not.
android:reqKeyboardType
The type of keyboard the application requires, if any at all. This attribute does not distinguish between hardware and software keyboards. If a hardware keyboard of a certain type is required, specify the type here and also set the reqHardKeyboard attribute to " true".

The value must be one of the following strings:

Value Description
"undefined" The application does not require a keyboard. (A keyboard requirement is not defined.) This is the default value.
"nokeys" The application does not require a keyboard.
"qwerty" The application requires a standard QWERTY keyboard.
"twelvekey" The application requires a twelve-key keypad, like those on most phones — with keys for the digits from 0 through 9 plus star (*) and pound (#) keys.
android:reqNavigation
The navigation device required by the application, if any. The value must be one of the following strings:
Value Description
"undefined" The application does not require any type of navigation control. (The navigation requirement is not defined.) This is the default value.
"nonav" The application does not require a navigation control.
"dpad" The application requires a D-pad (directional pad) for navigation.
"trackball" The application requires a trackball for navigation.
"wheel" The application requires a navigation wheel.

If an application requires a navigational control, but the exact type of control doesn't matter, it can set the reqFiveWayNav attribute to "true" rather than set this one.

android:reqTouchScreen
The type of touch screen the application requires, if any at all. The value must be one of the following strings:
Value Description
"undefined" The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch" The application doesn't require a touch screen.
"stylus" The application requires a touch screen that's operated with a stylus.
"finger" The application requires a touch screen that can be operated with a finger.
introduced in:
API Level 3
see also:
  • ConfigurationInfo
  • No examples for this method.
    Frequently called with: [Clear]
    Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. The original page is available here.