我開發了一個每天運行的工業地理跟蹤應用程序。它長時間使用GPS,需要精確(僅限GPS)和頻繁(〜每5秒)更新。在特定的時間間隔(週期性GPS問題)中,可變長度GPS問題的原因是什麼?
儘管此應用程序在多個相同的硬件型號(三星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?),雖然這裏沒有什麼系統的問題出現時間。
在這種情況下,我很難確定這是否是由我的代碼中的錯誤引起的。
我不知道是否有人有類似的經歷,或可以指出我在正確的方向。任何調試建議?提前謝謝了!
所有的設備都在同一個地方?或者你能看到沒有正確報告的設備位置之間的模式? –
是的,所有設備都在同一個城市,但這些「停電」期間沒有地理格局。 – JAC