我的应用程序是时间相关的,我不希望设备日期和时间的更改影响我的应用程序,例如用户故意将设备日期设置为任何以前的日期。当用户连接到移动网络或WiFi时,有没有办法获取当前日期和时间我不想使用GPS。
答案 0 :(得分:2)
SystemClock类的Javadoc描述了计算各种场景和条件所用时间的不同方法。
在您的情况下,您必须使用
long time = SystemClock.elapsedRealtime();
返回自系统启动以来的时间,并包括深度睡眠。 这个时钟保证是单调的,并且继续打勾 当CPU处于省电模式时,建议的基础也是如此 通用间隔时间。
当您想要开始跟踪网络的使用时(我假设您已经知道如何操作)并存储该值,这是第一次调用它。
当您收到有关不再使用网络的用户的事件时,请再次调用相同的方法并计算花费的时间。
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
答案 1 :(得分:0)
您应该调用webservice并获取服务器的当前日期和时间。然后服务器将负责实际的日期/时间。最好的方法是建立自己的Web服务,因为它比使用第三方提供更多控制。