【问题标题】:How to detect manual time change from application even if it is killed即使应用程序被杀死,如何检测手动时间更改
【发布时间】:2013-06-03 22:12:12
【问题描述】:

我有一个要求,我需要检测日期/时间是否已从设备设置中手动更改。我知道我可以使用applicationSignificantTimeChange 方法检测到更改,但为此应用程序需要在后台暂停。我的要求是,即使应用程序被杀死(未运行),我也需要检测时间变化。关于如何实现这一目标的任何想法?

注意:该应用程序完全离线,没有与任何外部时间服务器同步的选项。

【问题讨论】:

  • 我不知道该如何考虑诸如“应用程序在不运行时应该做什么”之类的要求:>

标签: ios objective-c datetime


【解决方案1】:

您可以通过在应用暂停时存储时间戳并在恢复时将其与当前时间进行比较来检测时间是否已向后

但是,当时间提前时,这将不起作用。不幸的是,没有可靠的方法来检测用户手动更改日期/时间的时间,除非您能够将您的应用程序与网络时间戳同步(即,您有自己的服务器,您可以从中请求当前时间)。

【讨论】:

  • 我会存储来自 gmt 的秒数并将其与某个开放时间服务器的服务器时间进行比较!?
  • 是的 - 如果您有准确时间的外部来源,您可以充分衡量自您的应用上次使用以来实际过去了多少时间,以及系统使用了多少时间说已经过去了(如果用户改变了他们的时间设置,那会有所不同)
  • 如果您没有任何外部验证时间的方法,那么您将无法检测到时钟已提​​前设置的手动时间更改。没有外部参考是不可能的——iOS 中没有 API 可以满足您的需求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多