AndroidManifest.xml文件詳解(uses-configuration)

語法(SYNTAX):

<uses-configurationandroid: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):

這個屬性用於指定該應用程序所需要的硬件和軟件功能。例如,應用程序可以用這個元素指定它所需要的物理鍵盤或特殊的導航設備,如軌跡球。使用這個規范可以避免把應用程序安裝在那些不支持其不能工作的設備上。

如果應用程序能夠用不同的設備配置來工作,那麼它就應該給每個配置包含一個獨立的<uses-configuration>聲明。每個聲明必須被完成。例如,應用程序需要一個五向導航控制,就要需要一個支持手指操作的觸屏,以及一個標準的QWERTY鍵盤或12鍵的數字鍵盤,因此要用兩個<uses-configuration>元素來指定這些需求:

<uses-configurationandroid:reqFiveWayNav="true"android:reqTouchScreen="finger"
                    android:reqKeyboardType="qwerty"/>
<uses-configurationandroid:reqFiveWayNav="true"android:reqTouchScreen="finger"
                    android:reqKeyboardType="twelvekey"/>

 

屬性(ATTRIBUTES):

android:reqFiveWayNav

這個屬性用於指定應用程序是否需要五向導航控制,如果設置為true,則需要,否則不需要。五向控制是指能夠上、下、左、右移動所選擇的對象,並提供調用當前選擇對象的方法。它可以是一個D-pad(方向板)、軌跡球等。

如果應用程序需要一個方向控制,但不是一種特殊類型的控制,就可以把這個屬性設置為true,並且忽略reqNavigation屬性。但是,如果應用程序需要一種特殊的方向控制類型,那麼就可以忽略這個屬性,並用reqNavigation屬性的設置來代替。

android:reqHardKeyboard

這個屬性用於指定應用程序是否需要硬鍵盤,如果設置為true,則需要,否則不需要。

android:reqKeyboardType

這個屬性用於指定該應用程序需要的任何鍵盤的類型。這個屬性不區分軟/硬鍵盤。如果需要某種類型的硬鍵盤,就用這個屬性來指定類型,並把reqHardKeyboard屬性設置為true。

它的屬性值必須是下表中值之一:

 

說明
undefined 應用程序不需要鍵盤。(鍵盤的需求沒有被定義。)這是默認值。
nokeys 應用程序不需要鍵盤,明確定義該應用不需要鍵盤
qwerty 應用程序需要一個標準的QWERTY鍵盤。
twelvekey 應用程序需要一個像大多電話那樣的12鍵的數字鍵盤,鍵盤中包括0~9的數字和“*”號鍵、“#”號鍵。

 

 

android:reqNavigation

這個屬性定義瞭應用程序所需要的任何導航設備,屬性值必須是下表中的值之一:

 

說明
undefined 應用程序不需要任何類型的導航控制。(應用程序的導航需求沒有被定義。)這是默認值。
nonav 應用程序不需要到導航控制。
dpad 應用程序要求使用D-pad(方向板)來進行導航控制
trackball 應用程序要求使用軌跡球來進行導航控制
wheel 應用程序要求使用一個導航滾輪來進行導航控制。

 

如果應用程序要求一個導航控制,但並不關心具體的控制類型,那麼就要把reqFiveWayNav屬性設置為true,而不是隻設置這一個屬性。

android:reqTouchScreen

這個屬性用於設置應用程序所需要的任何觸屏類型。屬性值必須是下表中的字符串之一:

 

說明
undefined 應用程序不需要觸屏。(觸屏的需求不被定義。)這是默認值。
notouch 應用程序不需要觸屏
stylus 應用程序需要帶有觸控筆操作的觸屏。
finger 應用程序需要能夠用一個手指進行操作的觸屏。

 

 

被引入的版本(INTRODUCED IN)

API Level 3

 

摘自 FireOfStar的專欄

發佈留言