Developer Console

Identifying Fire TV Devices

Most Amazon Fire TV developers build apps for both Google Play and the Amazon Appstore, using the same Android-based code for both app markets and devices. Because Amazon devices don't use Google services (they use Amazon services and APIs instead), you might need to target your code in different ways. Additionally, within Fire OS, there are several versions:

  • Fire OS 5: Based on Android 5.1 (Lollipop, API level 22)
  • Fire OS 6: Based on Android 7.1 (Nougat, API level 25)
  • Fire OS 7: Based on Android 9 (Pie, API level 28)
  • Fire OS 8: Based on Android 10 (API Level 29) and Android 11 (API level 30)

This documentation provides details on identifying Amazon devices based on features, models, and API levels. You can find details about which Fire TV device has which Fire OS version in the Fire TV Device Specifications.

Reasons for Checking the Amazon Fire TV Device

You might want to check for the Amazon Fire TV device in your code for a number of reasons:

  • You have Android 10 (API level 29) or Android 11 (API level 30) features that are supported only on Fire OS 8 devices.
  • You have Pie-specific (API level 27 and up) features that are supported only on Fire OS 7 devices.
  • You have Nougat-specific (API level 25 and up) features that are supported only on Fire OS 6 devices.
  • You want to determine whether the app needs to tear down the DRM and HW decoding pipeline in their onPause() method (which is needed for Fire TV -1st Gendue to limited handling of multiple DRM contexts).

Identify Amazon Devices by Feature and Model

You can identify Amazon Fire TV devices by looking for amazon.hardware.fire_tv as a feature. You can also use patterns in the android.os.Build.MODEL. See the Fire TV Device Specifications for information about each device's build model. The following image shows the build model for each device. (You can see this dialog when you upload your APK into the Dev Console.)

Fire TV device model names
Fire TV device model names
Fire TV Device Build Model Android Level Fire OS Version
Redmi 108cm (43 inches) 4K Ultra HD smart LED Fire TV (2023) AFTBTX4 Android Level 28 (Android 9) Fire OS 7
TCL Class S3 1080p LED Smart TV with Fire TV (2023) AFTMD002 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 2nd Gen (2023) - 16 GB AFTKRT Android Level 30 (Android 11) Fire OS 8
Fire TV Stick 4K - 2nd Gen (2023) - 8 GB AFTKM Android Level 30 (Android 11) Fire OS 8
TCL 32" FHD, 40" FHD Fire TV (2023) AFTSHN02 Android Level 28 (Android 9) Fire OS 7
Fire TV - TCL S4 Series 4K UHD HDR LED (2023) AFTMD001 Android Level 28 (Android 9) Fire OS 7
Fire TV - TCL Q6 4K QLED HDR (2023) AFTMD001 Android Level 28 (Android 9) Fire OS 7
Fire TV 2-Series (2023) AFTKA002 / AFTKAUK002 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2022) AFTHA004 Android Level 28 (Android 9) Fire OS 7
BMW (2022) AFTLBT962E2 Android Level 28 (Android 9) Fire OS 7
Echo Show 15 (2021) AEOHY Android Level 28 (Android 9) Fire OS 7
Fire TV Omni QLED Series (2022) AFTTIFF43 Android Level 28 (Android 9) Fire OS 7
Fire TV Cube - 3rd Gen (2022) AFTGAZL Android Level 28 (Android 9) Fire OS 7
Xiaomi F2 4K - Fire TV (2022) AFTANNA0 Android Level 28 (Android 9) Fire OS 7
Hisense U6 4K UHD - Fire TV (2022) AFTHA001 Android Level 28 (Android 9) Fire OS 7
Funai 4K - Fire TV (2022) AFTMON001, AFTMON002 Android Level 28 (Android 9) Fire OS 7
JVC 4K - Fire TV with Freeview Play (2021) AFTJULI1 Android Level 28 (Android 9) Fire OS 7
ok 4K - Fire TV (2021) AFTANNA0 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K Far-field UHD - Fire TV (2021) AFTHA003 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 1st Gen (2021) AFTKA Android Level 28 (Android 9) Fire OS 7
Stellantis (Jeep) - Wagoneer/Grand Wagoneer AFTLFT962X3 Android Level 28 (Android 9) Fire OS 7
Fire TV Omni Series (2021) AFTTIFF43 Android Level 28 (Android 9) Fire OS 7
Fire TV 4-Series (2021) AFTTI43 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2021) AFTHA001 Android Level 28 (Android 9) Fire OS 7
AmazonBasics 4K - Fire TV (2020) AFTPR001 Android Level 28 (Android 9) Fire OS 7
AmazonBasics HD/FHD - Fire TV (2020) AFTBU001 API Level 25 (Android 7.1) Fire OS 6
Technika 4K - Fire TV (2020) `` Android Level 28 (Android 9) Fire OS 7
JVC 2K - Fire TV (2020) AFTWMST22 Android Level 28 (Android 9) Fire OS 7
Onida HD/FHD - Fire TV (2020) [Available in two sizes] AFTTIFF55 API Level 25 (Android 7.1) Fire OS 6
ok 4K - Fire TV (2020) AFTWI001 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick - 3rd Gen (2020) AFTSSS Android Level 28 (Android 9) Fire OS 7
Fire TV Stick Lite - 1st Gen (2020) AFTSS Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2020) AFTDCT31 Android Level 28 (Android 9) Fire OS 7
Insignia 4K UHD - Fire TV (2020) AFTDCT31 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick - 2nd Gen (2016-2019) AFTT Android Level 22 (Android 5.1) Fire OS 5
Toshiba HD - Fire TV (2018-2020) AFTBAMR311 API Level 25 (Android 7.1) Fire OS 6
Insignia HD - Fire TV (2018-2020) AFTEAMR311 API Level 25 (Android 7.1) Fire OS 6
Toshiba 4K - Fire TV (2018-2019) AFTKMST12 API Level 25 (Android 7.1) Fire OS 6
Onida HD - Fire TV (2019) AFTLE API Level 25 (Android 7.1) Fire OS 6
Fire TV Cube - 2nd Gen (2019) AFTR Android Level 28 (Android 9) Fire OS 7
Grundig OLED 4K - Fire TV (2019) AFTEUFF014 Android Level 28 (Android 9) Fire OS 7
Grundig Vision 7, 4K - Fire TV (2019) AFTEU014 Android Level 28 (Android 9) Fire OS 7
JVC 4K - Fire TV (2019) AFTSO001 Android Level 28 (Android 9) Fire OS 7
Nebula Soundbar - Fire TV Edition (2019) AFTMM API Level 25 (Android 7.1) Fire OS 6
Grundig Vision 6 HD - Fire TV (2019) AFTEU011 Android Level 28 (Android 9) Fire OS 7
Insignia 4K - Fire TV (2018) AFTJMST12 API Level 25 (Android 7.1) Fire OS 6
Fire TV Cube - 1st Gen (2018) AFTA API Level 25 (Android 7.1) Fire OS 6
Fire TV Stick 4K - 1st Gen (2018) AFTMM API Level 25 (Android 7.1) Fire OS 6
Fire TV Stick - Basic Edition (2017) AFTT Android Level 22 (Android 5.1) Fire OS 5
Element 4K - Fire TV (2017) AFTRS Android Level 22 (Android 5.1) Fire OS 5
Fire TV - 3rd Gen (2017) AFTN API Level 25 (Android 7.1) Fire OS 6
Fire TV - 2nd Gen (2015) AFTS Android Level 22 (Android 5.1) Fire OS 5
Fire TV Stick - 1st Gen (2014) AFTM Android Level 22 (Android 5.1) Fire OS 5
Fire TV - 1st Gen (2014) AFTB Android Level 22 (Android 5.1) Fire OS 5
TCL Soundbar with Built-in Subwoofer - Fire TV Edition (2019) AFTMM API Level 25 (Android 7.1) Fire OS 6
Toshiba V35 Series LED FHD/HD - Fire TV (2021) AFTHA002 Android Level 28 (Android 9) Fire OS 7

