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


語法(SYNTAX):

<uses-featureandroid:name="string"
             
android:required=["true" | "false"]
             
android:
glEsVersion="integer"/>

被包含於(CONTAINED IN):

<manifest>

說明(DESCRIPTION):

這個元素用於聲明一個單獨的被應用程序使用的硬件或軟件功能。

<uses-feature>聲明的目的是通知其他外部實體,該應用程序所依賴的硬件和軟件功能。這個元素提供的required屬性會讓你指定應用程序在所需的功能不存在時,應用程序是否能夠正常運行。因為功能能夠所支持的Android設備不同,所以<uses-feature>元素被用於描述應用程序所依賴的、重要的、可用的設備功能。

應用程序所聲明的一組可用功能對應着一組由Android的PackageManager類定義的可用的功能常量,為了方便,這些常量會在《Google Play和基於功能的過濾》的“功能參考”表中被列出。

如果應用程序需要多個功能,就要分別使用<uses-feature>元素來指定所需的每一個功能,例如:需要設備中帶有藍牙和camera功能的應用程序,要聲明兩個<uses-feature>元素:

<uses-feature android:name="android.hardware.bluetooth" />
<uses-feature android:name="android.hardware.camera" />

通常應該確保使用<uses-feature>元素來聲明應用程序所需的所有功能。

被聲明的<uses-feature>元素只是信息化的,這意味着Android系統本身在安裝應用程序之前,不會檢查設備上所支持的功能的匹配性。但是其他的服務(如Google Play)或應用程序可以檢查該應用程序的<uses-feature>聲明,把它作為與該應用程序交互的一部分。由於這個原因,聲明應用程序要使用的所有的外部功能是至關重要的。

對於某些功能,有可能存在一個特定的屬性,以便定義功能的版本,如被使用的Open GL的版本(用glEsVersion來聲明)。而有些功能則不需要指定版本屬性,如照相機,就只使用name屬性來聲明。

盡管<uses-feature>元素只在運行API Level 4或更高的版本上才有效,但是還是推薦在所有的應用程序中包含這個元素,即使minSdkVersion的值是3或更低的版本,那么這些運行舊的平台版本的設備會簡單忽略掉這個元素。

注意:在聲明一個功能時,要記住必須申請相應的權限。例如,在應用程序能夠訪問CameraAPI之前,必須申請CAMERA權限。申請權限是讓應用程序能夠訪問相應的軟/硬件,而聲明應用程序所使用的功能是為了確保正確的設備兼容性。

屬性(ATTRIBUTES):

android:name

這個屬性用描述性的字符串,指定該應用程序所使用的軟/硬件功能。有效描述符在《Google Play和基於功能的過濾》的“硬件功能”和“軟件功能”表中被列出。

android:required

這個屬性用一個布爾值來指定應用程序是否需要在android:name屬性中所指定的功能。

true:在設備上不存在指定的功能時,則該應用不能夠正常運行。

false:如果設備上存在指定的功能,則應用程序會傾向使用這個功能,但是如果需要,也可設計成沒被指定的功能也能夠正常運行。

如果沒有聲明,這個屬性的默認值是true。

android:qlEsVersion

這個屬性用於聲明應用程序所需要的OpenGL ES的版本。它的高16位代表主版本號,低16位代表次要版本號,如:要是指定OpenGL ES的版本號是2.0,那么就要設置為0x00020000。要指定的OpenGL ES的版本號是2.1,就要設置為0x00020001。

應用程序在它的清單中應該最多只能指定一個android:glEsVersion屬性,如果指定了多個,那么只會使用版本最高的那個android:glEsVersion屬性,而其他的將會被忽略。

如果應用程序沒有指定一個android:glEsVersion屬性,那么就假定應用程序僅需要OpenGL ES1.0,它是在所有的Android設備上都支持的版本。

應用程序能夠假設,如果一個平台支持設定的OpenGL ES版本,那么它還會支持所有被設定版本低的OpenGL ES版本,因此,需要OpenGL ES1.0和OpenGL ES2.0的應用程序,必須要指定它所需要的版本時OpenGL ES2.0。

能夠用任何版本的OpenGL ES來工作的應用程序,應該僅指定應用所需的最低版本的OpenGL ES。(應用程序能夠在運行時檢查較高版本的OpenGL ES是否可用。)

被引入的版本(INTRODUCED IN):

API Level 4

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM