Android Manifest之元素中文注释

语法

<uses-feature

  android:name="string"

  android:required=["true" |"false"]

  android:glEsVersion="integer" />

父元素

<manifest>

描述

定义应用使用的单个硬件或软件功能。

 

声明<uses-feature>的目的是通知其它外部实体,你的应用依赖的硬件和软件功能。这个元素提供的required属性会让你指定应用程序在所需的功能不存在时,应用程序是否能够正常运行。由于对于某个功能的支持可能随着Android设备发生变化,所以<uses-feature>元素在让应用描述它使用设备上哪些功能时扮演了重要的角色。

 

应用程序所声明的一组可用功能对应着一组由Android的PackageManager类构造的可用功能的常量,为了方便起见,在这个文档底部的Features Reference中已经将它们列出。

 

你必须在单独的<uses-feature>元素中制定每个功能,所以如果你的应用需要多个功能,应当定义多个<uses-feature>元素。例如,需要设备中的蓝牙和摄像头功能的应用应当定义这两个元素:

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

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

 

通常,你应当始终确保为你的应用需要的所有功能定义<uses-feature>元素。

 

定义的<uses-feature>元素只是一条信息,也就是说在安装应用之前,Android系统本身不会检查设备是否支持匹配的功能。但是,其它服务(例如Google Play)或应用可能要检查你应用的<uses-feature>定义,并将其作为处理或同你应用交互的一部分。因此,在你的应用中定义所有功能(见下表)是非常重要的。

 

对于其中某些功能,存在一种特定得属性,这个属性允许你定义这个功能的版本,例如使用的Open GL的版本(用glEsVersion定义)。在设备上的其它功能,无论存在与否,例如摄像头,都使用name属性来定义。

 

虽然<uses-feature>元素只在API Level 4或更高版本上可用,但是推荐的作法是在所有应用中包含这些元素,即使在minSdkVersion为"3"或更低的版本中。运行在老平台上的设备会忽略这个元素。

 

注意:当定义功能时,需要记住的是你也必须请求相应的权限。例如,在你的应用能访问摄像头API之前,你还必须请求CAMERA权限。请求权限不仅会确保你的应用能访问相应的硬件和软件,而且在你的应用使用这些定义的功能还能恰当的解决设备的兼容性。

属性

android:name

    以标识符串的形式来指定应用使用的单个硬件或软件功能。可用的标识符在     下方的Hardwarefeatures和Software features表中已经列出。标识符是区分大小写的。

android:required

    布尔值,表示应用是否需要android:name指定的功能。

 

    当你为功能定义了android:required="true",并且这个功能不在设备上时,应用不能正常运行。

 

    当你为功能定义了android:required="false"时,意味着如果功能存在于设备上时应用可以使用这个功能,但如果需要,也可以将应用设计成在没有该功能的设备上也能正常运行。

 

    如果没有定义android:required的默认值是"true"。

android:glEsVersion

    应用需要的OpenGLES的版本。高16位表示主版本号,低16位代表子版本号。例如,如果指定了OpenGL ES的版本为2.0,那么你应当将其值设为“0x00020000”,或指定了OpenGL ES 3.0,那么你应当将其值设为“0x00030000”。

 

    应用最多能在manifest中指定一个android:glEsVersion属性。如果指定了一个以上,那么android:glEsVersion最大的那个值会被使用,其它值会被忽略。

 

    如果应用没有指定android:glEsVersion属性,那么它会默认这个应用只请求OpenGL ES 1.0,所有Android设备都支持这个版本。

 

    应用能假定如果平台支持特定的OpenGL ES版本,它也支持所有更低的OpenGL ES版本。因此,对于既需要OpenGL ES 1.0,又需要OpenGL ES 2.0版本的应用,必须要指定它需要OpenGL ES 2.0。

 

    能够用任何版本的OpenGLES来工作的应用,应当只指定它需要的OpenGL ES的最低版本。(在运行时能检查更高版本的OpenGL ES是否可用)。

 

出处

API Level 4

你可能感兴趣的:(uses-feature,androidname)