Got an app on Fire TV (or planning on submitting a new app) and wondering how to get it ready for the all-new Amazon Fire TV with 4K Ultra HD and HDR support. You’ve come to the right place!
The third generation Fire TV device has Fire OS 6, which is based on Android Nougat (Android 7.1.2, level 25). Since the underlying version of Android has changed from previous Fire TV devices, your existing Fire TV app or game may require minor updates in order to maintain compatibility. Moving to Nougat may require:
Targeting Fire OS 6
Some of the libraries on Nougat are not backward-compatible. Make sure you upgrade to the APIs compatible with Level 25 per the Android guidelines. See API differences between Levels 23 and 24 and API differences between Levels 24 and 25 for more details. Also, make sure that you bundle the correct Android support libraries with your app to avoid issues. See Support Library Packages for reference.
If you are declaring maxSDKVersion in your app manifest, please make sure that maxSDKVersion is set to at least 25 in order to utilize all the features on the all-new Amazon Fire TV. This is how it needs to be set: <uses-sdk android:maxSdkVersion="25" />
Managing runtime permissions
Once you target Fire OS 6, you will need to update your runtime permissions. As always, you need to declare all normal and dangerous permissions in your app’s manifest (through the uses-feature and uses-permission elements). If your app has a targetSDKVersion of 23 or higher, Android requires you to check permissions at runtime. This means that users grant permissions while your app is running, rather than on install. Because users now have the option to revoke individual permissions, be sure to always verify permissions every time you perform an operation that requires permissions. If a permission isn’t granted, be sure that your app gracefully handles these scenarios. You should also avoid requesting permissions for features that don’t exist on your targeted devices (for example, don’t ask for gyroscope access from a Fire TV app—there isn’t one). See Handling Runtime Permissions for more details.
Linking to private libraries
Android Nougat prevents apps from dynamically linking against non-NDK and private libraries, such as libsqlite.so. If your app is using any private libraries, you should make sure they are statically linked or publicly accessible through the NDK. Please refer to Linking to NDK libraries for more details.
For more information on developing for devices running on Fire OS 6, check out our documentation.