使用できますPASSIVE_PROVIDER
が、これは API レベル 8 でのみ導入されました。
LocationManager の Android ドキュメントから
実際に場所の修正を開始せずに場所を受信するための特別な場所プロバイダー。このプロバイダーを使用すると、実際に自分で位置情報を要求しなくても、他のアプリケーションやサービスが要求したときに位置情報の更新を受動的に受け取ることができます。このプロバイダーは、他のプロバイダーによって生成された場所を返します。getProvider() メソッドを照会して、場所の更新元を特定できます。アクセス許可 android.permission.ACCESS_FINE_LOCATION が必要ですが、GPS が有効になっていない場合、このプロバイダーは大まかな修正しか返さない可能性があります。
この方法では、位置情報の更新を直接要求するのではなく、他のアプリケーションが更新を要求したときにのみ取得します。
getLastKnownLocation()
再びAndroidのドキュメントを引用する場合:
指定されたプロバイダーから取得された最後の既知の位置修正からのデータを示す Location を返します。これは、プロバイダーを開始せずに実行できます。この場所は、デバイスの電源を切って別の場所に移動した場合など、古い可能性があることに注意してください。プロバイダーが現在無効になっている場合は、null が返されます。
したがって、同じ場所を何度も取得している場合はgetLastKnownLocation
、プロバイダーが無効になっている可能性があり、関数名が示すもの、つまりデバイスの最後の既知の場所を取得しているだけです。詳細については、上記の引用を読むか、Android のドキュメントを参照してください。