2016-10-16 10 views
1

私の顧客が営利目的のアプリをリクエストすると、次のような場合でも、サーバーにダウンロードした後、コンテンツが自動的に期限切れになることがあります。
+サーバーに接続して有効期限をチェックするインターネット接続なし
+お客様の端末で時間を悪意のあるものに変更して有効期限を延長しようとしましたオフラインモードであってもモバイルアプリのコンテンツは自動的に期限切れになりますか?

コンテンツが期限切れになると、端末から削除され、今後視聴できなくなります。

Googleで数日間研究したところ、私はまだ適切なアプローチを見つけることができません。

答えて

0

ダウンロード時にコンテンツに有効期限を追加できないのはなぜですか?そして、サーバー側の制御なしに、期限切れであるかどうか、ローカルではないかどうかを確認します。

0

ありいくつかの提案があるではなく、それらのあなたがそれらを組み合わせた場合、多分それは有用であろうすべてのケースをカバーするのに十分である:

の1- 最後ノウハウ場所に基づいて時間を取得します。
2-ので、文句を言わないの問題自分のデバイス時間を変更するユーザー が

+0

開発者が自分のアプリでGPSの特権を要求していない場合は、最後の既知の場所がオプションになると思います。ネットワーク時間は、ユーザがオフラインになったときにもこれを動作させたいので、質問の基準を満たしていないようです。 – wottle

0

素晴らしい解決策はこれにありません(インターネット 接続が必要)ネットワーク時間を取得します。いくつかのオプションがありますが、どちらも完璧ではありません。

オプション1 - 使用日付/時刻最後の既知の場所から

これは、アプリはトラッキングのための有効な必要性を持っていない場合、ユーザーに関係する可能性がある、アプリケーションでGPSへのアクセスを要求するためにあなたを必要としますユーザーの場所。しかし、基本的に最後の既知の位置を取得し、Locationのオブジェクトは、最後の位置チェックの時点で返されます。 2つのことは、これが100%動作するのを防ぐことができます。まず、Androidの新しいバージョンでは、ユーザーは特定のアプリの権限を無効にすることができます。つまり、アプリにGPSアクセスを許可しない可能性があります。これに対処するには、アプリの起動時にこれを確認し、GPSアクセスが有効になっていない限り、ユーザーがコンテンツにアクセスできないことを知らせることができます。第2に、ユーザにGPS信号がない場合、最後の既知の位置は数日前であった可能性があり、これは「現在の時刻」が最後のGPS信号の時点で固定されることを意味する。また、一部のデバイスにはGPSチップが搭載されていないため、このデバイスでは機能しません。

オプション2 - アプリに日付/時刻のログを記録して、システムの日付/時刻の変更を検出しようとします。

基本的に、これは、アプリの各セッションの期間と同様に、各起動時にシステムの日付/時間を追跡するためにいくつかの作業が必要になります。このログを使用すると、現在/日付の時刻と比較して、ユーザーが時計をロールバックしているかどうかを確認できます。あなたの小切手を理解していた賢いユーザーが、最後にアプリをシャットダウンしたときに最も近い時間にロールバックすることができたとしても、これは完璧ではありませんでしたが、少なくともこれにより、実行時間。また、あなたの小切手の追跡/悪用を本当に献身する人が必要になります。ほとんどのユーザーは単に時計を過去の日付にロールバックしようとしますが、それは簡単に捕らえることができます。この方法では、UTC時間ですべての時刻をキャプチャ/保存していることを確認してください。時間の変更によって誤った詐欺のシナリオが発生することはありません。個人的に

勧告

アプリのGPSの権限でOKであれば、私は両方のオプションを使用します。利用可能で、ユーザーの許可があれば、最後の既知の場所を使用して時刻を取得します。それが利用できない場合、またはユーザーが権限を削除した場合は、実行日時と期間のローカルストアをフォールバックとして使用します。

関連する問題