Android:您可以检查应用程序安装是否新鲜,或者是否已安装较旧版本的应用程序?

时间:2016-11-17 13:22:00

标签: java android

所以我想知道你是否可以检查在Android中安装应用程序的时间,如果此安装是新的(意味着设备上当前没有安装该应用程序的旧版本),或者它不是新鲜的(意味着目前有设备上安装的较旧版本的应用程序,这只是一个更新版本)。

我想做点什么,但只有在安装很新并且设备上没有安装旧版本的情况下。如果安装了这样的旧版本 - >什么都不应该被执行。正在寻找类似SystemUtils之类的东西,但我找不到任何东西。

2 个答案:

答案 0 :(得分:0)

这不是一个理想的解决方案,可以解决您的问题。 1.在应用程序中创建一个存储版本号和日期的本地数据库 2.在启动应用程序或第一次活动开始时计算这两个字段 3.如果版本号与您在db中已存在的最后一个条目相同,则只需用新日期覆盖日期; 4.现在,当您更新应用程序时,您可以使用当前版本号检查此版本号,如果它不匹配且更新,那么您可以知道它的新版本

答案 1 :(得分:0)

以下是一些示例代码,用于检查您是否安装了较新版本的应用:

private boolean showHelpOnFirstLaunch() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
        int currentVersion = info.versionCode;
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        int lastVersion = prefs.getInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, 0);
        if (currentVersion > lastVersion) {
            //save the current version in order to compare it the next time a newer version is installed
            prefs.edit().putInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, currentVersion).commit();
            /* do what you want here */
            return true;
        }
    } catch (PackageManager.NameNotFoundException e) {
        Log.w(TAG, e);
    }
    return false;
}

PreferencesActivity是我项目的一项活动,但它是一个静态参考,解析为:public static final String KEY_HELP_VERSION_SHOWN = "preferences_help_version_shown";

您要求的更简单,您可以检查是否存在lastVersion>0。如果不是这意味着它是首次在设备上安装应用程序