If you’re using the Android Market Manager library to simplify your app linking on your various app markets (such as the Amazon Appstore, Google Play, etc), then it’s time to grab an update. I just fixed several bugs, affecting the ability to show all of your apps for Google Play, the Amazon Appstore, and BlackBerry Appworld.
I’m not sure exactly when each of these app stores changed. At some point, linking to ‘all apps by this developer’ became hit-or-miss in some of my apps and I made a note to investigate further. This update is long overdue!
What is the Android Market Manager?
If you aren’t already using the Android Market Manager, it’s a small library project to help simplify handling your Android app on multiple app stores. In particular (links go to some blog posts I’ve made on these app stores, such as a review):
Using the Android Market Manager, you can simplify code required to link to either a single app (such as from a free to a paid upgrade app) or to all of your apps, so users can find more apps when they like the one they are using.
The sample project is also very useful to test how app markets will operate on your device, which helps what happens, for example with:
- Links to one store when both Google Play and Amazon Appstore are installed
- Links to an app store that isn’t installed (common with Google Play apps distributed unmodified on another app store)
There is a surprising amount of differences between linking for each of the app stores, so I open sourced this library to save other developers from having to do all of the same research to get app linking working.
Google Play “show all” was using a precise search term, but at some point other apps started creeping in. That’s no good! There’s another search method to search by publisher, and for some reason it works differently for the HTTP:// and market:// URLs. I fixed this, and all looks well.
In addition, the Amazon Appstore “show all” broke. This relied on searching for the Amazon developer ID, which is no longer found. For some reason this still works with the HTTP URL, but not the amzn:// URL.
This works in a browser:
This does not work in an app (but used to):
Searching by package name and adding ‘showall’ to the end still works. So, in AMMLinks::marketShowAll I’m changing the amazonDeveloperID input name to amazonPackageID, which should now be the package name of any app you have released to the Amazon Appstore. Update your code!
NOTE: if your app is unreleased, Amazon won’t find your other apps because it doesn’t know about your new package name (it is not a search based on the name itself, but by the developer account associated with that package name).
Last year, BlackBerry Appworld started to show a mountain of garbage for the same searches that worked before.
Luckily, it turns out that the appworld:// URLs were fixed, so the ‘find all’ functionality now uses the original linking, and returns just the apps by the specified developer.
Even more details
The constants file for AMM contains a lot of (I hope) well documented information on linking and device names for the major Android app stores.
Even if you aren’t going to use this library, take a look to understand how the various app stores handle linking (and find links to the reference material).
The changes are all pushed up to AMM on GitHub, so get them now.
If you see anything still broken, or know of a better way to do any of these links, let me know. If you find the library useful, let me know too!