开发者控制台

识别Fire TV(不在中国发售)设备

识别Fire TV设备(不在中国发售)

大多数亚马逊Fire TV开发者同时为Google Play和亚马逊应用商店构建应用,对这两个应用市场和设备使用基于Android的相同代码。由于亚马逊设备不使用Google服务(使用亚马逊服务和API),因此可能需要以不同的方式确定目标代码。此外,Fire OS也有多个版本:

  • Fire OS 5: 基于Android 5.1(Lollipop,API级别22)
  • Fire OS 6: 基于Android 7.1(Nougat,API级别25)
  • Fire OS 7: 基于Android 9(Pie,API级别28)
  • Fire OS 8: 基于Android 10(API级别29)和Android 11(API级别30)。

本文档提供有关根据功能、型号和API级别识别Amazon设备的详细信息。在Fire TV设备规格中,可找到有关Fire TV设备相应的Fire OS版本的详细信息。

检查亚马逊Fire TV设备的原因

由于各种原因,可能需要在代码中检查亚马逊Fire TV设备:

  • 具有仅在Fire OS 8设备上受支持的Android 10(API级别29)或Android 11(API 级别 30)功能。
  • 具有仅在Fire OS 7设备上受支持的与Pie相关的(API级别27及更高级别)功能。
  • 具有仅在Fire OS 6设备上支持的与Nougat相关的(API级别25及更高级别)功能。
  • 若需确定应用是否需要在其onPause()方法中拆除DRM和HW解码管道(由于对多个DRM上下文的处理能力有限,Fire TV第1代需要该做法)。

按功能和型号识别亚马逊设备

可通过查找amazon.hardware.fire_tv功能,识别亚马逊Fire TV设备。也可使用android.os.Build.MODEL中的模式。有关每个设备构建型号的信息,请参阅Fire TV设备规格。下图显示了每个设备的构建型号。(将APK上传到开发者控制台时,可看到该对话框。)

