我想通知用户他可以升级应用程序版本。为此,我需要将已安装的应用程序版本代码与当前版本代码进行比较。
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionCode;
Q1。我进入哪个版本
version
,已安装或当前(新)?Q2。如果
version
有电流比我如何安装?- Q3。如果
version
已经安装了,我怎么能得到最新的?
我想通知用户他可以升级应用程序版本。为此,我需要将已安装的应用程序版本代码与当前版本代码进行比较。
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionCode;
Q1。我进入哪个版本version
,已安装或当前(新)?
Q2。如果version
有电流比我如何安装?
version
已经安装了,我怎么能得到最新的?试试这个可能对你有帮助
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));
}
}
我可以建议你一种方法来做到这一点。
每次您进行更新时,请像在清单文件中一样增加此文件中的版本代码
每次应用启动时,您都可以从服务器读取文件,进行 json 解析并获取版本代码。
然后将此值与您的 sharedFreference 版本代码进行比较。如果相同,则表示没有更新。如果新版本代码更高,则使用您的 google play 链接弹出一个对话框。还要更新您的 sharedPreference。
您可以在应用程序启动时每 3 天检查一次版本代码值,而不是每次都检查一次,因为它需要很少的数据下载和一些处理。
我用这种方式,它对我有用..
如果需要进一步澄清,请告诉我。