All Fire TV devices can be identified through the feature amazon.hardware.fire_tv. You get the feature by calling the getPackageManager() method on the Context object and checking whether hasSystemFeature() returns com.hardware.amazon.fire_tv. The following code shows a sample:

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

if (getPackageManager().hasSystemFeature(AMAZON_FEATURE_FIRE_TV)) {
 Log.v(TAG, "Yes, this is a Fire TV device.");
} else {
 Log.v(TAG, "No, this is not a Fire TV device.");
}

You can also identify Fire TV devices by combining the android.os.Build.MODEL with the Build.MANUFACTURER (which returns Amazon).

However, as more Amazon-powered devices come to market with non-Amazon manufacturers, combining the android.os.Build.MODEL with the Build.MANUFACTURER may not always work. Because of this, include a sensible fallback approach for future Amazon Fire TV devices based on the com.hardware.amazon.fire_tv feature. Here's a code sample that looks for the model but falls back on the feature:

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

if (AMAZON_MODEL.matches("AFTN")) {
 Log.v(TAG, "Yes, this is a Fire TV 3rd Gen device");
} else if (getPackageManager().hasSystemFeature(AMAZON_FEATURE_FIRE_TV)) {
 Log.v(TAG, "Yes, this is a Fire TV device.");
} else {
 Log.v(TAG, "No, this is not a Fire TV device");
}

Check for the API Level

To implement conditional behavior based on Android API level, you can check for the API level of the device using SDK_INT. For example, the following code checks whether the version is greater than or equal to API level 25:

if (Build.VERSION.SDK_INT >= 25) {
 Log.v(TAG, "Yes, this is an API level 25 or higher device");
} else {
 Log.v(TAG, "No, this is not an API level 25 or higher device");
}

In this case, the code would target Fire OS 6 and higher (API level 25+) and exclude any Fire OS 5 devices (API level 22). If you want to target only Fire OS 5 devices, you would use a similar logic:

if (Build.VERSION.SDK_INT <= 22) {
 Log.v(TAG, "Yes, this is an API level 22 or lower device");
} else {
 Log.v(TAG, "No, this is not an API level 22 or lower device");
}

Check Whether 4K Is Supported

To check whether 4K is supported, use the standard Android Display.Mode APIs, which were introduced in Android 6.0. Display.Mode allows applications to query physical display sizes and switch to a different HDMI display mode.

For Fire OS 5 devices (which are based on Android 5.1, before Display.Mode was released), Display.Mode is also available (due to some backporting of these APIs into Fire OS) but reflection must be used. Amazon provides a 4K Extension Library that wraps these Android APIs via reflection and provides a simple interface for them. See APIs for HDMI Mode Switch for more details.

adb Commands to Check for Properties or Features

If you want to see which properties or features a device has using adb, you can do the following:

  1. Connect to ADB.
  2. To see the device's properties, run adb shell getprop.
  3. To see the device's features, run adb shell pm list features.

Last updated: Feb 09, 2024