开发人员控制台

亚马逊应用商店支持的清单筛选条件


亚马逊应用商店支持的清单筛选条件

您可以在AndroidManifest.xml文件中使用以下元素,来控制在亚马逊应用商店中对Fire设备和非亚马逊设备的筛选。您可以使用可用筛选条件的任意组合。有关适用于Fire设备的清单元素的详细信息,请参阅设备筛选和兼容性

Android API级别(<uses-sdk>)

应用商店使用该元素来根据minSdkVersionmaxSdkVersion的值进行设备筛选。可以在Android文档的<uses-sdk>中找到有关<uses-sdk>的更多文档。

硬件权限(<uses-permission>)

清单权限通常用于授予或限制对特定API和服务的访问权限。<uses-permission>中提供了完整的清单权限列表。清单权限还可用于定义硬件要求。如果您在清单中指定硬件权限,亚马逊应用商店会假定您的应用需要底层硬件并筛选掉任何不符合要求的设备。

例如,<uses-permission>取值为android.permission.ACCESS_FINE_LOCATION则意味着存在android.hardware.location.gps的硬件要求,并且应用商店将筛选掉任何没有GPS硬件的设备。为android.hardware.location.gps添加<uses-feature>元素并将android:require设置为false时,会覆盖GPS的隐式要求。

隐含功能要求的权限中提供了导致隐含功能的完整权限列表。

类别 硬件权限 描述
蓝牙 android.permission.BLUETOOTH 允许应用连接到配对的蓝牙设备。
相机 android.permission.CAMERA 要求能够访问相机。
位置 android.permission.ALLOW_MOCK_LOCATION 允许将模拟位置和位置提供方状态注入位置管理器以便进行测试。位置和状态值会覆盖网络、GPS或其他位置提供方所生成的实际位置和状态信息。
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 允许应用访问额外的位置提供方命令 
android.permission.INSTALL_LOCATION_PROVIDER 允许应用将位置提供方程序安装到位置管理器中。
android.permission.ACCESS_COARSE_LOCATION 允许应用访问大概位置。 
android.permission.ACCESS_FINE_LOCATION 允许应用访问精确位置。 
麦克风 android.permission.RECORD_AUDIO 允许应用录音。 
Wi-Fi android.permission.ACCESS_WIFI_STATE 允许应用访问有关Wi-Fi网络的信息。 
android.permission.CHANGE_WIFI_STATE 允许应用更改Wi-Fi连接状态。 
android.permission.CHANGE_WIFI_MULTICAST_STATE 允许应用更改Wi-Fi多播状态。

软硬件功能(<uses-feature>)

下面列出了应用商店支持的软硬件功能。有关属性、描述和筛选规则,请参阅本页面。 

如上所述,子功能默认情况下设置为必需(这被称为隐式权限)。要覆盖这些权限,请为每个子权限添加一个<uses-feature>元素,并将required设置为false

例如,如果您的清单包含以下条目:

<uses-permission android:name="android.permission.CAMERA" />

您还应添加以下两个条目:

<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
类别 功能 描述
音频 android.hardware.audio.low_latency 该应用使用设备上的低延迟音频管道,对声音输入或输出的任何延迟或滞后非常敏感。
蓝牙 android.hardware.bluetooth 该应用使用设备中的蓝牙无线功能。
android.hardware.bluetooth_le 该应用使用设备中的低功耗蓝牙无线功能。
相机 android.hardware.camera 该应用使用设备摄像头。如果设备支持多个摄像头,则该应用使用后置摄像头。
android.hardware.camera.any 该应用使用至少一个朝向任意方向的摄像头,或者使用外部摄像头设备(如果已连接)。如果后置摄像头不是必需的,使用此项作为首选项而不是“android.hardware.camera”。 
android.camera.external 该应用使用外部摄像头设备(如果已连接)。
android.hardware.camera.autofocus 子功能。该应用使用设备摄像头的自动对焦功能。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.hardware.camera父功能。此外,如果您将父功能设置为必需功能,则该子功能默认情况下也是必需的。 
android.hardware.camera.flash 子功能。该应用使用设备摄像头的闪光灯。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.hardware.camera父功能。此外,如果您将父功能设置为必需功能,则该子功能默认情况下也是必需的。
android.hardware.camera.front 子功能。该应用使用设备的前置摄像头。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.hardware.camera父功能。  此外,如果您将父功能设置为必需功能,则该子功能默认情况下也是必需的。
动态壁纸 android.software.live_wallpaper 该应用使用或提供动态壁纸,应仅安装在支持动态壁纸的设备上。
位置 android.hardware.location 该应用使用设备上的一个或多个功能来确定位置,如GPS位置、网络位置或蜂窝定位。
android.hardware.location.network 子功能。该应用使用从设备上支持的基于网络的地理位置系统获取的粗略位置坐标。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.hardware.location父功能。
android.hardware.location.gps 子功能。该应用使用从设备上的全球定位系统接收器获取的精确位置坐标。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.hardware.location父功能。
麦克风 android.hardware.microphone 该应用使用设备上的麦克风。 
近场通信(NFC) android.hardware.nfc 该应用使用设备上的近场通信无线电功能。
android.hardware.nfc.hce 该应用使用设备上的近场通信卡模拟功能。
传感器 android.hardware.sensor.accelerometer 该应用使用设备上的加速度计的运动读数。
android.hardware.sensor.barometer 该应用使用设备上的气压计。
android.hardware.sensor.compass 该应用使用设备上的磁力计(指南针)的方向读数。
android.hardware.sensor.gyroscope 该应用使用设备的陀螺仪传感器。
android.hardware.sensor.light 该应用使用设备的光线传感器。
android.hardware.sensor.proximity 该应用使用设备的邻近传感器。
android.hardware.sensor.stepcounter 该应用使用设备的计步器
android.hardware.sensor.stepdetector 该应用使用设备的步测器
SIP/VoIP android.software.sip 该应用使用设备上的SIP服务,并且只应安装在支持SIP的设备上。
android.software.sip.voip 子功能。该应用使用设备上的基于SIP的VoIP服务。注意:​ 除非使用android:required="false"声明,否则此子功能隐式声明android.software.sip父功能。
电视 android.hardware.type.television 该应用旨在提供电视机用户体验。
触摸屏 android.hardware.faketouch 当声明“需要”时,表示只有在设备提供模拟触摸屏(“伪触摸”界面)时,该应用才与该设备兼容。注意:​ 由于应用默认需要android.hardware.touchscreen功能,如果您希望您的应用对提供伪触摸界面的设备可用,则还必须通过<uses-feature android:name="android.hardware.touchscreen" android:required="false" />来明确声明触摸屏不是必需的。
android.hardware.faketouch.multitouch.distinct 该应用分别跟踪伪触摸界面上的两个或更多“手指”。这是伪触摸功能的超集。当声明“需要”时,表示对于分别跟踪两个或更多手指的事件,只有设备在支持触摸模拟或更好的功能时,该应用才与该设备兼容。 
android.hardware.faketouch.multitouch.jazzhand 该应用分别跟踪伪触摸界面上的五个或更多“手指”。这是伪触摸功能的超集。当声明“需要”时,表示对于分别跟踪五个或更多手指的事件,只有在设备支持触摸模拟时,该应用才与该设备兼容。 
android.hardware.touchscreen 该应用对相比基本的触摸事件更具互动性的手势(如抛掷)使用触摸屏功能。这是基本伪触摸功能的超集。请注意,如果您为触摸屏功能添加了android:required="false",则在您提交应用时,APK将自动显示支持的Fire TV。
android.hardware.touchscreen.multitouch 该应用在设备屏幕上使用基本的两点触摸功能(例如捏手势),但不需要独立跟踪触摸。这是触摸屏功能的超集。注意:​ 除非使用android:required="false"声明,否则这会隐式声明android.hardware.touchscreen父功能。
android.hardware.touchscreen.multitouch.distinct 该应用在设备屏幕上使用先进的多点触控功能,例如用于完全独立地追踪两个或多个点。这是多点触控功能的超集。注意:​ 除非使用android:required="false"声明,否则这会隐式声明android.hardware.touchscreen.multitouch父功能。
android.hardware.touchscreen.multitouch.jazzhand 该应用在设备屏幕上使用先进的多点触控功能,例如用于完全独立地追踪五个点。这是独特多点触控功能的超集。
USB android.hardware.usb.host 该应用使用USB主机模式功能(作为主机并连接到USB设备)。
android.hardware.usb.accessory 该应用使用USB附件功能(作为USB设备并连接到USB主机)。
Wi-Fi android.hardware.wifi 该应用使用设备上的802.11网络(Wi-Fi)功能。
android.hardware.wifi.direct 该应用使用设备上的Wi-Fi网络直连功能。

