-3

3日後に期限切れになるアプリを作成しています。有効期限が切れた場合、ユーザーはアプリを再インストールできないようにする必要があります。アプリの最初の実行時にsdcardにファイルを保存しているので、デバイスの現在の時刻をファイルの作成時刻の時刻と確認したいと思います。2つの日付の差を計算できません。私は次のコードを書きました。どうすればこのtask.plzを緊急に実行できますか。前もって感謝します。

Date firstFile =  new Date(firstFile.lastModified());
Date currentTime= new Date(currentfile.lastModified());

両方の変数の値を取得できますが、日数または分数で差を計算する必要があります

4

5 に答える 5

0

ミリ単位で時間を取得してから、簡単な計算を行います。

int days = (int) (milliseconds / (1000*60*60*24));

問題は、これが安全ではないということです。日付を保存しているファイルを削除すると...完了です。

安全を確保する唯一の方法は、サーバーを使用して最初の起動時に電話をマッピングすることです。

期限切れのアプリに関する詳細情報。

于 2012-11-28T13:46:43.917 に答える
0

各日付のミリを取得します。減算して、3日間のミリ秒数と比較します。

    Date firstFile =  new Date(firstFile.lastModified());
    Date currentTime= new Date(currentfile.lastModified());
    long millisInADay = 1000*60*60*24;
    long maxMillis = millisInADay * 3;
    if (maxMillis < (currentTime.getTime() - firstFile.getTime()) {
        // expired;
    }

もちろん、他の人が言っているように、ユーザーがする必要があるのはファイルを削除するか編集することだけで、それから彼らはアプリを自由に使うことができます。しかし、一般的なユーザーはおそらくそれを理解するのに十分な知識がないでしょう。ターゲットユーザーによって異なります。

于 2012-11-28T14:08:18.683 に答える
0

私は今、自分の質問に答えています。これを行うには、インストール時間をsharedpreferencesに保存します。次に、アプリを開いたら、sharedpreferenceで確認します。ユーザーが手動で変更することはできません。

于 2018-08-03T09:45:31.663 に答える
0

正しい方法は、デバイスのdeviceIdとインストール時間を、最初のインストール時にpostapiを介してサーバーに保存することです。このサーバーからのインストール時間を確認してください。

于 2019-11-26T07:31:17.570 に答える
-1

私の最初のアドバイスは、デフォルトの日時パッケージを使用しないでください。JodaTimeライブラリに移動します。

DateTime firstFile =  new DateTime(firstFile.lastModified());
DateTime currentTime= new DateTime(currentfile.lastModified());
long milles = currentTime.getMillis() - firstFile.getMillis();
int days = (int) (milliseconds / (1000*60*60*24));

java.util.DateよりもJodatimeを検討するいくつかの理由-

  • JDK1.0から
  • 2桁の年を使用(1900年から)
  • 1月は0、12月は11です
  • 不変でなければなりませんでした
  • JDK1.1で非推奨になったほとんどのメソッド
  • 1970表現からのミリ秒を使用

Joda-timeに関するその他の使用法については、IBMチュートリアルを参照してください。

さらに、ファイルを使用して試用期間を強制することは無駄です。サーバーの試用版を試すか、日付で暗号化されたファイル(lastModifiedではない)を保存する必要があります。ユーザーが日付を見つけても、それを変更することはできません。それがあなたに刺激を与えることを願っています。

于 2012-11-28T14:06:02.760 に答える