如何在升级时检测以前安装的应用程序的版本名称

时间:2012-11-15 07:00:12

标签: android

有没有办法在android中检测已安装应用程序的先前版本。

例如我有一个Android应用程序。在此Android应用程序的先前版本中,我使用了自动生成的UUID。现在我们在此应用程序的下一个版本中进行了更改,并在UUID的位置使用了ANDROID_ID。现在假设用户将应用程序从旧版本升级到新版本,在这种情况下,我想检测是否在手机上安装了以前版本的应用程序,如果安装了以前安装的应用程序的版本名称。

任何帮助都将受到高度赞赏

2 个答案:

答案 0 :(得分:2)

由于之前的开发人员未更新版本名称,因此您可能会使用该应用程序的上次更新时间。如果它比它要求的旧,那么更新它。

PackageInfo类具有lastUpdateTime属性。在这里如何使用它:

private Date getLastUpdateTime() {
    PackageInfo pi;
    try {
        pi = getPackageManager().getPackageInfo(getPackageName(), 0);
        Date resultdate = new Date(pi.lastUpdateTime);
        return resultdate;
    } catch (final NameNotFoundException e) {
        return null;
    }
}

答案 1 :(得分:0)

如果您的应用已更新。您的旧版本已被替换。但共享偏好必须保留(如果用户没有清除应用数据)。

检查您是否可以从共享首选项中读取UUID是新版本否旧版本。因此,您可以大致检测到安装的版本。