Jack Bua
Posts: 0
Joined: Sun Jun 28, 2015 10:16 pm

Force App Update

I would like to force a user to update to the newest version of the app if there is one available. For now, I am focusing only on Android devices and I do understand how much it is inadvisable to force such a thing on the user, but this is what I need to do.

I have found:

String currentVersion, latestVersion;
Dialog dialog;
private void getCurrentVersion(){
PackageManager pm = this.getPackageManager();
PackageInfo pInfo = null;

Code: Select all

     try { 
         pInfo =  pm.getPackageInfo(this.getPackageName(),0); 

     } catch (PackageManager.NameNotFoundException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
     } 
     currentVersion = pInfo.versionName; 

new GetLatestVersion().execute(); 

}

private class GetLatestVersion extends AsyncTask {

Code: Select all

     private ProgressDialog progressDialog; 

     @Override 
     protected void onPreExecute() { 
         super.onPreExecute(); 
     } 

     @Override 
     protected JSONObject doInBackground(String... params) { 
         try { 

//It retrieves the latest version by scraping the content of current version from play store at runtime
Document doc = Jsoup.connect(urlOfAppFromPlayStore).get();
latestVersion = doc.getElementsByAttributeValue
("itemprop","softwareVersion").first().text();

Code: Select all

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

         } 

         return new JSONObject(); 
     } 

     @Override 
     protected void onPostExecute(JSONObject jsonObject) { 
         if(latestVersion!=null) { 
             if (!currentVersion.equalsIgnoreCase(latestVersion)) 
                 showUpdateDialog(); 
         } 
         else 
             background.start(); 
         super.onPostExecute(jsonObject); 
     } 
 } 

private void showUpdateDialog(){
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("A New Update is Available");
builder.setPositiveButton("Update", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse
("market://details?id=yourAppPackageName")));
dialog.dismiss();
}
});

Code: Select all

     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
             background.start(); 
         } 
     }); 

     builder.setCancelable(false); 
     dialog = builder.show(); 
 } 

but I do not know where to put it. Could I get sme help with this please?

Serhii Kulibaba
Posts: 150
Joined: Tue Aug 27, 2013 1:47 pm

Force App Update

Hello Jack,

You can change java code in the sources tab. Please look at this tutorial for more information: https://devcenter.appery.io/tutorials...

Return to “Issues”