检查系统时间是自动的还是用户设置的

Check if system time is auto or user set

我需要在当前项目中设置用户证明时间。我发现了很多不同的问题,但 none 似乎有我正在寻找的答案。这些是我到目前为止看过的问题:

XCODE: How to get/verify ACCURATE timestamp from device

Is it possible to get the atomic clock timestamp from the iphone GPS?

How can I get the real time in iPhone, not the time set by user in Settings?

我有几个选项可以从服务器连接获取时间,但我也需要一个离线解决方案。

1。 似乎使用 CLLocation 获得与设备时钟相同的时间。有没有办法得到实际的GPS时间?

2。 我知道系统时间设置不是 public API 因此无法更改。是否可以查明设备是否打开了自动时间设置?如果自动时间打开,那么我可以依靠系统时间来实现我的目的,如果它关闭,那么记录下来,这样我就知道记录的时间是不可信的?

只是想 post 我的解决方案,以防其他人遇到同样的问题。

经过大量研究,我发现无法获取 GPS 时间设置信息。

这个解决方案既不完美也不实时,但可以满足我的需要。

每次应用程序上线时,我都会使用云时间进行时间检查。当设备重新建立服务器连接以同步离线创建的事件时,我进行了验证,采用最后一个对象设备时间和新对象设备时间,并计算两者之间经过的时间。 (使用 NSdates 以便涵盖夏令时)然后对最后可用的服务器时间和最近的服务器时间执行相同的操作。然后我比较结果,如果它们不在我的误差范围内,则事件被标记为无效。

希望这对其他人有帮助。