私は、毎日実行される工業用地理追跡アプリケーションを開発しました。GPS を長時間使用するため、正確な (GPS のみ) および頻繁な (~ 5 秒ごと) 更新が必要です。
このアプリは複数の同一のハードウェア モデル (Samsung Tab2) で実行されていますが、一部のデバイスは可変長 (2 分から 1 時間) の間隔で位置情報の更新を報告しません。(興味深いことに、この「停電」期間は、15:00 ~ 19:00 GMT+2 頃に発生することがよくあります)。また、これはデバイスのサブセットでのみ発生する傾向があり、ハードウェアの問題を示唆しています。
もう 1 つの可能性は、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 推定値が不安定になる原因は何ですか? )。ただし、この問題が発生した時期については体系的な情報はありません。
その場合と同様に、これが私のコードのバグによって引き起こされているかどうかを判断するのに苦労しています.
誰かが同様の経験をしたか、正しい方向に私を向けることができるのだろうか. デバッグに関する提案はありますか? よろしくお願いします!