1

次のように、特定のプロバイダーを提供する場所のリスナーを作成する例をたくさん見つけました。

LocationManager lm =
    (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);

ただし、正確な場所は必要ありませんが、可能な限り最善のものを使用します。プロバイダーごとにリスナーを作成せずに、その時点で利用可能な最適なリスナーを作成する方法はありますか?

たとえば、利用可能な場合は GPS を使用し、利用できない場合はネットワークなどを使用します。また、これはウィジェットなので、利用可能なものを確認したくありません。ウィジェットは長時間稼働するため、そのためのリスナーを作成します。プロバイダーの有効化/無効化を通じて存続する可能性があります。

助けてくれてありがとう

4

1 に答える 1

1

の使用を検討しましたPASSIVE_PROVIDERか? それを組み合わせるgetLastKnownLocation()ことで、あなたが望むもののほとんどを手に入れることができるかもしれません...getLastKnownLocation()デバイスがすでに知っている場所がある場合は、最初に呼び出して場所を確立し、次にPASSIVE_PROVIDER場所プロバイダーからの更新をリッスンします (つまり、場所要求がトリガーされます)デバイス上の他のアプリケーションから)。

位置情報を要求するアプリケーションが他にないというシナリオも考えられるため、GPS_PROVIDERまたはを使用して、少なくとも 1 つの初期位置修正をトリガーする必要がありNETWORK_PROVIDERます。

于 2011-04-03T02:50:28.173 に答える