- 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 the 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 doesn't work. - Note: Most apps don't use this manifest tag. Always support input with a directional pad (D-pad) to assist sight-impaired users and support devices that provide D-pad input in addition to or instead of touch. - For information about how to support D-pad input in your app, read Handle controller actions. If your app absolutely can't function without a touchscreen, then instead use the - <uses-feature>tag to declare the required touchscreen type, ranging from- "android.hardware.faketouch"for basic touch-style events to more advanced touch types such as- "android.hardware.touchscreen.multitouch.jazzhand"for distinct input from multiple fingers.
- attributes:
- android:reqFiveWayNav
- Whether the application requires a five-way navigation control. It's
"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 can be a directional pad (D-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 thereqNavigationattribute. However, if it requires a particular type of directional control, it can ignore this attribute and setreqNavigationinstead.
- android:reqHardKeyboard
- Whether the application requires a hardware keyboard. It's
"true"if it does, and"false"if not.
- android:reqKeyboardType
- The type of keyboard the application requires, if any.
This attribute doesn't distinguish between hardware and software
keyboards.  If a hardware keyboard of a certain type is required,
specify the type here and also set the reqHardKeyboardattribute to"true".The value must be one of the following strings: Value Description " undefined"The application doesn't require a keyboard. A keyboard requirement isn't defined. This is the default value. " nokeys"The application doesn't 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 0through9, 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 doesn't require any type of navigation control. The navigation requirement isn't defined. This is the default value. " nonav"The application doesn't require a navigation control. " dpad"The application requires a D-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 reqFiveWayNavattribute to"true"rather than setting this one.
- android:reqTouchScreen
- The type of touch screen the application requires, if any.
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 is operated with a stylus. " finger"The application requires a touch screen that is operated with a finger. Note: If some type of touch input is required for your app, instead use the <uses-feature>tag to declare the required touchscreen type, beginning with"android.hardware.faketouch"for basic touch-style events.
 
- introduced in:
- API level 3
- see also:
- 
  - configChangesattribute of the- <activity>element
- ConfigurationInfo
 
      <uses-configuration>
  
  
  Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
  
  
    
      [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[]]
    
  
            
          