Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中LocationManager的簡單使用02

Android中LocationManager的簡單使用02

編輯:關於Android編程

//獲得當前位置的坐標

  LocationManager locationManager = (LocationManager)

  getSystemService(LOCATION_SERVICE);//獲取LocationManager的一個實例

  locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

  10000, 0, locationListener);

  /*注冊一個周期性的位置更新 每隔1000ms更新一次,並且不考慮位置的變化。

  最後一個參數是LocationListener的一個引用*/

  Location location = locationManager.getLastKnownLocation

  (LocationManager.GPS_PROVIDER);

  String latitude = Double.toString(location.getLatitude());//經度

  String longitude = Double.toString(location.getLongitude());//緯度

  String altitude = Double.toString(location.getAltitude());//海拔

  //輸出文字

  TextView tv = (TextView) this.findViewById(R.id.local);

  tv.setText("latitude:"+latitude+" longitude:"+longitude

  +" altitude:"+altitude+" ");

  實現LocationListener的引用

  private final LocationListener locationListener = new LocationListener() {

  public void onLocationChanged(Location location) {

  //當坐標改變時觸發此函數,如果Provider傳進相同的坐標,它就不會被觸發

  if (location != null) {

  String latitude = Double.toString(location.getLatitude());//經度

  String longitude = Double.toString(location.getLongitude());//緯度

  String altitude = Double.toString(location.getAltitude());//海拔

  //輸出文字

  TextView tv = (TextView) findViewById(R.id.local);

  tv.setText("latitude:"+latitude+" longitude:"

  +longitude+" altitude:"+altitude+" ");

  }

  }

  public void onProviderDisabled(String provider) {

第1頁 第2頁

  Android的強大表現在各個方面,在這裡介紹一下其中的一個自動獲取所在地理位置坐標的功能。Android中通過LocationManager來獲取地理位置等相關信息的。

  首先,需要獲取LocationManager實例。

  //獲得當前位置的坐標

  LocationManager locationManager = (LocationManager)

  getSystemService(LOCATION_SERVICE);//獲取LocationManager的一個實例

  locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

  10000, 0, locationListener);

  /*注冊一個周期性的位置更新 每隔1000ms更新一次,並且不考慮位置的變化。

  最後一個參數是LocationListener的一個引用*/

  Location location = locationManager.getLastKnownLocation

  (LocationManager.GPS_PROVIDER);

  String latitude = Double.toString(location.getLatitude());//經度

  String longitude = Double.toString(location.getLongitude());//緯度

  String altitude = Double.toString(location.getAltitude());//海拔

  //輸出文字

  TextView tv = (TextView) this.findViewById(R.id.local);

  tv.setText("latitude:"+latitude+" longitude:"+longitude

  +" altitude:"+altitude+" ");

  實現LocationListener的引用

  private final LocationListener locationListener = new LocationListener() {

  public void onLocationChanged(Location location) {

  //當坐標改變時觸發此函數,如果Provider傳進相同的坐標,它就不會被觸發

  if (location != null) {

  String latitude = Double.toString(location.getLatitude());//經度

  String longitude = Double.toString(location.getLongitude());//緯度

  String altitude = Double.toString(location.getAltitude());//海拔

  //輸出文字

  TextView tv = (TextView) findViewById(R.id.local);

  tv.setText("latitude:"+latitude+" longitude:"

  +longitude+" altitude:"+altitude+" ");

  }

  }

  public void onProviderDisabled(String provider) {

// Provider被disable時觸發此函數,比如GPS被關閉

  }

  public void onProviderEnabled(String provider) {

  // Provider被enable時觸發此函數,比如GPS被打開

  }

  public void onStatusChanged(String provider, int status, Bundle extras) {

  // Provider的轉態在可用、暫時不可用和無服務三個狀態直接切換時觸發此函數

  }

  };

  最後我們在AndroidManifest.xml中加入GPS權限

  

  如果是在模擬器中調試,可以打開”Window” ?>”Show View” 中打開”Emulator Control” View即可手動設置,或通過KML和GPX文件來設置一個坐標。

  或者使用geo命令,開始?> 運行?>輸入 telnet 5554,然後在命令行下輸入 geo fix -39.4 116.9 326 ,這三個參數分別代表了經度、緯度和海拔(海拔可不寫)

  這樣我們就可以獲取所在位置的坐標了


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved