Drake Drake - 4 months ago 9
SQL Question

Force users to have latest android app version

Is it possible to check on startup of an Android app whether the user has the latest version of it and force him to update if he has not? Or at least checkt whether there is a new version and tell him, that the app only will work again when he downloads and installs the update?

Background is that I have an app that needs to communicate with a server. When I change something in the interface between server and client I want to assure that the client has the latest version.

Is there any native way to do this? Or do I have to check this on my own?

Is this only accessible if you have a mysql database? is it possible to do this with just plain text on a webpage and have it checked with the current app version?

Answer

is it possible to do this with just plain text on a webpage and have it checked with the current app version?

That's what I would do:

Checking latest version on your server, in a text file:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);

String latestVersion = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
    str.append(line);
}
in.close();
latestVersion = str.toString();

and then compare it to the installed version:

private String getSoftwareVersion() {
    try {
            PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
            return packageInfo.versionName;//EDIT: versionCode would be better
    } catch (PackageManager.NameNotFoundException e) {
            Log.e(TAG, "Package name not found", e);
    };
 }