1

我开发了一个每天运行的工业地理跟踪应用程序。它长时间使用 GPS,需要准确(仅限 GPS)和频繁(约每 5 秒)更新。

尽管此应用程序在多个相同的硬件型号(三星 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) {
 }
};

该问题似乎在停电期后自行解决。

这可能是相关的(在某些时间间隔内,是什么导致 GPS 估计不稳定?)虽然这里没有关于这个问题出现的时间的系统性。

在那种情况下,我很难确定这是否是由我的代码中的错误引起的。

我想知道是否有人有类似的经历或可以为我指明正确的方向。有什么调试建议吗?提前谢谢了!

4

1 回答 1

0

有几个因素会影响 GPS 精度。在查找代码中的错误之前,我建议您检查以下信息:

哪些因素对 GPS 精度影响最大?

影响 GPS 精度的因素

于 2013-07-02T02:54:29.820 回答