4

Location Managerが現在の場所をブロードキャストする時間間隔を指定する方法はありますか?

startListeningというメソッドを使用しています。

public void startListening() {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                0, 
                0, 
                this
        );
}

ありがとう

4

3 に答える 3

5

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の場合、プロバイダーに適切な権限がない場合。

于 2010-04-02T10:24:23.587 に答える
1

minTime:通知の最小時間間隔(ミリ秒単位) 。このフィールドは、電力を節約するためのヒントとしてのみ使用され、位置情報の更新間の実際の時間は、この値よりも大きい場合と小さい場合があります。

minDistance:通知の最小距離間隔(メートル単位)

于 2010-09-03T04:57:11.533 に答える
0
    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 9000, 500,locListener);

// 60000は1分、100はKMです

上には9000(9秒)と500があります。これは、場所が500KM以上移動した場合です。

于 2010-05-06T18:35:51.997 に答える