Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-获取当前时间而不依赖于设备';时钟_Android_Time_System Clock - Fatal编程技术网

Android-获取当前时间而不依赖于设备';时钟

Android-获取当前时间而不依赖于设备';时钟,android,time,system-clock,Android,Time,System Clock,我注意到System.currentTimeMillis()时间与设备有关。如果更改设备时钟上的时间,此方法将返回不同的答案。 例如:如果现在的实时时间是10:00,并且我将设备上的时钟更改为9:30,则System.currentTimeMillis()将返回9:30时间(以毫秒为单位)。 我也尝试了一些其他的答案,但没有发现任何有用的。 我应该声明我的应用程序大部分是离线工作的。 有没有一种方法可以在没有外部API的情况下获取实时当前时间(与设备无关)?如果不是“脱机”部分,我会建议使用

我注意到System.currentTimeMillis()时间与设备有关。如果更改设备时钟上的时间,此方法将返回不同的答案。

例如:如果现在的实时时间是10:00,并且我将设备上的时钟更改为9:30,则System.currentTimeMillis()将返回9:30时间(以毫秒为单位)。

我也尝试了一些其他的答案,但没有发现任何有用的。 我应该声明我的应用程序大部分是离线工作的。
有没有一种方法可以在没有外部API的情况下获取实时当前时间(与设备无关)?

如果不是“脱机”部分,我会建议使用时间服务器,但考虑到你的应用程序大部分时间处于脱机状态,这可能不是一个好的解决方案

如果您不需要实际的时间,而只需要一个无法处理的时间,您可以使用它来提供自设备上次启动以来的时间


您还可以将time server和SystemClock.elapsedRealtime()结合使用:从计时器服务器获取一次时间(例如,启动后),然后将elapsedRealtime()添加到初始值(减去获取timerserver值时的elapsedRealtime值)。

如果使用GPS位置提供程序,
getTime()
将返回从GPS信号导出的UTC时间,而不是设备时间。GPS定位服务提供商可以脱机工作,但与在线访问a-GPS信息相比,获得修复的速度要慢得多。

。希望更好。如果这个时钟没有在设备每次关机时重置,那会很有帮助。我想我得用时间服务器了。谢谢,不客气。也许你可以把两者结合起来。从计时器服务器获取一次时间(例如,启动后),然后将elapsedRealtime()添加到初始值(减去获取timerserver值时的elapsedRealtime值)。另一个很好的答案,很遗憾我无法使用,因为很难向用户解释此权限的需要。谢谢