使用Cordova更改设备时间

时间:2018-11-30 12:51:31

标签: android cordova

有什么方法可以从cordova应用程序更改android设备的时间吗? 我需要将设备时间与服务器同步。 该应用程序从Webapi获取服务器时间,如果与设备时间不同,我想更改设备时间。 谢谢

1 个答案:

答案 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)