アプリがデバイスにすでにインストールされている期間を知りたいのですが。
理由:ずっと前にアプリをインストールしたユーザー向けにアプリの新しいアップデートを発表したいのですが、アプリをインストールしたばかりのユーザー向けにこれを発表したくないのです。私はアプリに広告を出すのが嫌いです:-)ですから、慎重に、ずっと前にアプリをインストールしたユーザーだけにアナウンスを表示したいと思います。(私の悪い英語でごめんなさい)
私が使いたくないのはこれです、なぜならこれは私がそれを実装した新しいバージョンからのみこれを検出することを可能にするからです:-グーグルアナリティクスを使用して。-プロパティ内のアプリの開始をカウントするカウンター
2014年に現在実装しているソリューションを探していますが、2013年以降にアプリがインストールされていることが検出されました。
ヒントはありますか?
これを前進させる最も簡単な方法は、次のペアを使用することですSharedPreferences
。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(new Context());
boolean firstRun = prefs.getBoolean("IS_FIRST_RUN", true);
long now = System.currentTimeMillis();
if (firstRun)
{
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("IS_FIRST_RUN", false);
editor.putLong("FIRST_RUN_MILLIS", now);
editor.apply();
}
else
{
long dateFirstRun = prefs.getLong("FIRST_RUN_MILLIS", 0L);
if (dateFirstRun == 0L)
{
// no value saved. decide how you want to handle
}
else if (now - dateFirstRun < SOME_AGE)
{
// offer extra functionality
}
}
過去のインストールを確認したい場合は、PackageManagerで遊ぶ必要があると思います
編集:リチャードが上記のコメントで示唆しているように:
try
{
long firstInstall = context.getPackageManager().getPackageInfo("package.name", 0).firstInstallTime;
}
catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加