android - 如何获取与设备无关的本地日期和时间 Android

标签 android android-networking android-date

我的应用程序与时间相关,我不希望设备日期和时间的更改影响我的应用程序,例如用户故意将设备日期设置为任何先前的日期。当用户连接到移动网络或 WiFi 时,有什么方法可以获取当前日期和时间我不想使用 GPS。

最佳答案

SystemClock 的 Javadoc类描述了针对各种场景和条件计算耗时的不同方法。

在你的情况下,你必须使用

long time = SystemClock.elapsedRealtime();

Return the time since the system was booted, and include deep sleep. This clock is guaranteed to be monotonic, and continues to tick even when the CPU is in power saving modes, so is the recommend basis for general purpose interval timing.

当您想要开始跟踪网络的使用情况时第一次调用它(我假设您已经知道如何做到这一点)并存储该值。

当您收到用户不再使用网络的事件时,再次调用相同的方法并计算花费的时间。

long elapsed = time - SystemClock.elapsedRealtime();

接下来,您可以将毫秒转换为字符串,如下所示:

String formattedElapsedTime = DateUtils.formatElapsedTime(elapsed/1000);//note that this method takes second as arguments so we have to divide it by 1000

关于android - 如何获取与设备无关的本地日期和时间 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283040/

相关文章:

android - 在Android的显示触摸中,颜色线是什么意思

android - 封装ViewHolder功能以供重用

java - Android 中的字符串到日期对象

android - 如何获取日期、小时、分钟以达到特定日期

android - 使用 android :debuggable ="false" 调试 Ionic 应用程序

android - GestureDetector.onTouchEvent(MotionEvent e) 在所有手势上调用 onLongPress

android - 从网络设备的 IP 地址列表中查找打印机 IP 地址

java - 如何修复 'android.os.NetworkOnMainThreadException' ?

Android 2.2 MediaPlayer 替代 HTTPS 和直播

android - android.text.format.DateFormat.format 方法的正确使用方法是什么