views:

51

answers:

2

Can I query the Android Market for the latest version of my application in code? I would like to show an update notification for the user when a new version is available.

Related questions:

+1  A: 

I know of no way to make that query, sorry.

CommonsWare
It would seem that this is not possible yet, at least on Android 2.1.
apa64
+1  A: 

I bumped into the same problem here. So I thought... why not use AppBrain.

I wrote a small function that gets your latest app version from the AppBrain website.

public String getLatestVersionNumber()
{
    String versionNumber = "0.0.0";

    try
    {
        Document doc = Jsoup.connect("http://www.appbrain.com/app/wallpaper-switch/com.mlevit.wallpaperswitch").get();
        Elements changeLog = doc.select("div.clDesc");

        for (Element div : changeLog)
        {
            String divText = div.text();

            if (divText.contains("Version"))
            {
                return divText.split(" ")[1];
            }

        }
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

    return versionNumber;
}

I use the jsoup Java HTML Parser to parse the HTML and from there on it's pretty simple.

Once you've retrieved it, since it's a String the best way I can think of to compare two versions together is to remove the full stops (.) that way your version number would go from say 1.1.2 to 112 then it's just a simple matter of comparing two Integers.

mlevit