所以我想知道你是否可以检查在Android中安装应用程序的时间,如果此安装是新的(意味着设备上当前没有安装该应用程序的旧版本),或者它不是新鲜的(意味着目前有设备上安装的较旧版本的应用程序,这只是一个更新版本)。
我想做点什么,但只有在安装很新并且设备上没有安装旧版本的情况下。如果安装了这样的旧版本 - >什么都不应该被执行。正在寻找类似SystemUtils
之类的东西,但我找不到任何东西。
答案 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
。如果不是这意味着它是首次在设备上安装应用程序