2012-09-17 50 views
1

我正試圖在Android地圖應用程序中收集一些位置更新到ArrayList中。我想將每分鐘收集的位置更新保存到本地服務器中。我怎樣才能做到這一點。有沒有Android的功能來做到這一點?如何設置頻率以收集Android中的位置更新?

+0

您應該能夠使用的LocationManager這一點。調用[requestLocationUpdates](http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.location.LocationListener%29)並指定60000用於'minTime'參數。您將每分鐘獲得位置更新_approximately_。 –

回答

0
  1. 使用Service,這就像沒有任何UI的Activity。

  2. Service在每分鐘後運行並以緯度和經度形式取下位置更新。

  3. 然後用Non-UI線程的位置數據存儲在數據庫中,如:SQLite

對於服務

http://developer.android.com/guide/components/services.html

用於創建簡單線程:

Thread t = new Thread(new Runnable(){ 

    public void run(){ 

      // Here is the code that will do your job every minute. 

      // Please use a while loop with a loop control factor, 

      // and sleep mechanism to let your thread sleep for a minute. 

      // for sleep, instead of using Thread.sleep(timeout) better use  

      //TimeUnit.SECONDS.sleep(timeout); 

    } 
    }); 


t.start(); 
+0

:你能給我還是指點我一些與此相關的代碼。 – ChanChow

0

我們要麼使用NETWORK_PROVIDERGPS_PROVIDER到畢業生的當前位置。

在這兩種情況下,下面列出了一種方法來獲取應用程序經常更新時間戳和基於距離的位置。

位置更改將被檢測OnLocationChange()由requestLocationUpdates()註冊的LocationListener調用。

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) 

如果minDistance大於0,則只有在設備移動minDistance米時纔會廣播位置。爲了得到通知,儘可能頻繁地,這兩個參數設置爲0。

For more details and info

+0

我的問題與編程更新集合有關。我需要一些更類似的答案3.謝謝 – ChanChow