1

network providerで場所を取得するために使用しますAndroid application。新しい場所に着いても場所が変わらないことが時々ありました。同時に、Google マップで場所が変更されていることを発見しました。そのため、アプリケーションを終了して再起動しましたが、場所も変更されませんでした。しかし、しばらくしてから、または電話を再起動すると、新しい場所が表示されました。

理由は誰にも分かりますか?getLastKnownLocation()アプリケーションで最新の場所を取得していました。

アップデート:

この問題が発生したとき、場所が変更されていないのに cellid と LAC が変更されていることがわかりました。とても奇妙です。Google マップは cellid と LAC を使用して直接場所を取得できるので、正しい場所を取得できると思います。

より多くの更新:

この問題が発生したとき、cellid と LAC を使用して、Google サーバーから HTTP POST リクエストを介して場所を取得しました。この位置は正しかった。

ところで、私の質問は次のようなものであることがわかりました: Androidネットワークの場所は、場所を更新するのに何時間もかかります

4

1 に答える 1

0

私は信用しませんgetLastKnownLocation()。私の経験では、これは信頼できません。

を使用してロケーション コールバックをリクエストする方がよいでしょうLocationManager.requestLocationUpdates()。場所が一度だけ必要な場合は、その後を使用してコールバックの登録を解除できますLocationManager.removeUpdates()。場所が変わったときにアプリケーションに通知する必要がある場合は、(アプリケーションが必要とするものに基づいて) 合理的な最小時間および/または最小距離パラメーターを使用してコールバックに登録できます。

于 2012-05-25T12:04:36.047 に答える