【发布时间】:2009-09-18 09:01:57
【问题描述】:
我需要确保我的应用获得正确的时间,而不是用户在设置中设置的时间。
因此,例如,一旦用户启动应用程序,我想获得一个时间戳。用户会在屏幕上的计时器上看到经过的时间每秒更新一次。当用户退出应用程序并在一段时间后重新启动应用程序时,计时器将获取当前时间并将其与保留的原始时间戳进行比较。所以基本上,就像 iPhone 上 Clock.App 中的秒表一样。
现在clock.app 的问题是,如果用户将设置中的时间提前一小时,这将影响计时器。显然我不希望这样,因为在我的应用中,那将是作弊。
我需要找一个更可靠的时间来源进行比较。
我可以从互联网上获取时间。但问题是我需要互联网连接,所以只有在有互联网连接的情况下才能工作。我的应用需要最好离线工作。
我可以访问某种内部时钟吗?
有没有办法检查用户是否在设置中更改了日期时间?
还有其他想法吗?
谢谢
【问题讨论】:
-
我不小心把实时... 很糟糕?
-
能否从 GPS 获取时间?
-
您将需要从一些外部来源(NIST、GPS、手机系统,甚至可能通过数据包嗅探其他人流量的数据包)获取时间,因为任何内部时钟都可以搞砸了。 OTOH,如果您不信任用户,您甚至不应该在客户端的系统上执行此操作。
-
因为我的应用程序可能在非常偏远的地区使用,我不能依赖 GPS 以外的外部资源。不幸的是 GPS API 没有公开原子钟时间戳。我有一个马赫计时器的解决方案。
-
@Maxm007 你有解决办法吗??
标签: iphone cocoa-touch iphone-sdk-3.0 date time