public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
指定されたプロバイダーから定期的に通知される現在のアクティビティを登録します。定期的に、提供されたLocationListenerは、現在の場所またはステータスの更新で呼び出されます。
最新の場所を受け取るまでに時間がかかる場合があります。すぐ近くの場所が必要な場合、アプリケーションはgetLastKnownLocation(String)メソッドを使用できます。
ユーザーがプロバイダーを無効にした場合、更新は停止し、onProviderDisabled(String)
メソッドが呼び出されます。プロバイダーが再び有効になるとすぐに、onProviderEnabled(String)メソッドが呼び出され、場所の更新が再開されます。
通知の頻度はminTime
、およびminDistance
パラメーターを使用して制御できます。minTime
が0より大きい場合、LocationManagerは、minTime
電力を節約するために、ロケーションの更新の間に数ミリ秒休止する可能性があります。minDistance
が0より大きい場合、場所はデバイスがメートルminDistance
単位で移動した場合にのみブロードキャストされます。通知をできるだけ頻繁に取得するには、両方のパラメーターを0に設定します。
minTime
バックグラウンドサービスは、GPSまたはワイヤレス無線を常にオンにしてデバイスが電力を消費しすぎないように、十分に高く設定するように注意する必要があります。特に、60000ms未満の値は推奨されません。
提供されたルーパーは、コールバックメカニズムを実装するために使用されます。
パラメーター
- プロバイダー登録するプロバイダーの名前
- minTime通知の最小時間間隔(ミリ秒単位)。このフィールドは、電力を節約するためのヒントとしてのみ使用され、位置情報の更新間の実際の時間は、この値よりも大きい場合と小さい場合があります。
- minDistance通知の最小距離間隔(メートル単位)
- リスナーaのonLocationChanged(Location)メソッドがロケーションの更新ごとに呼び出されます
- looperコールバックメカニズムを実装するためにメッセージキューが使用されるLooperオブジェクト。
スロー
IllegalArgumentException
プロバイダーがnullの場合、または
IllegalArgumentException
リスナーがnullの場合は存在しない
IllegalArgumentException
場合、ルーパーがnull
SecurityException
の場合、プロバイダーに適切な権限がない場合。