Google Play和基于功能的过滤(三)---硬件功能参考

功能参考

下面列出了关于软/硬件功能,以及能够暗示Google Play的权限的参考信息。

硬件功能

下面列出了被大多数当前发布的平台所支持的硬件功能描述。对于应用程序所使用或需求的每一个硬件功能,都要在一个独立的<uses-feature>元素的android:name属性中声明。

功能类型:Audio

功能描述符:Android.hardware.audio.low_latency

说明:

应用程序使用设备上的低延迟的音频通道,并且对于输入或的延迟或之后是敏感的。

备注:

 

功能类型:Audio

功能描述符:Android.hardware.audio.low_latency

说明:

应用程序要使用设备中的蓝牙无线电功能。

备注:

 

功能类型:Camera

功能描述符:android.hardware.camera

说明:

应用程序要使用设备的摄像头,如果设备支持多个摄像头,那么应用程序会使用屏幕背面的那个。

备注:

 

功能类型:Camera

功能描述符:android.hardware.camera.autofocus

说明:

摄像头的子功能。应用程序要使用设备摄像头的自动对焦能力。

备注:

 

功能类型:Camera

功能描述符:android.hardware.camera.flash

说明:

摄像头的子功能。应用程序要使用设备摄像头的闪光灯能力。

备注:

 

功能类型:Camera

功能描述符:android.hardware.camera.front

说明:

摄像头的子功能。应用程序要使用设备上的前置摄像头。

备注:

注意:声明Camera类型的子功能时,就暗示着声明了android.hardware.camera的父功能,除非声明了android:required=”false”

 

功能类型:Location

功能描述符:android.hardware.location

说明:

应用程序会使用设备上的多种功能来判断位置,如GPS位置、网络位置、或蜂窝位置。

备注

 

功能类型:Location

功能描述符:android.hardware.location.network

说明:

子功能,应用程序要从设备上所支持的基于网络的定位系统来获取大概的位置坐标。

备注:

 

功能类型:Location

功能描述符:android.hardware.location.gps

说明:

子功能,应用程序使用了从设备上的全球定位系统接收器中获取精确的坐标。

备注:

注意:声明Location的子功能时,就暗示着声明了android.hardware.location父功能,除非其声明了android:require=”false”

 

功能类型:Microphone

功能描述符:android.hardware.microphone

说明:

应用程序要使用设备上的麦克风。

备注:

 

功能类型:NFC

功能描述符:android.hardware.nfc

说明:

应用程序要使用设备中的近距离无线通信功能。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.accelerometer

说明:

应用程序要使用设备上的加速度传感器的运动读数。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.barometer

说明:

应用程序要使用设备的压力传感器。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.compass

说明:

应用程序要使用设备上的罗盘来读取方向读数。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.gyroscope

说明:

应用程序要使用设备上的陀螺仪。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.light

说明:

应用程序要使用设备的亮度传感器。

备注:

 

功能类型:Sensors

功能描述符:android.hardware.sensor.proximity

说明:

应用程序要使用设备的近距离传感器。

备注:

 

功能类型:Screen

功能描述符:andrid.hardware.screen.landscape

说明:

应用程序需要横向屏幕

备注:

 

功能类型:Screen

功能描述符:android.hardware.screen.portrait

说明:

应用程序需要纵向屏幕

备注

注:例如:如果应用程序需要纵向屏幕,就应该声明<uses-feature android:name=”android.hardware.screen.portrait>,以便只有支持纵向的设备能够按照该应用程序。如果应用程序两个方向都支持,那么就不需要做任何声明。

默认情况下,这两个方向都被假定为不需要,因此应用程序可以安装在支持一个方向或两个方向都支持的设备上。但是,如果使用android:screenOrientation属性,设定应用程序要运行在一个特俗的设备上,那么还用这个功能声明给应用程序申请方向功能。例如,如果给android:screenOrientation属性声明了landscapereverseLandscape、或sensorlandscape值,那么应用程序只对支持横向屏幕的设备有效。最好的实践是,依然使用<uses-feature>元素声明一个方向的功能请求。如果使用android:screenOrientation属性给Activity声明了一个方向,但实际却不需要该Activity,那么就能够通过使用包含android:require=”false”属性声明的<uses-feature>元素所声明的方向来禁止该功能需求。

为了向后兼容,任何运行只支持API Level 12或更低的平台版本的设备,都被假定为同时支持横向和纵向屏幕。

 

功能类型:Telephony

功能描述符:android.hardware.telephony

说明:

应用程序要使用设备设备上的电话功能,如带有数据通信服务的的无线电话。

备注:

 

功能类型:Telephony

功能描述符:android.hardware.telephony.cdma

说明:

子功能,应用程序要使用设备上的CDMA无线电话功能

备注:

 

功能类型:Telephony

功能描述符:android.hardware.telephony.gsm

说明:

子功能,应用程序要使用设备上的GSM无线电话功能。

备注:

注:这些子功能暗示着也声明了android.hardware.telephony父功能,除非该功能需求声明了android:require=”false”属性。

 

功能类型:Touchscreen

功能描述符:android.hardware.faketouch

说明:

应用程序要使用基本的触屏事件,如“click down”、“click up”和“drag

备注:

