我正在嘗試使用Smart Location Library來獲取定期位置更新。但是當啓動這個過程時,它會觸發監聽器一次,然後就沒有進一步的更新。下面是我用使用智能位置庫的問題
public void startTracking(View v) {
provider = new LocationGooglePlayServicesWithFallbackProvider(this);
Log.i("Tag","Start Tracking");
SmartLocation smartLocation = new SmartLocation.Builder(this)
.logging(true)
.build();
smartLocation.location(provider)
.config(LocationParams.BEST_EFFORT)
.start(this);
smartLocation.activity().start(this);
}
public void stopTracking(View v) {
Log.i("Tag","Stop Tracking");
SmartLocation.with(this).location().stop();
SmartLocation.with(this).activity().stop();
}
@Override
public void onActivityUpdated(DetectedActivity detectedActivity)
{
Log.i("Tag","ActivityUpdate : "+detectedActivity.toString());
}
@Override
public void onLocationUpdated(Location location)
{
Log.i("Tag","LocationUpdate : "+location.getLatitude()+","+location.getLongitude());
}
此代碼是logcat的輸出我
01-27 14:09:01.791 3038-3038/com.angulusits.smartlocationtest I/Tag:
Start Tracking
01-27 14:09:01.879 3038-3038/com.angulusits.smartlocationtest I/Tag:
ActivityUpdate : DetectedActivity [type=STILL, confidence=100]
01-27 14:09:02.017 3038-3038/com.angulusits.smartlocationtest I/Tag:
LocationUpdate : <some-value>,<some-value>
這是作爲我按startButton儘快安排,則沒有更多的價值。
我檢查了圖書館BEST_EFFORT值是代碼:
public static final LocationParams BEST_EFFORT = new Builder().setAccuracy(LocationAccuracy.MEDIUM).setDistance(150).setInterval(2500).build();
所以我希望一次更新2500的毫秒即使設備不移動。 如果有人能指出我正確的方向,我將不勝感激。
我也面臨同樣的問題。 onLocationUpdated正在調用一次,當我開始啓動,但在那之後沒有更新。感謝您的回覆 – kiruba