I have recently got my app rejected from Amazon Mobile App Distribution Portal with the argument that the Menu->"Rate the App" option redirects to Google Play Store.
In order to be accepted it should redirect to the Amazon Appstore, the Download URL must be http://www.amazon.com/gp/mas/dl/android?p=packagename which of course makes sense.
So I need something like:
String url = isKindle
? "http://www.amazon.com/gp/mas/dl/android?p=packagename"
: "https://play.google.com/store/apps/details?id=packagename";
The question is: how can I distinguish if the app runs on Kindle Fire or on a "native" Android system?
You can read these:
android.os.Build.MANUFACTURER
android.os.Build.MODEL
On a Kindle Fire these return the values 'Amazon' and 'Kindle Fire'.
http://developer.android.com/reference/android/os/Build.html
That should be sufficient for your app to make a determination that it's running on a Kindle Fire.
UPDATE:
The preceding works for the gen 1 Kindle Fire.
Newer models of the Kindle Fire have different values for android.os.Build.MODEL.
https://developer.amazon.com/sdk/fire/specifications.html
Good news! Apparently the latest version of the Amazon store finally sets PackageManager.getInstallerPackageName()
to "com.amazon.venezia"
to contrast with Google Play's "com.android.vending"
.
Older apps will still return null
, and I haven't actually verified the API or whether installing the new Store and then upgrading an older app will set the installer. But installing a new app and checking /data/system/packages.xml
indicates installer
is correctly set.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With