1

我正在开发一个位置记录应用程序,它每秒保存一个电话位置。
我已经实现了一个订阅 LocationManager 更新的服务:

HandlerThread thread = new HandlerThread("LocationServiceHandler");
locationManager.requestLocationUpdates(GPS_PROVIDER, 
    1000 /* milliseconds*/, 0 /* meters */, listener, thread.getLooper());

该服务通过绑定到应用程序上下文来启动。
应用程序通常在后台运行,不需要任何用户交互。
一般来说,当我在我的建筑物周围走动时它工作正常 - 该服务每秒获取一个新的位置+时间戳并将其存储到位于外部存储的文件中。
但是当我到达远离城市的开阔场地时,我发现日志文件中的记录之间有 4-5 分钟的间隔。我可以肯定地说,当时手机没有使用,它在开阔的天空下,没有任何可见的东西挡住了卫星。它不规律地发生,大约每小时一次,我无法在我的办公室重现这种行为。
有什么想法,可能是什么原因造成的?如何避免?
手机是 Nexus S,Android 2.3.4

4

1 回答 1

0

你在使用唤醒锁吗?手机可能会进入睡眠状态,因此您会错过位置。否则可能只是位置管理器不给你位置,因为 1000 毫秒是最好的情况。请参阅每 5 秒更新 GPS 侦听器的答案。

于 2011-08-19T11:27:38.727 回答