Android:您可以检查应用程序安装是否新鲜或已安装应用程序的旧版本?
问题描述:
所以我想知道如果你可以检查在Android中安装应用程序时,如果这个安装是新鲜的(意味着当前没有安装在应用程序上的旧版本的应用程序),或者它不是新鲜的(意思是当前有设备上安装的应用程序的旧版本,这只是一个更新版本)。Android:您可以检查应用程序安装是否新鲜或已安装应用程序的旧版本?
我想做点什么,但前提是安装是新鲜的,而且没有在设备上安装旧版本。如果安装了这样的旧版本 - >什么都不应该执行。正在寻找像SystemUtils
和东西,但我找不到任何东西。
答
这不是一个理想的解决方案,千方百计解决您的问题。 1.在应用中创建本地数据库,存储版本号和日期 2.在应用启动时或第一次启动时计算这两个字段 3.如果版本号与已存在的最后一个相同在db中输入,然后用新的日期覆盖日期; 4.所以现在当你更新应用程序,你可以检查这个版本号与您当前的版本号,如果它不匹配,是新的,那么你可以知道它的新版本
答
这是一些示例代码,检查你是否已安装应用程序的更新版本:
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
。如果不是这意味着它是该设备上第一次安装该应用程序
在运行应用程序时查看是否有任何数据。如果您有数据,则安装了以前版本的应用程序。 – CommonsWare