gpt4 book ai didi

android - 如何获取 "network"时间(来自称为 "Automatic"的 "Use network-provided values"设置),而不是手机上的时间?

转载 作者:行者123 更新时间:2023-12-01 18:06:39 31 4
gpt4 key购买 nike

我希望在我的应用程序中找到一种将日期和时间与外部源给出的内容同步的方法。

我不想使用电话时间,因为我可能会得到大约 5 分钟的实时时间差异。多出或少于 5 分钟 = 10 分钟!

我听说过 GPS 卫星或网络天线中的时间信息。

我尝试过使用 System.getCurrentTime,但我获取了设备的当前时间,因此,如果我的设备提前 5 分钟设置,它会显示错误的时间。

编辑

问一个简短的问题:我怎样才能得到这个时间?

enter image description here

最佳答案

我不知道,但发现这个问题很有趣。所以我挖掘了 android 代码...感谢开源:)

您显示的屏幕是DateTimeSettings。 “使用网络提供的值”复选框与共享首选项 String KEY_AUTO_TIME = "auto_time"; 关联,也与 Settings.System.AUTO_TIME

关联

此设置由 2 个网络 ServiceStateTracker 中名为 mAutoTimeObserver 的观察者观察:GsmServiceStateTrackerCdmaServiceStateTracker

当设置变为 true 时,两种实现都会调用名为 revertToNitz() 的方法。显然NITZ相当于运营商世界中的NTP。

底线:您可以通过 revertToNitz() 将时间设置为运营商提供的值。不幸的是,我还没有找到获取网络时间的机制。如果您确实需要这样做,恐怕您必须复制这些 ServiceStateTracker 实现,捕获框架引发的 Intent (我想),并向 添加一个 getter >mSavedTime.

关于android - 如何获取 "network"时间(来自称为 "Automatic"的 "Use network-provided values"设置),而不是手机上的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60547727/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com