0
私のアプリケーションは、システムが正常にアップグレードされたかどうかを検出できる必要がありますが、同じバージョンのシステムイメージが原因である可能性があります。Androidシステムをアップグレードした場合、アプリケーションでどのように検出するのですか?
私のアプリケーションは、システムが正常にアップグレードされたかどうかを検出できる必要がありますが、同じバージョンのシステムイメージが原因である可能性があります。Androidシステムをアップグレードした場合、アプリケーションでどのように検出するのですか?
お客様のApplication.onCreateは、パッケージの最終更新時間と保存済み最終更新時間を比較できます。時間が異なる場合は、アプリが「更新」されています(バージョンが実際に変更されていなくても)。
たとえば、以下のようにwasUpdated
メソッドを呼び出すことができます。 (このメソッドは最初に呼び出されたときに常にtrueを返しますが、それを変更しないと変更できます)
static final String PREF_LAST_UDATE_TIME = "pref_last_update_time";
static boolean wasUpdated(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
long storedLut = prefs.getLong(PREF_LAST_UDATE_TIME, -1);
long lut = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
if (storedLut != lut) {
prefs.edit().putLong(PREF_LAST_UDATE_TIME, lut).apply();
return true;
}
return false;
}