【发布时间】:2014-03-03 03:52:06
【问题描述】:
我正在做一个 android 应用程序,它必须显示当前的服务器/网络运营商时间,因为设备时间可以由用户更改。我不想更改/设置设备时间。我尝试了一些源代码,但效果不佳。我能够获取设备日期和时间,但我需要来自服务器或网络提供商本身的日期和时间。请帮帮我
【问题讨论】:
-
也许这会对你有所帮助:stackoverflow.com/questions/7157184/…
我正在做一个 android 应用程序,它必须显示当前的服务器/网络运营商时间,因为设备时间可以由用户更改。我不想更改/设置设备时间。我尝试了一些源代码,但效果不佳。我能够获取设备日期和时间,但我需要来自服务器或网络提供商本身的日期和时间。请帮帮我
【问题讨论】:
您似乎需要与网络时间协议 (NTP) 交互。
在 SO use of ntp service、get datetime from network provider(如 Gheo 所述)上也有类似的问题,建议:
android.net.SntpClient.javasource code和javadocs
正如这些帖子的 cmets 所述,从 Honeycomb 开始,您无法在主活动线程中执行任何网络操作(建议:改用服务)。
更新:
进一步搜索使我在 GitHub 上找到了 Dominik Schürmann's ntp-sync 存储库。他提供了不同的示例,说明您如何使用他的库,您可以在模拟器/设备上编译和运行这些库。
【讨论】:
SntpClient的来源吗?
我找到了解决方案,但忘记发布了。如果有人觉得它有帮助,这对我有用。
使用 API 或网络调用获取服务器时间,其中响应将包含来自服务器的时间戳。根据您的方便使用数据。
您可以修改现有 API 本身(如果有)。
【讨论】: