【问题标题】:Time Tracker in Android Independent of the System timeAndroid中的时间跟踪器独立于系统时间
【发布时间】:2012-09-04 05:52:29
【问题描述】:

我已经尝试谷歌搜索,但仍然找不到最佳答案。

我想要的很简单,我是 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 小时的时间。 任何人都可以帮助我吗? 这将不胜感激。

【问题讨论】:

    标签: android datetime


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 但是问题是一样的。用户可以在每次获得奖励后将日期更新到第二天。它会给我带来更大的价值......
      • 这是真的,但是一旦您将日期设置回来(这是使用日历和闹钟所必需的),您就会失去奖金。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 2023-02-16
      相关资源
      最近更新 更多