要件:
私のアプリケーションでは、アプリケーションの最初の実行日から 1 か月間、ユーザーがすべての機能を無料で使用できるようにしたいと考えています。このために、アプリケーションデータベースに最初の実行日を保存し、アプリケーションを起動するたびに最初の実行日を現在の日付と比較します。
実装:現在の日付を取得するために、標準の「ウォール」クロック (時間と日付) の date\datetime を返す
関数など、いくつかの関数があります。資料Calendar.getInstance();
Date date=new Date();
によると Which can be set by the user or the phone network.
問題:
すべてが正常に動作しているように見えますが、ユーザーが日付を変更Setting
して過去の日付に設定するとどうなるでしょうか。たとえば、ユーザーが最初にアプリケーションを実行したのは 2013 年 6 月 7 日であるため、2013 年 7 月 6 日以降、アプリケーションはサブスクリプションを購入する必要があることを示す必要がありますが、ユーザーがデバイスの日付を 6 月 30 日などに変更した場合、制限は機能しません。
それで、それを正しく実装する理由はありますか?
ユーザーが編集できないデバイスの実際の時間を取得する理由はありますか?
編集:
アプリケーションはオフラインで動作できるため、ユーザーはインターネット接続をオフにすることができます。