diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd index 810975e1e0df6..e9a0ba43081f5 100644 --- a/docs/html/guide/topics/manifest/uses-configuration-element.jd +++ b/docs/html/guide/topics/manifest/uses-configuration-element.jd @@ -6,18 +6,18 @@ parent.link=manifest-intro.html +easier to update the doc when the change is made... Nov 2013, this still seems unresolved. -->
syntax:
<uses-configuration
-  android:reqFiveWayNav=["true" | "false"] 
+  android:reqFiveWayNav=["true" | "false"]
   android:reqHardKeyboard=["true" | "false"]
   android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
   android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
@@ -27,38 +27,35 @@ easier to update the doc when the change is made. -->
 
<manifest>
description:
-
Indicates what hardware and software features the application requires. -For example, an application might specify that it requires a physical keyboard +
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 {@code <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 {@code <uses-configuration>} elements as follows: -

+

Note: Most apps should not use this manifest tag. You should +always support input with a directional pad (d-pad) in order 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 Enabling Focus Navigation. If +your app absolutely cannot function without a touchscreen, then instead use the {@code <uses-feature>} tag to +declare the required touchscreen type, ranging from {@code "android.hardware.faketouch"} for basic +touch-style events to more advanced touch types such as {@code +"android.hardware.touchscreen.multitouch.jazzhand"} for distinct input from multiple fingers.

-
<uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
-                    android:reqKeyboardType="qwerty" />
-<uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
-                    android:reqKeyboardType="twelvekey" />
attributes:
{@code android:reqFiveWayNav}
-
Whether or not the application requires a five-way navigation control +
Whether or not the application requires a five-way navigation control — "{@code true}" if it does, and "{@code 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. +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 "{@code true}" and ignore +particular type, it can set this attribute to "{@code true}" and ignore the reqNavigation attribute. However, if it requires a particular type of directional control, it can ignore this attribute and set {@code reqNavigation} instead. @@ -69,10 +66,10 @@ this attribute and set {@code reqNavigation} instead. "{@code true}" if it does, and "{@code false}" if not.

{@code android:reqKeyboardType}
-
The type of keyboard the application requires, if any at all. -This attribute does not distinguish between hardware and software +
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 {@code reqHardKeyboard} attribute +specify the type here and also set the {@code reqHardKeyboard} attribute to "{@code true}".

@@ -85,8 +82,8 @@ The value must be one of the following strings: Description "{@code undefined}" - The application does not require a keyboard. - (A keyboard requirement is not defined.) + The application does not require a keyboard. + (A keyboard requirement is not defined.) This is the default value. "{@code nokeys}" @@ -96,14 +93,14 @@ The value must be one of the following strings: The application requires a standard QWERTY keyboard. "{@code twelvekey}" - The application requires a twelve-key keypad, like those on most - phones — with keys for the digits from {@code 0} through + The application requires a twelve-key keypad, like those on most + phones — with keys for the digits from {@code 0} through {@code 9} plus star ({@code *}) and pound ({@code #}) keys.

{@code android:reqNavigation}
-
The navigation device required by the application, if any. The value +
The navigation device required by the application, if any. The value must be one of the following strings: @@ -112,8 +109,8 @@ must be one of the following strings: - @@ -132,14 +129,14 @@ must be one of the following strings:

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

{@code android:reqTouchScreen}
The type of touch screen the application requires, if any at all. -The value must be one of the following strings: +The value must be one of the following strings:
Description
"{@code undefined}"The application does not require any type of navigation control. - (The navigation requirement is not defined.) + The application does not require any type of navigation control. + (The navigation requirement is not defined.) This is the default value.
"{@code nonav}"
@@ -147,7 +144,7 @@ The value must be one of the following strings: - @@ -158,7 +155,14 @@ The value must be one of the following strings: - +
Description
"{@code undefined}"The application doesn't require a touch screen. + The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
The application requires a touch screen that's operated with a stylus.
"{@code finger}"The application requires a touch screen that can be operated with a finger.The application requires a touch screen that can be operated with a finger. + +

Note: If some type of touch input is required for your app, + you should instead use the + {@code + <uses-feature>} tag to declare the required touchscreen + type, beginning with {@code "android.hardware.faketouch"} for basic touch-style events.

+
@@ -172,7 +176,7 @@ The value must be one of the following strings:
  • {@link android.content.pm.ConfigurationInfo}