Thursday, February 26, 2009

android location

locationListener.onLocationChanged
當作標改變的時候會觸發事件,但是當location設備傳進相同的座標位置時,不會觸發此事件。
locationListener.onProviderDisabled
當location的設備被關閉時,觸發此事件。相反的就是onProviderEnabled
locationListener.onStatusChanged
location設備的狀態改變時,觸發此事件。共有三個狀態,location連線、location離線、location暫時離線。

得到座標的方式可以從LocationManager得到目前裝置有幾個LocationProvider,再從連線狀態的LocationProvider抓到座標資訊Location,再從Location中抓取座標經緯度或高度等其他資訊。

LocationManager locationManager;

locationManager = (LocationManager)this.getSystemService(Activity.LOCATION_SERVICE);

locationManager.requestLocationUpdates("gps", 5000, 1000, new LocationListener(){
@Override
public void onLocationChanged(android.location.Location location) {
Log.v("GPSTest", " gps onLocationChanged:"+location.getLatitude());

}

});

locationListener還有幾個方法要實作出來才行compile,這邊只列出跟抓取經緯度有關的程式碼。 另外在程式執行時,onProviderEnable事件被觸發時,表示gps的設備尚未開啟,想把介面用intent帶到android的設定頁面,程式碼如下:
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));

1 comment:

  1. startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 最後面少一個括號喔@@"

    ReplyDelete