Android 我怎样才能得到日期&;网络供应商的时间?

Android 我怎样才能得到日期&;网络供应商的时间?,android,datetime,time,Android,Datetime,Time,有没有办法通过编程方式从网络提供商处获取日期和时间?可能与我们从网络提供商处获取位置的方式相同。您可能需要使用自定义NITZ或NTP库。 所以请注意,Android使用了运营商提供的NITZ事件 正确设置系统日期和时间。安卓也回到了过去 当没有蜂窝网络可用时,网络NTP会自动进行 currentTimeMillis()提供的时间通常是最好的 可用时间,以及设备上所有服务使用的时间, 比如日历和闹钟 然而 然而,NTPAPI不是Java代码可以访问的地方,这 这意味着如果需要,我们将重新使

有没有办法通过编程方式从网络提供商处获取日期和时间?可能与我们从网络提供商处获取位置的方式相同。

您可能需要使用自定义NITZ或NTP库。

所以请注意,Android使用了运营商提供的NITZ事件 正确设置系统日期和时间。安卓也回到了过去 当没有蜂窝网络可用时,网络NTP会自动进行

currentTimeMillis()提供的时间通常是最好的 可用时间,以及设备上所有服务使用的时间, 比如日历和闹钟

然而

然而,NTPAPI不是Java代码可以访问的地方,这 这意味着如果需要,我们将重新使用现有的JavaNTP/SNTP客户端库 无论我们是否在网络上,我们都需要准确的时间 这是尼茨的能力

Java NTP库

您可以从中找到Java NTP库的简单实现

  • 答案是肯定的 我尝试使用以下代码从网络提供商处获取时间 为此使用loc.getTime()


    这不是最后一次知道地点的准确时间吗?它不是来自运营商,而是来自GPS(尽管后者更准确),它可能来自任何一个,有LocationManager.GPS\u提供程序和LocationManager.NETWORK\u提供程序。这不获取时间,它显示上次获取位置的时刻。如果你不动也不动怎么办?你的位置不会改变,因此你不会得到时间更新?为什么它不是由android本身提供的,因为这是开发者的基本需求,如果我们使用日历,任何人都可以通过改变时间来愚弄应用程序
        @Override
        public void onLocationChanged(Location loc)
        {
            loc.getLatitude();
            loc.getLongitude();
    
            latitude.setText(""+loc.getLatitude());
            longitude.setText(""+loc.getLongitude());
            time.setText(""+loc.getTime());
        }