Android 使用GPS定位獲取經緯度的方法


移動 是手機與手持設備的最大特點,可以通過Eclipse的DDMS視圖,模擬設備的位置變化,改變經緯度后,點擊send,然后運行程序,在應用程序中,動態的獲取設備位置,然后顯示當前的位置信息。

  獲取位置信息分為三步:

  1. 添加系統權限,來支持對LBS硬件的訪問

  < uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">

  < /uses-permission>

  2. 得到系統服務 的LocationManager 對象

  LocationManager loctionManager;

  String contextService=Context.LOCATION_SERVICE;

  //通過系統服務,取得LocationManager對象

  loctionManager=(LocationManager) getSystemService(contextService);

  3. 得到位置提供器,通過位置提供器,得到位置信息,可以指定具體的位置提供器,也可以提供一個標准集合,讓系統根據 標准匹配最適合的位置提供器,位置信息是由位置提供其提供的。

  a. 通過GPS位置提供器獲得位置(指定具體的位置提供器)

  String provider=LocationManager.GPS_PROVIDER;

  Location location = loctionManager.getLastKnownLocation(provider);

  b. 使用標准集合,讓系統自動選擇可用的最佳位置提供器,提供位置

  Criteria criteria = new Criteria();

  criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度

  criteria.setAltitudeRequired(false);//不要求海拔

  criteria.setBearingRequired(false);//不要求方位

  criteria.setCostAllowed(true);//允許有花費

  criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗

  //從可用的位置提供器中,匹配以上標准的最佳提供器

  String provider = loctionManager.getBestProvider(criteria, true);

  //獲得最后一次變化的位置

  Location location = loctionManager.getLastKnownLocation(provider);

  最后將位置信息顯示在TextView中,如圖:

  監聽位置的變化

  //監聽位置變化,2秒一次,距離10米以上

loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);

  //位置監聽器

  private final LocationListener locationListener = new LocationListener() {

  @Override

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

  }

  @Override

  public void onProviderEnabled(String provider) {

  }

  @Override

  public void onProviderDisabled(String provider) {

  }

  //當位置變化時觸發

  @Override

  public void onLocationChanged(Location location) {

  //使用新的location更新TextView顯示

  updateWithNewLocation(location);

  }

  };

  通過改變位置經緯度,程序會自動更新TextView顯示的位置信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM