iphone - 是否可以从 iPhone GPS 获取原子钟时间戳?

标签 iphone gps gps-time

我正在寻找一种可靠的方式来获得时间。它无法被篡改,并且需要离线工作。因此,自上次重新启动以来,没有互联网时间,没有在设置中设置用户时间,也没有 BSD 正常运行时间。我想知道既然 GPS 使用原子钟工作,我是否可以访问该信息。

谢谢

最佳答案

这可以获取 GPS 时间:

#import <CoreLocation/CoreLocation.h>

CLLocation* gps = [[CLLocation alloc]
                       initWithLatitude:(CLLocationDegrees) 0.0
                       longitude:(CLLocationDegrees) 0.0];
NSDate* now = gps.timestamp;

不过它似乎并不能防篡改。

我在 iPhone 4 的飞行模式 (iOS 6.1) 上尝试了这段代码,即使如此,它也给出了正确的时间。但不幸的是这个时间似乎随着系统时钟而改变。呃。

我发现的有趣的事情(仍在飞行模式下)是,如果您篡改系统时钟(在关闭时间和日期的自动设置之后),并且然后将自动设置重新设置为开启,机器即可顺利恢复真实(原始)时间。即使在重新启动手机电源后,此功能仍然有效。因此,设备内部似乎存在诸如防篡改时间之类的东西。但如何访问它呢?

附注A discussion这是 2010 年的情况。倒数第二条评论的作者在防空洞中尝试了这一点:所以很明显,手机没有从任何外部来源获得原始时间。

附录,2013 年 7 月

发现了更多关于另一种时间度量的帖子( hereherehere ):系统内核启动时间。它可以通过如下调用来访问:sysctlbyname("kern.boottime", &boottime, &size, NULL, 0);。不幸的是,即使没有重新启动,它也会随着用户调整的数据和时间而变化。另一个函数 gettimeofday() 类似地依赖于用户定义的时间。

关于iphone - 是否可以从 iPhone GPS 获取原子钟时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444456/

相关文章:

iphone - 在枚举期间中断 for 循环( Objective-C )

iphone - 从 iPhone 上的视频输出获取静态图像?

iPhone开发与越狱

javascript - 使用 GPS 坐标修改 map 的中心

android - 创建一个 Android GPS 跟踪应用程序

将 unix 时间转换为可读时间

iphone - drawRect 在 iPhone(模拟器)中反转 imageView

c# - 查找离给定位置最近的城市

python - 从日期时间转换为 GPS 时间