2017-07-03 16 views
2

私は位置情報の更新を得るために融合位置Apiを使用しています。 x秒を時間間隔として設定すると、x秒ごとにonLocationChanged()が呼び出されます。 10mをminimumDisplacementに設定すると、onLocationChanged()はユーザーが元の位置から10m移動するまで呼び出されません。時間間隔または変位に基づいて位置更新を取得する

しかし、私はonLocationChanged()を呼び出す必要があります。

どのように私はこれを達成することができます。

マイコード

private Location mLastLocation; 
public static final int REQUEST_LOCATION = 1006; 
LocationRequest mLocationRequest; 
private static final long POLLING_FREQ = 1000 * 10; 
private static final long FASTEST_UPDATE_FREQ = 1000 * 10; 
private static final long SMALLEST_DISPLACEMENT = 10; 

mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     mLocationRequest.setInterval(POLLING_FREQ); 
     mLocationRequest.setFastestInterval(FASTEST_UPDATE_FREQ); 
     mLocationRequest.setSmallestDisplacement(SMALLEST_DISPLACEMENT); 

startLocationUpdates(); 

答えて

3

だけ変位するため

mLocationRequest.setInterval(0); 
    mLocationRequest.setFastestInterval(0); 
    mLocationRequest.setSmallestDisplacement(SMALLEST_DISPLACEMENT); 
通常間隔と距離のparamsを用いて計算されているだけ

間隔

mLocationRequest.setInterval(POLLING_FREQ); 
mLocationRequest.setFastestInterval(FASTEST_UPDATE_FREQ); 
mLocationRequest.setSmallestDisplacement(0); // Not needed, already default value is 0 
ため

AND。つまり、少なくともSMALLEST_DISPLACEMENTメートルの位置を変更し、少なくともPOLLING_FREQミリ秒が経過すると、onLocationChanged()が発動します。

関連する問題