有什么方法可以从cordova应用程序更改android设备的时间吗? 我需要将设备时间与服务器同步。 该应用程序从Webapi获取服务器时间,如果与设备时间不同,我想更改设备时间。 谢谢
答案 0 :(得分:1)
您不应仅仅为了使您的应用正常工作而弯曲整个设备。如果服务器时间错误怎么办?如果用户想要其他时间怎么办?
我们对应用程序有相同的需求,我们要做的是在服务器时间运行该应用程序。
这是Java中的本机Android,但我认为这个想法应该很明确,并且在Cordova中也应该是可能的。
所以我们有这个ServerTime
类,并且只要我们需要在应用程序中使用当前时间,就不会使用 或new Date()
,而是使用System.currentTimeMillis()
ServerTime.now()
。
该类看起来像这样(从内存中编写并简化,请确保进行测试,也许差异计算应为+而不是-...):
public static class ServerTime {
private static long diffMillis;
public static Date now() {
long millis = System.currentTimeMillis() - diffMillis;
return new Date(millis;
}
public static void update(long serverTimeMillis) {
diffMillis = System.currentTimeMillis() - serverTimeMillis;
}
}
服务器会为服务器提供每次响应的时间,此外,我们每15分钟左右轮询一次服务器时间。每当我们获得服务器的时间时,我们都会调用ServerTime.update(server's time in millis)
。