我开发了一个每天运行的工业地理跟踪应用程序。它使用GPS很长一段时间,并且需要准确(仅限GPS)和频繁(〜每5秒)更新。
虽然此应用程序在多个相同的硬件型号(Samsung Tab2)上运行,但某些设备不会报告可变长度间隔(2分钟到1小时)的位置更新。 (奇怪的是,这种“停电”时期经常发生在格林威治标准时间15:00-19:00 + 2)。此外,这往往只发生在一部分设备上,这表明存在硬件问题。
另一种可能性是我的processLocation方法在LocationListener.onLocationChanged中调用时间太长并且卡住(?)。 (当然,这并不能解释为什么问题在特定时间段内特定于某个设备子集。)
这是该代码的复制品:
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?)虽然这里出现这个问题的时间没有任何系统性。
在这种情况下,我很难确定这是否是由我的代码中的错误引起的。
我想知道是否有人有类似的经历或者能指出我正确的方向。有什么调试建议吗?非常感谢提前!
答案 0 :(得分:0)
有几个因素会影响GPS的准确性。在查找代码中的错误之前,我建议您查看以下信息: