2017-07-03 82 views
2

我正在使用Fused Location Api獲取位置更新。 當我設置x秒作爲時間間隔,然後我得到onLocationChanged()每x秒後調用。 而當我將10米設置爲minimumDisplacement時,onLocationChanged()不會被調用,直到用戶從原始位置移動10米。根據時間間隔獲取位置更新或位移

但是我需要onLocationChanged()在x秒過去或10米距離覆蓋時調用。

任何想法我可以如何實現這一點。

我的代碼

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); 

僅用於間隔

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

通常間隔和距離PARAMS正在與和計算的。這意味着當您至少SMALLEST_DISPLACEMENT米改變您的位置並且至少POLLING_FREQ毫秒已經過去時,則會觸發onLocationChanged()

相關問題