所以我想知道如果你可以檢查在Android中安裝應用程序時,如果這個安裝是新鮮的(意味着當前沒有安裝在應用程序上的舊版本的應用程序),或者它不是新鮮的(意思是當前有設備上安裝的應用程序的舊版本,這只是一個更新版本)。Android:您可以檢查應用程序安裝是否新鮮或已安裝應用程序的舊版本?
我想做點什麼,但前提是安裝是新鮮的,而且沒有在設備上安裝舊版本。如果安裝了這樣的舊版本 - >什麼都不應該執行。正在尋找像SystemUtils
和東西,但我找不到任何東西。
所以我想知道如果你可以檢查在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