2016-09-03 7 views
1

私はオフラインの支払い方法を設計したいのですが、ユーザーは支払い期間中のみアプリを使用できます。私は、ユーザーが自分の携帯電話の時刻/日付を変更しても、支払い期間を信頼できるものにしたい。Androidオフラインの信頼性の高い期間期間

AlarmManagerを使用して、残りの支払いカウンタを定期的に更新しようとしました。しかし、これはユーザーが過去に日付を設定したときには機能しません。DATE_CHANGEブロードキャストを聞き取りました。しかし、それはまた、日付が過去に設定されたときに放送されません。

このタイプの機能を実装する正しい方法は何かを知りたいと思います。いかなるアドバイスも高く評価されます。

編集1

アプリは信頼性の高いインターネットを持っていない場所のために設計されています。ほとんどの場合、アプリはオフラインで使用されます。だから、私は正しい時間をチェックするインターネット接続があると仮定することはできません。インターネットにアクセスすることなく、それを明確にする

編集2

time date set broadcast not firing in the past

ASOP issue

+0

新しい情報にコメントを使用しないでください。代わりに質問を編集します。とにかくGPSをタイムソースとして使うことを考えましたか? AFAIKそれは偽造するのが難しいです。 – Robert

+0

GPSから正確に時刻を取得する方法を教えてください。また、場所を有効にする必要がありますか。ユーザーがアプリの場所を許可していないとどうなりますか? – fuadj

+0

ユーザーはあなたのアプリを使用できません。とにかくあなたのコンセプトdoe snot意味する。あなたが接続していない場合、どの時間にアプリが「支払い期間」の中か外かを知っていますか?とにかく、そのような制限で何を達成したいですか? – Robert

答えて

2

あなたの問題を解決するための明確な方法はありません。唯一可能なことは、アクセスして操作を検出する(定期的にチェックしてデータを記録する)すべての時間ソースを監視することです。

ライセンスの有効期限が切れてもアプリを使用することはできませんが、難しくなります。

初めての送信元:デバイスクロック

サービス内のCountDownTimerを使用します。あなたのアプリにUTC時間(タイムゾーンなし)を記録し、それが増加するだけでなく減少しないことを確認してください。

セカンドタイムソースは:セルネットワーク

私の知る限り、少なくともいくつかの細胞ネットワークは内部の時間を持っている:

Sync Android devices via GPS time?

第3の時間ソースを参照してくださいは、GPS。あなたがアンドロイドでそれにアクセスできる方法と方法がわからない。

四時間ソース:インターネット

あなたは、アクティブなインターネット接続が信頼できるタイムソースから時刻を取得検出した場合。

+0

方向をありがとう。 – fuadj

関連する問題