当应用程序声明了这个功能需求时,则表明该应用程序只能跟提供了模拟触屏(fake touch 接口)操作的设备兼容。提供fake touch接口的设备会给用户提供一种模拟触屏能力的输入系统。例如,驱动屏幕光标提供fake touch接口的鼠标或远程控制。如果应用程序需要基本的点和click交互(换句话说,只有一个方向板(d-pad),应用程序是不会工作的),就应该声明这个功能,因为这是触屏交互的最低级别,这样应用程序也会跟提供更复杂的触屏交互的设备兼容。

注意:默认情况下,因为应用程序需要android.hardware.touchscreen功能,所以如果想要应用程序对提供了fake touch接口的设备有效,那么就必须通过声明<uses-feature android:name=”android.hardware.touchscreen” android:reuired=”false”>,来明确的声明触屏不是必须的。

 

功能类型:Touchscreen

功能描述符:android.hardware.multitouch.distinct

说明:

应用程序要在fake touch(假触屏)表面上执行区分两点以上触摸的轨迹的操作,这是fake touce功能的一个超集。

备注:

当应用程序声明了这个需求时,表明该应用程序只跟支持区分两点以上的模拟触屏事件的设备兼容。

跟通过android.hardware.touchscreen.multitouch.distinct定义的多点触控不同,支持在fake touch表面进行两点以上触控输入的设备,它不支持所有的双指手势,因为当前输入会被转换成平面上的光标移动。也就是说,在这样设备上的单指手势会移动光标,双指碰擦会导致单指的触屏事件;其他的双指手势会导致相应的双指触屏事件。例如:提供了移动光标的和多指触控的轨迹板,就是一种支持在fake touch表面执行区分多点触控的设备。

 

功能类型:Touchscreen

功能描述符:android.hardware.multitouch.jazzhand

说明:

应用程序要在fake touch(假触屏)表面上执行区分五点以上触摸的轨迹的操作,这是fake touce功能的一个超集。

备注:

当应用程序声明这个功能需求时,表明该应用程序只会跟支持区分五点以上轨迹的模拟触屏设备兼容。

跟通过android.hardware.touchscreen.multitouch.jazzhand定义的多点触控不同,该功能定义的输入设备表面不会支持所有的五指手势,因为该输入会转换成屏幕上的光标移动。也就是说,单指手势会移动设备上的光标,多指触碰手势会导致一个单指触碰事件;其他的多指手势会导致相应的多指触碰事件。例如:提供了移动光标的和多指触控的轨迹板,就是一种支持在fake touch表面执行区分多点触控的设备。

 

功能类型:Touchscreen

功能描述符:android.hardware.touchscreen

说明:

应用程序要使用比基本的触屏事件还要多的手势交互功能,如,抛物手势。该功能是基本faketouch功能的一个超集。

备注:

默认情况下,应用程序需要这个功能。因此,默认情况下,应用程序对只提供模拟触摸屏(fake touch)的设备是无效的。如果想要应用程序对提供模拟触摸屏的设备有效,就必须明确的声明触摸屏不是必须的,声明方式如下:<uses-feature name=”android:hardware.touchscreen” android:required=”false” />。即使应用程序不需要使用一个实际的触摸屏。

如果应用程序需要一个触摸屏(为了执行一些触碰手势),那么不需要做任何该功能的定义,因为默认这个功能是必须的。但是,最好还是明确的声明应用程序所要使用的全部功能,因此如果应用程序要使用该功能,依然还应该声明它。

如果需要更复杂的触摸交互,如多指手势,就应该声明下面的高级触屏功能。

 

功能类型:Touchscreen

功能描述符:android.hardware.touchscreen.multitouch

说明:

应用程序要使用多点触屏上的基本双点触摸功能,如掐捏手势,但不需要独立的轨迹跟踪。该功能是touchscreen功能的一个超集。

备注:

声明该功能,暗示着也声明了android.hardware.touchscreen父功能,除非该功能声明了android:required=”false”属性。

 

功能类型:Touchscreen

功能描述符:android.hardware.touchscreen.multitouch.distinct

说明:

子功能,应用程序要使用多点触屏设备的高级多点触摸功能,如两个以上完全独立的点的轨迹跟踪。它是multitouch功能的子集。

备注:

声明该功能,暗示着也声明了android.hardware.touchscreen.multitouch父功能,除非该功能声明了android:required=”false”属性。

 

功能类型:Touchscreen

功能描述符:android.hardware.touchscreen.multitouch.jazzhand

说明:

该应用程序要使用多点触屏设备的多点触摸功能,如五个以上完全独立的点的轨迹跟踪。它是multitouch功能的子集。

备注:

声明该功能,暗示着也声明了android.hardware.touchscreen.multitouch父功能,除非该功能声明了android:required=”false”属性。

 

功能类型:USB

功能描述符:android.hardware.usb.host

说明:

应用程序要使用USB主机模式功能(应用程序以主机的方式连接到USB设备上)

备注:

 

功能类型:USB

功能描述符:android.hardware.usb.accessory

说明:

应用程序要使用访问USB的功能(应用程序以USB设备的方式连接到USB主机上)。

备注:

 

功能类型:Wifi

功能描述符:Android.hardware.wifi

说明:

应用程序要使用设备上的802.11网络(wifi)功能。

备注:

 

posted @ 2012-05-29 11:53  andriod2012  阅读(2613)  评论(0编辑  收藏  举报