Tramite il metodo getPackageInfo(java.lang.String, int) di PackageManager è possibile risalire a runtime ad alcune informazioni del package tra cui il versionCode, il versionName ed i permessi.
L'utilizzo di tale metodo può essere utile in diverse situazioni, una tra quelle che mi vegono in mente può senz'altro essere, nel caso di modifiche ad una chiamata ad un webservice in una versione aggiornata dell'app, quella di passare determinati parametri, o chiamare una pagina diversa, se il versionCode risulta essere quello della versione più recente dell'applicazione mentre lasciarli invariato il codice per versioni precedenti onde evitare crash indesiderati.
Ci sono tutta una serie di altri motivi per cui può nascere la necessità di conoscere a runtime il versionCode ed il versionName, voi sicuramente avrete il vostro pertanto riporto di seguito la porzione di codice, testata e funzionante, che può fornirvi tali informazioni:
Context context = getApplicationContext();
PackageManager packageManager = context.getPackageManager();
String packageName = context.getPackageName();
String versionName = "non disponibile";
try {
versionName = packageManager.getPackageInfo(packageName, 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Integer versionCode = 0;
try {
versionCode = packageManager.getPackageInfo(packageName, 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Toast.makeText(this, "versionName:" + versionName + "; versionCode:" + versionCode, Toast.LENGTH_LONG).show();
Potete utilizzarla così com'è, ad esempio nell'onCreate() o inserirla in una funzione.
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento