相关疑难解决方法(0)

Android问题找出最近的最新GPS修复方法

我的应用使用LocationListener来跟踪当前位置.只要GPS提供商提供定期修复,这种方法效果很好.但是,我希望我的应用程序在用户不再可靠时提醒用户,因为此修复程序不再是最新的.因此我使用timeCheckHandler每隔几秒调用一次getLastKnownLocation.

我的问题是,即使经常收到准确的修复,通过将getTime()应用于getLastKnownLocation返回的位置返回的时间通常比System.currentTimeMillis()返回的当前时间早,通常大约20秒.

我通过向onLocationChanged(arg0)添加代码来记录修复时间(arg0.getTime())和当前时间(System.currentTimeMillis()),进一步调查了这个问题.我再次看到大约20秒的差异.

该代码目前如下:

    public void onLocationChanged(Location arg0) {
    mapview.handleLocationChanged(mapview, arg0.getLatitude(), arg0.getLongitude(), arg0.getBearing(), arg0.getAccuracy(), "GPS fix");
    addDebugNote("Fix received at time: "+Long.toString(arg0.getTime()/1000)+" Now: "+Long.toString((System.currentTimeMillis())/1000));
}
Run Code Online (Sandbox Code Playgroud)

和我的调试文件的典型输出读取:

Fix received at time: 1292091908 Now: 1292091928
Run Code Online (Sandbox Code Playgroud)

为什么我应该看到修复时间和当前系统时间之间的这种差异?

我是否必须接受大约20秒的差异是正常的?

time gps android gps-time

6
推荐指数
1
解决办法
5149
查看次数

标签 统计

android ×1

gps ×1

gps-time ×1

time ×1