【发布时间】:2013-07-01 21:54:19
【问题描述】:
我开发了一个每天运行的工业地理跟踪应用程序。它长时间使用 GPS,需要准确(仅限 GPS)和频繁(~ 每 5 秒)更新。
虽然此应用在多个相同的硬件型号(Samsung Tab2)上运行,但某些设备不会报告可变长度间隔(2 分钟到 1 小时)的位置更新。 (奇怪的是,这个“停电”期通常发生在 15:00-19:00 GMT+2 左右)。此外,这往往只发生在一部分设备上,这表明存在硬件问题。
另一种可能性是我在 LocationListener.onLocationChanged 内部调用的 processLocation 方法耗时过长并且卡住了(?)。 (当然这并不能解释为什么这个问题在一段时间内是特定于设备子集的。)
这是该代码的复制品:
mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
if (location.getProvider().equals("gps") && location.getAccuracy() < accuracyThresh) {
processLocation(location, time);
} else {
discardLocation(location, time);
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
};
问题似乎在停电期后自行解决。
这可能是相关的 (What causes erratic GPS estimates during certain time intervals?),尽管这里没有关于此问题出现时间的系统信息。
在那种情况下,我很难确定这是否是由我的代码中的错误引起的。
我想知道是否有人有类似的经历或可以为我指明正确的方向。有什么调试建议吗?非常感谢!
【问题讨论】:
-
所有设备都在同一个地方?或者您能否看到未正确报告的设备位置之间的模式?
-
是的,所有设备都在同一个城市,但这些“停电”时期背后没有地理模式。
标签: android gps locationlistener