开发者控制台

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

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

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

Android API级别(<uses-sdk>)

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

有关Android API级别的更多信息(包括最低API级别要求),请参阅设备筛选和兼容性

硬件权限(<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 允许出于测试的目的,将模拟位置和位置提供者注入LocationManager服务。位置和状态值会覆盖网络、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:required="false"声明这一点。注意:​ 如果希望带有触摸屏的设备可以使用您的应用,则必须通过android.hardware.touchscreen声明触摸屏为必需功能。
android.hardware.faketouch.multitouch.distinct 该应用分别跟踪伪触摸界面上的两个或更多“手指”。这是伪触摸功能的超集。如果声明为“必需”,则表示对于分别跟踪两根或更多手指的事件,只有在设备支持触摸模拟的情况下,该应用才与该设备兼容。 
android.hardware.faketouch.multitouch.jazzhand 该应用分别跟踪伪触摸界面上的五个或更多“手指”。这是伪触摸功能的超集。当声明“根据需要”时,这表示对于支持分别跟踪五个或更多手指的事件,只有在设备支持触摸模拟时,该应用才与该设备兼容。
android.hardware.touchscreen 如果应用会对相比基本触摸事件更具互动性的手势(如抛掷)使用触摸屏功能,请将此元素设置为必需。注意:默认情况下假定/隐含此功能。这是基本伪触摸功能的超集。默认情况下,在您上传应用程序文件并确定您应用的支持目标后,您的二进制文件将自动显示支持的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规范可在此页面上找到。 

属性 描述
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规范中所述的设备筛选条件,相应Android规范可以在<supports-gl-texture>上找到。

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

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

Last updated: 2023年10月2日