如何将已安装的app versionCode与当前的versionCode(新)进行比较?

时间:2013-08-30 06:40:52

标签: android push-notification android-notifications

我想通知用户他可以升级应用版本。为此我需要将已安装的app versionCode与当前的versionCode进行比较。

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionCode;
  • Q1。我在version,安装或当前(新)中获得哪个版本?

  • Q2。如果version的最新版本比我的安装方式快?

  • Q3。如果安装了version而不是我当前的安装方式?

2 个答案:

答案 0 :(得分:0)

试试这可能会对您有所帮助

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));
        }


    }

答案 1 :(得分:0)

我可以建议你这样做。

  • 您的清单文件中有一个版本代码。假设在您的第一个版本中将其设置为1。
  • 在启动代码中,将该值保留在sharedPreference中。
  • 不保留某个服务器中的文本文件(可能您可以使用app spot用于此目的)。在此文件中,将字段保留为版本代码。
  • 每当您提供更新时,请像在清单文件中一样增加此文件中的版本代码

  • 每次在应用启动时,您都可以从服务器读取文件,执行json解析并获取版本代码。

  • 然后将此值与您的sharedFreference版本代码进行比较。如果相同,那意味着没有更新。如果新版本代码较高,则弹出带有Google Play链接的对话框。还要更新您的sharedPreference。

  • 您可以每隔3天检查版本代码值是否可以在应用启动时检查,而不是每次都检查它,因为它只需要很少的数据下载和处理。

我用这种方式对我有用..

如果需要进一步澄清,请告诉我。