1

グーグルで検索しようとしましたが、まだ最良の答えが見つかりません。

私が欲しいのは非常にシンプルです。私はAndroidが初めてで、毎日プレイするとユーザーに毎日のボーナスを与えるゲームを開発しています。私のコードは次のとおりです。

date = new Date();
    dateFormate = new SimpleDateFormat("yyyy/MM/dd");
    dateString = dateFormate.format(date);
        if(!sharedPreferences.getString("date").equals(dateString))
    {
            sharedPreferences.putString("date", dateString).commit();
            ... Here I give Bonus to user
        }

しかし、問題は、このコードはシステム日付に依存していることです。ユーザーは日付を簡単に変更でき、毎日の報酬を得ることができます。彼がゲームのプレイを開始してから 24 時間を追跡したいと考えています。誰でも私を助けてくれませんか。これは非常に高く評価されます。

4

2 に答える 2

0

その日付が変更されたことを比較する代わりに、次のことを確認できます

  • 日付が前のものよりも大きい: ボーナスを割り当て、日付を記憶する
  • 日付が以前のものよりも小さい: ユーザーが不正行為を行っています-すべてのボーナスを削除し、古い日付を更新しません

もちろん、このソリューションは防弾ではありませんが、以前のソリューションよりも安全です

于 2012-09-04T06:39:31.310 に答える
0

アプリがインターネットにアクセスできる場合、ユーザー時間ではなく、独自のサーバーから時間を取得できます。

Intent.ACTION_TIME_CHANGEDこのインテントを受け取った場合にのみ、サーバー時刻をリッスンして同期できます。ユーザーが時間を手動で変更しない限り、サーバーと同期することはありません。

于 2012-09-04T06:01:38.847 に答える