我想通知用户他可以升级应用程序版本。为此,我需要将已安装的应用程序版本代码与当前版本代码进行比较。
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionCode;
Q1.我在
version
中得到了哪个版本,是已安装的还是当前的(新的)?Q2.如果
version
有电流,我该如何安装?- Q3.如果
version
已经安装,我如何才能获得电流
我可以建议你一种方法。
- 您的清单文件中有一个版本代码。假设在您的第一个版本中,您将其设置为1
- 在启动代码中,将该值保存在sharedPreference中
- 不要在某些服务器中保存文本文件(可能您可以使用应用程序点来实现此目的)。在这个文件中保留一个字段作为版本代码
-
每次更新时,都要像在清单文件中那样增加该文件中的版本代码
-
每次启动应用程序时,您都可以从服务器读取文件,进行json解析并获取版本代码。
-
然后将此值与共享的Freference版本代码进行比较。若相同,则表示没有更新。如果新版本代码更高,那么弹出一个带有谷歌播放链接的对话框。同时更新您的共享首选项。
-
你可以每3天检查一次版本代码值,可能是在应用程序启动时,而不是每次都签入,因为它只需要很少的数据下载和一些处理。
我用这种方式,它对我有效。
如果需要进一步澄清,请告诉我。
试试这可能会对您有所帮助
public void printDeviceConfig(Context context) {
try {
System.err.println("=============== HEAP INFO ===============================");
ActivityManager activityManager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
System.err.println("Over All Memory: " + (memoryInfo.availMem / 1024) + " KB");
System.err.println("low Memory: " + memoryInfo.lowMemory);
System.err.println("Threshold Memory: " + (memoryInfo.threshold / 1024) + " KB");
System.err.println("=============== OS INFO ===============================");
System.err.println("Device MODEL: " + android.os.Build.MODEL);
System.err.println("VERSION RELEASE: " + android.os.Build.VERSION.RELEASE);
System.err.println("VERSION SDK: " + android.os.Build.VERSION.SDK_INT);
System.err.println("=============== Device Information ===============================");
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
System.err.println("Device Resolution (WxH)= " + dm.widthPixels + " x " + dm.heightPixels);
System.err.println("Density DPI= " + dm.densityDpi);
} catch (Throwable e) {
e.printStackTrace();
StringWriter stackTrace = new StringWriter();
e.printStackTrace(new PrintWriter(stackTrace));
}
}