Fire TV设备型号名称
Fire TV设备型号名称
Fire TV设备 构建型号 Android级别 Fire OS版本
Panasonic OLED TV VIERA (内置Fire TV)(2024) AFTTOR001/AFTWYM01 Android级别30 (Android 11) Fire OS 8
Panasonic Fire TV (2024) AFTGOLDFF Android级别30 (Android 11) Fire OS 8
Fire TV - TCL S4/S5/Q5/Q6系列4K超高清HDR LED (2024) AFTDEC012E API级别30 Fire OS 8
Redmi 108cm(43英寸)4K超高清智能LED Fire TV (2023) AFTBTX4 Android级别28 (Android 9) Fire OS 7
TCL Class S3 1080p LED智能电视(采用Fire TV)(2023) AFTMD002 Android级别28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 第2代 (2023) - 16GB AFTKRT Android级别30 (Android 11) Fire OS 8
Fire TV Stick 4K - 第2代 (2023) - 8GB AFTKM Android级别30 (Android 11) Fire OS 8
TCL 32"全高清、40"全高清Fire TV (2023) AFTSHN02 Android级别28 (Android 9) Fire OS 7
Fire TV - TCL S4系列4K超高清HDR LED (2023) AFTMD001 Android级别28 (Android 9) Fire OS 7
Fire TV - TCL Q6 4K QLED HDR (2023) AFTMD001 Android级别28 (Android 9) Fire OS 7
Fire TV 2系列 (2023) AFTKA002/AFTKAUK002 Android级别28 (Android 9) Fire OS 7
Toshiba 4K超高清 - Fire TV (2022) AFTHA004 Android级别28 (Android 9) Fire OS 7
BMW (2022) AFTLBT962E2 Android级别28 (Android 9) Fire OS 7
Echo Show 15 (2021) AEOHY Android级别28 (Android 9) Fire OS 7
Fire TV Omni QLED系列 (2022) AFTTIFF43 Android级别28 (Android 9) Fire OS 7
Fire TV Cube - 第3代 (2022) AFTGAZL Android级别28 (Android 9) Fire OS 7
小米F2 4K - Fire TV (2022) AFTANNA0 Android级别28 (Android 9) Fire OS 7
海信U6 4K超高清 - Fire TV (2022) AFTHA001 Android级别28 (Android 9) Fire OS 7
Funai 4K - Fire TV (2022) AFTMON001、AFTMON002 Android级别28 (Android 9) Fire OS 7
JVC 4K - 带Freeview Play的Fire TV (2021) AFTJULI1 Android级别28 (Android 9) Fire OS 7
ok 4K - Fire TV (2021) AFTANNA0 Android级别28 (Android 9) Fire OS 7
Toshiba 4K远场超高清 - Fire TV (2021) AFTHA003 Android级别28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 第1代 (2021) AFTKA Android级别28 (Android 9) Fire OS 7
Stellantis (Jeep) - Wagoneer/Grand Wagoneer(不在中国发售) AFTLFT962X3 Android级别28 (Android 9) Fire OS 7
Fire TV Omni系列 (2021) AFTTIFF43 Android级别28 (Android 9) Fire OS 7
Fire TV 4-系列 (2021) AFTTI43 Android级别28 (Android 9) Fire OS 7
Toshiba 4K超高清 - Fire TV (2021) AFTHA001 Android级别28 (Android 9) Fire OS 7
AmazonBasics 4K - Fire TV (2020) AFTPR001 Android级别28 (Android 9) Fire OS 7
AmazonBasics高清/全高清 - Fire TV (2020) AFTBU001 API级别25 (Android 7.1) Fire OS 6
Technika 4K - Fire TV (2020) `` Android级别28 (Android 9) Fire OS 7
JVC 2K - Fire TV (2020) AFTWMST22 Android级别28 (Android 9) Fire OS 7
Onida高清/全高清 - Fire TV (2020) [两种尺寸可选] AFTTIFF55 API级别25 (Android 7.1) Fire OS 6
ok 4K - Fire TV (2020) AFTWI001 Android级别28 (Android 9) Fire OS 7
Fire TV Stick - 第3代 (2020) AFTSSS Android级别28 (Android 9) Fire OS 7
Fire TV Stick Lite - 第1代 (2020) AFTSS Android级别28 (Android 9) Fire OS 7
Toshiba 4K超高清 - Fire TV (2020) AFTDCT31 Android级别28 (Android 9) Fire OS 7
Insignia 4K超高清 - Fire TV (2020) AFTDCT31 Android级别28 (Android 9) Fire OS 7
Fire TV Stick - 第2代 (2016-2019) AFTT Android级别22 (Android 5.1) Fire OS 5
Toshiba高清 - Fire TV (2018-2020) AFTBAMR311 API级别25 (Android 7.1) Fire OS 6
Insignia高清 - Fire TV (2018-2020) AFTEAMR311 API级别25 (Android 7.1) Fire OS 6
Toshiba 4K - Fire TV (2018-2019) AFTKMST12 API级别25 (Android 7.1) Fire OS 6
Onida高清 - Fire TV (2019) AFTLE API级别25 (Android 7.1) Fire OS 6
Fire TV Cube - 第2代 (2019) AFTR Android级别28 (Android 9) Fire OS 7
Grundig OLED 4K - Fire TV (2019) AFTEUFF014 Android级别28 (Android 9) Fire OS 7
Grundig Vision 7, 4K - Fire TV (2019) AFTEU014 Android级别28 (Android 9) Fire OS 7
JVC 4K - Fire TV (2019) AFTSO001 Android级别28 (Android 9) Fire OS 7
Nebula条形音箱 - Fire TV Edition (2019) AFTMM API级别25 (Android 7.1) Fire OS 6
Grundig Vision 6高清 - Fire TV (2019) AFTEU011 Android级别28 (Android 9) Fire OS 7
Insignia 4K - Fire TV (2018) AFTJMST12 API级别25 (Android 7.1) Fire OS 6
Fire TV Cube - 第1代(2018) AFTA API级别25 (Android 7.1) Fire OS 6
Fire TV Stick 4K - 第1代 (2018) AFTMM API级别25 (Android 7.1) Fire OS 6
Fire TV Stick - Basic Edition (2017) AFTT Android级别22 (Android 5.1) Fire OS 5
Element 4K - Fire TV (2017) AFTRS Android级别22 (Android 5.1) Fire OS 5
Fire TV - 第3代 (2017) AFTN API级别25 (Android 7.1) Fire OS 6
Fire TV - 第2代 (2015) AFTS Android级别22 (Android 5.1) Fire OS 5
Fire TV Stick - 第1代(2014) AFTM Android级别22 (Android 5.1) Fire OS 5
Fire TV - 第1代 (2014) AFTB Android级别22 (Android 5.1) Fire OS 5
TCL条形音箱,配备内置低音炮 - Fire TV Edition (2019) AFTMM API级别25 (Android 7.1) Fire OS 6
Toshiba V35系列LED全高清/高清 - Fire TV (2021) AFTHA002 Android级别28 (Android 9) Fire OS 7

所有Fire TV设备均可通过功能amazon.hardware.fire_tv进行识别。可通过对Context对象调用getPackageManager()方法和检查hasSystemFeature()是否返回com.hardware.amazon.fire_tv,获得该功能。下列代码显示一个示例:

final String AMAZON_FEATURE_FIRE_TV = "amazon.hardware.fire_tv";

if (getPackageManager().hasSystemFeature(AMAZON_FEATURE_FIRE_TV)) {
 Log.v(TAG, "是,这是Fire TV设备。");
} else {
 Log.v(TAG, "否,这不是Fire TV设备。");
}

还可通过将android.os.Build.MODELBuild.MANUFACTURER(返回Amazon)相结合,识别Fire TV设备。

但随着非亚马逊制造商将越来越多由亚马逊提供技术支持的设备推出市场,将android.os.Build.MODELBuild.MANUFACTURER相结合可能并不总是起作用。因此,应为基于com.hardware.amazon.fire_tv功能的未来亚马逊Fire TV设备提供合理的回退方法。以下是一个代码示例,查找型号,但回退到该功能:

final String AMAZON_FEATURE_FIRE_TV = "amazon.hardware.fire_tv";
String AMAZON_MODEL = Build.MODEL;

if (AMAZON_MODEL.matches("AFTN")) {
 Log.v(TAG, "是,这是Fire TV第3代设备");
} else if (getPackageManager().hasSystemFeature(AMAZON_FEATURE_FIRE_TV)) {
 Log.v(TAG, "是,这是Fire TV设备。");
} else {
 Log.v(TAG, "否,这不是Fire TV设备");
}

检查API级别

如需实现基于Android API级别的条件行为,可使用SDK_INT检查设备的API级别。例如,以下代码检查版本是否大于等于API级别25:

if (Build.VERSION.SDK_INT >= 25) {
 Log.v(TAG, "是,这台设备具备API级别25或更高版本");
} else {
 Log.v(TAG, "不是,这台设备不具备API级别25或更高版本");
}

在本例中,代码将针对Fire OS 6或更高版本(API级别25或更高级别),并排除任何Fire OS 5设备(API级别22)。若只想针对于Fire OS 5设备,可使用类似的逻辑:

if (Build.VERSION.SDK_INT <= 22) {
 Log.v(TAG, "是,这台设备具备API级别22或更低版本");
} else {
 Log.v(TAG, "否,这台设备具备API级别22或更低版本");
}

检查是否支持4K

如需检查是否支持4K,请使用Android 6.0中引入的标准Android Display.Mode API。通过Display.mode,应用可查询物理显示屏尺寸并切换到不同的HDMI显示模式。

对于Fire OS 5设备(基于Android 5.1,在Display.Mode发布之前推出),Display.Mode也可用(由于这些API向后移植到Fire OS),但必须使用反射。亚马逊提供一个4K扩展库,通过反射机制封装Android API,并提供简单的接口。有关更多详细信息,请参阅《用于HDMI模式切换的API)

使用adb命令检查属性或功能

若需使用adb查看设备所具有的属性或功能,可执行以下操作:

  1. 连接到ADB
  2. 如需查看设备的属性,请运行adb shell getprop
  3. 如需查看设备的功能,请运行adb shell pm list features

Last updated: 2024年2月9日