6

ユーザーの操作によって位置情報を取得しようとするアプリがあります。GPS とネットワークの両方をリッスンし、時間/精度に基づいた決定マトリックスを使用して、リッスンをいつ停止し、どの修正を返すかを決定します。

時折、非常に奇妙な動作に気付きました。次のように、古典的な方法を使用して、修正がどれくらい古いかを確認します。

long age = now - newLocation.getTime();
if(age >= prefs.getLocationMaxAge()){
    Log.d(TAG, "location too old.");
    return;
}

ただし、返されたタイムスタンプによると、OS から返された location.getTime の経過時間がおそらく 15 ~ 20 秒である場合がありますが、非常に古いことは確かです。たとえば、経度/緯度の修正が、30 分前にハンドセットがあった位置からのものであるとします。

Wi-Fi とネットワークの両方から発生しているようですが、GPS では発生していません。私にとって、これは完全にクレイジーです。他の誰かがこれを見たことがありますか?それを回避する方法はありますか?

いくつかの異なる携帯電話で入手しましたが、最新のものはSamsung Galaxy S IIです。

ヘルプは大歓迎です。

編集:本当に明確にするために、問題は、「新しい」の経度/緯度が確かにわかっているときに、おそらく数秒のタイムスタンプの年齢を持つ場所で「onlocationchanged」コールバックがOSによって呼び出されることですfix は、電話が少なくとも 30 分間使用されていない場所です。

これにより、ハンドセットがどこにあるのかを正確に特定するのが難しくなります...

4

1 に答える 1

0

Wi-Fiとネットワークの両方から発生するようですが、GPSでは発生しません

Wi-Fi およびネットワーク セル サイト ベースの三角測量では、精度が非常に悪いため、これは公平に見えます。彼らはおそらく、30 分前にさかのぼるキャッシュされた場所を使用しています。新しいAPを検出できるようにセル サイトを変更したり、別の建物に移動したりしていない限り、残念ながら、キャッシュされた場所しか取得できません。新しい場所が必要な場合は、GPS プロバイダーを使用してください。

于 2011-10-04T13:05:12.763 に答える