OpenGL版本(<uses-feature>)

<uses-feature>元素中,可以使用glEsVersion属性指定OpenGL版本。

<uses-feature> android:glEsVersion="<hexadecimal integer>" />

如果定义的OpenGL版本低于版本1.1(以“0x00002101”的形式写入清单),应用商店不会应用该筛选条件。如果定义了多个OpenGL版本,应用商店在筛选时将使用最高版本。

OpenGL纹理(<supports-gl-texture>)

每个<supports-gl-texture>元素声明一个该应用支持的单独纹理压缩格式。如果您的应用支持多种纹理压缩格式,可以声明多个<supports-gl-texture>元素。 如果清单中定义的OpenGL纹理至少有一个在设备上可用,则应用商店会将该设备视为兼容。可以在此页面上找到支持的纹理压缩格式的详细信息。 

支持屏幕(<supports-screens>)

此元素用于指定您的应用支持的屏幕尺寸。如果您的应用在针对不同屏幕尺寸进行调整时无法正常工作,您可以使用<supports-screens>的属性来控制是否分发您的应用到较小屏幕的设备,或者使用屏幕兼容模式扩展(放大)其UI以适应较大的屏幕。应用商店会应用Android规范中所述的设备筛选条件,可以在此页面上找到该规范。 

属性 描述
android:smallScreens 表示该应用是否支持较小的屏幕尺寸。小屏幕被定义为宽高比小于“普通”中等分辨率屏幕的屏幕。默认值为"true"。 
android:normalScreens 表示该应用是否支持“普通”屏幕尺寸。这通常是一个中等分辨率屏幕。不过,WQVGA低像素密度和WVGA高像素密度也视为“普通”屏幕尺寸。默认值为"true"
android:largeScreens 表示该应用是否支持较大的屏幕尺寸。大屏幕被定义为比“普通”屏幕大得多的屏幕。此属性的默认值实际上在一些Android版本中有所不同,因此建议您明确声明该属性。注意:​ 将<android.largeScreens>设置为"false"通常会启用屏幕兼容模式
android:xlargeScreens 表示该应用是否支持超大屏幕尺寸。超大屏幕被定义为比“大”屏幕大得多的屏幕,例如平板电脑(或更大的设备)。此属性的默认值实际上在一些Android版本中有所不同,因此建议您明确声明该属性。注意:​ 将<android.xlargeScreens>设置为"false"通常会启用屏幕兼容模式
android:requiresSmallestWidthDp 表示需要的最小smallestWidth值。smallestWidth是指您的应用UI必须可用的最小屏幕空间尺寸(以dp为单位)。这是可用屏幕的两个尺寸中最小的那个。因此,为了使设备与您的应用兼容,设备的最小smallestWidth值必须等于或大于此值。通常,为此属性提供的值是您的布局支持的“最小宽度”,而与屏幕的当前方向无关。

兼容屏幕(<compatible-screens>)

此元素用于指定与应用兼容的特定屏幕尺寸/像素密度组合。在清单中只允许<compatible-screens>元素的一个实例。应用商店会应用Android规范中所述的设备筛选条件,您可以在<supports-gl-texture>中找到该规范。

如果您只希望为您的应用设置最小屏幕尺寸,则应使用<supports-screens>元素。例如,如果您希望您的应用仅适用于超大屏幕设备,<supports-screens>元素允许您声明您的应用不支持普通屏幕尺寸。

属性 描述
android:screenSize=["small" | "normal" | "large" | "xlarge"] 必需。为此屏幕配置指定尺寸。
android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi" | "480"] 必需。为此屏幕配置指定像素密度。注意: 应用商店将480映射到xhdpi。