移动应用:离线时如何获得正确的时间

时间:2016-06-17 09:37:57

标签: android ios cordova time gps

我们正在使用需要在Android,iOS和Windows 10 Mobile上运行的Ionic / cordova构建应用程序。

目标是注册开始和停止事件,我们将需要注册此事件的确切时间和地点。

严重关注用户会修改手机上的时间设置以发送虚假数据。

只要这些事件立即发送到服务器,我们就可以使用服务器时间来验证用户发送给我们的内容。但是还需要能够在离线时工作。

我们首先想到的是使用GPS时间。在cordova中,position对象具有时间戳。 https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-geolocation/

但在进一步阅读herehere之后,这不一定是GPS服务器的时间,也只是当地时间。我已经阅读了有关使用设备正常运行时间的解决方法,但是一旦重新启动,这将无法正常工作。但大多数谈话都是几年之久。

目前我们认为简单方法是将离线发送的事件标记为“可疑”。

有没有其他方法可以准确地确定离线时间而没有用户篡改的风险?

1 个答案:

答案 0 :(得分:0)

Haven自己没有尝试过,但是如同在SO中所说的那样从网络提供商那里获取时间呢:I want to get time from GSM network

long networkTS = locMan.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getTime();
  

getLastKnowLocation返回的时间可能是旧的,如果你想要当前的话   时间使用

locMan.requestSingleUpdate() and pass the network provider

但是,这可能无法在iOS或Windows中使用。