ios 如何强制用户使用默认时间和时区?

eiee3dmh  于 2023-06-25  发布在  iOS
关注(0)|答案(1)|浏览(164)

在我的应用程序中,我需要确保在使用应用程序时,用户正在使用其设备上的默认时区和时间。我有一些时间敏感的信息,我不能依赖网络计时,因为应用程序离线工作(没有互联网)。
我试过:

TimeZone.current != TimeZone.autoupdatingCurrent

它没有给我我期待的结果。请提出一些解决方案。

fkaflof6

fkaflof61#

您绝对无法验证当前设备时间是否“正确”,我相信这正是您正在尝试做的。即使您可以使用一些未记录的技巧检查用户的显式设置,也无济于事。所有用户需要做的就是打开飞行模式,将时间设置为他们想要的,然后将其设置为“自动”。时间将继续保持他们设置的,直到设备可以重新连接到网络。
有些事情你可以做。您可以观察.significantTimeChangeNotification,以发现在某些情况下时钟何时发生变化,即使在后台也是如此。请记住,这是出于几个原因,最完全合适的,包括一天一次在午夜。
您可以跟踪应用程序进入后台的时间,并确保时间总是向前移动,或者至少不会显著向后移动(注意在手机信号塔之间移动时进行小调整)。
您可以跟踪systemUptime,以查找系统时钟的进度不如系统正常运行时间的进度的情况。重新启动手机将绕过此检查,但它应该永远不会导致误报。
永远不可能以任何有意义的方式知道时钟是“正确的”,但有一些方法可以确定它是可疑的。

相关问题