亚马逊应用商店支持的清单筛选条件
可以在AndroidManifest.xml文件中使用以下元素,来控制在亚马逊应用商店中对Fire设备和Android移动设备的筛选。可以使用可用筛选条件的任意组合。有关适用于Fire设备的清单元素的详细信息,请参阅设备筛选和兼容性。
- Android API级别 (<uses-sdk>)
- 硬件权限 (<uses-permission>)
- 软硬件功能 (<uses-feature>)
- OpenGL版本 (<uses-feature>)
- OpenGL纹理 (<supports-gl-texture>)
- 支持屏幕 (<supports-screens>)
- 兼容屏幕 (<compatible-screens>)
Android API级别 (<uses-sdk>)
亚马逊应用商店使用该元素来根据minSdkVersion
和maxSdkVersion
的值进行设备筛选。可以在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: 2024年11月5日