有没有办法从cordova应用程序更改android设备时间?我需要将设备时间与服务器同步。该应用程序从 webapi 获取服务器时间,如果它与设备时间不同,我想更改设备时间。谢谢
1 回答
1
你不应该为了让你的应用程序工作而试图弯曲整个设备。如果服务器时间错误怎么办?如果用户想要不同的时间怎么办?
我们对我们的应用程序有相同的需求,我们正在做的就是在 server-time 中运行应用程序。
这是 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).
于 2018-11-30T13:12:38.597 回答