uses-feature
) and uses-permission
elements). However, for API level 23 and higher devices, permissions need to be checked at runtime, per Android's guidelines — see Working with System Permissions, specifically Requesting Permissions at Run Time.<uses-amzn-sdk>
. This tag relates to the old Fire OS SDK add-on. Check to see if you declare <uses-amzn-sdk>
in your AndroidManifest.xml file. If so, remove this tag (and any dependencies on it in your code). The <uses-amzn-sdk>
tag is no longer used in apps on Amazon Fire TV or Fire Tablets.UnityPlayerNativeActivity
was the default activity), your game might have a 1-2 second blank white screen before the game loads for the very first time in the memory. The issue is due to Android N's cold start while the app loads to memory (and waits for all the work to be completed). This issue happens for all Nougat devices and is not specific to Fire OS 6.UnityPlayerNativeActivity
to UnityPlayerActivity
, available since Unity 5.0b12. For more information, see Android Manifest in the Unity documentation.Build.VERSION.SDK_INT
is greater than or equal to 25
(Nougat's API level) to target Fire OS 6 devices. See Supporting Different Platform Versions.minSdkVersion
to 22 or lower (set it to the minimum API level your app needs). This will make your app available to all Amazon Fire TV devices (running both Fire OS 5 and 6). Set the targetSdkVersion
to the highest API level that you've tested your app against.minSdkVersion
attribute sets the minimum SDK level that your app needs in order to function properly. (Devices that don't support that API level shouldn't allow the app to be installed on that unsupported device.)minSdkVersion
to 22, you're saying that your app requires the device to have at least API level 22 for it to function properly.minSdkVersion
to 22, your app will also install on any devices that have a higher API level (such as 25), because Android levels are backwards-compatible. API level 25 usually includes all the APIs for levels 1 through 25 (each release adds to the previous).minSdkVersion
to 22, your app will install on Fire OS 5 devices that don't have level 25 APIs. Therefore, you must code in a defensive way to check the device level and fall back to alternatives if the device doesn't support that API level. Your code might look something like this:else
logic.targetSdkVersion
is not specified, it uses the same value as the minSdkVersion
. The targetSdkVersion
lets you set the latest API level that you have tested your app against. Based on this value, Android will ensure proper behavior on devices at this level.targetSdkVersion
to 23 or higher (Marshmallow's release), Android will apply the runtime permission checking features included in Marshmallow. But if targetSdkVersion
is lower than 23 (prior to the runtime permission checking release in Marshmallow), Android will not apply this behavior to your app.targetSdkVersion
to 25.maxSdkVersion
attribute isn't recommended, but if you wanted to make your app available only on on Fire OS 5 devices, you could set the maxSdkVersion
to 22. If you wanted to make your app available only on Fire OS 6 devices, you could set your minSdkVersion
to 25.