2016-11-17 150 views
0

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

我想做点什么,但前提是安装是新鲜的,而且没有在设备上安装旧版本。如果安装了这样的旧版本 - >什么都不应该执行。正在寻找像SystemUtils和东西,但我找不到任何东西。

+0

在运行应用程序时查看是否有任何数据。如果您有数据,则安装了以前版本的应用程序。 – CommonsWare

回答

0

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

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。如果不是这意味着它是该设备上第一次安装该应用程序

相关问题