Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android programmatically update application when a new version is available

Tags:

android

Within my application, I want to check if there is any updated version of my application is in the app store. If there is any, then have to inform the user through an alert message and if he/she opt for upgrade I want to update the new version.I want to do all this through my application. Is this possible?

like image 980
user2914699 Avatar asked Mar 28 '14 09:03

user2914699


People also ask

Can you force update an app?

Half a year ago, at the Android Dev Summit, Google announced a new way for developers to force their users to update their apps when they launch new features or important bug fixes.

How do I notify people of an Android app update?

If you seriously want to make a notification from your app to ask them to update (so that everyone gets the notification, whatever their Google play settings are, then you will have to make a web service which returns the number of the newest version. You can then compare that inside your app and post a notification.


2 Answers

Nevertheless , you can make an http request on the web version of the playstore (https://play.google.com/store/apps/details?id=your.namespace)

To make the request you can use DefaultHttpClient

Once you get the page content you should parse it (jsoup is a good solution) and search for :

<div class="content" itemprop="softwareVersion"> 2.2.0  </div>

Once you find this part of the page , you can extract the version number and compare it with the one available in your app :

try
{
    String version = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
    if( ! version.equals(versionFromHTML))
    {
        Toast.makeText(this, "New version available on play store", Toast.LENGTH_SHORT);
    }
 
}
catch (NameNotFoundException e)
{
    //No version do something
}

For the HTML parsing part , have a look here

Keep in mind that everybody won't see the new version in the same time. It could take time to be propagated (probably because of cache).

Edit:

Google introduced In-app updates lib. It works on Lollipop+ and gives you the ability to ask the user for an update with a nice dialog (FLEXIBLE) or with the mandatory full-screen message (IMMEDIATE).

like image 79
grunk Avatar answered Oct 14 '22 22:10

grunk


You can use the Play Core Library In-app updates to tackle this. You can check for update availability and install them if available seamlessly.

Note that, In-app updates works only with devices running Android 5.0 (API level 21) or higher, and requires you to use Play Core library 1.5.0 or higher.

In-app updates are not compatible with apps that use APK expansion files (.obb files). You can either go for flexible downloads or immediate updates which Google Play takes care of downloading and installing the update for you.

dependencies {
    implementation 'com.google.android.play:core:1.5.0'
    ...
}
like image 40
Anoop M Maddasseri Avatar answered Oct 14 '22 23:10

Anoop M Maddasseri