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

如果您的应用程序可以访问互联网,您可以从自己的服务器获取时间,而不是用户时间。

只有当您收到此意图时,您才能收听Intent.ACTION_TIME_CHANGED并与服务器时间同步。除非用户手动更改时间,否则您不会与服务器同步。

于 2012-09-04T06:01:38.847 回答
0

而不是比较该日期已更改,您可以检查是否

  • 日期大于上一个:分配奖金并记住日期
  • 日期小于上一个:用户作弊-删除所有奖金并且不更新旧日期

这个解决方案当然不是防弹的,但比你以前的更安全

于 2012-09-04T06:39:31.310 回答