Android实现GPS定位代码实例

2019-12-10 20:01:16王冬梅
  • bRet = false;  } 
  • else  { 
  • Toast.makeText(this, "GPS已开启", Toast.LENGTH_SHORT).show();  } 
  •   return bRet; 
  • }  该方法获取当前的经纬度, 第一次获取总是null 
  • 后面从LocationListener获取已改变的位置  mLocationManager.requestLocationUpdates()是开启一个LocationListener等待位置变化 
  • private Location getLocation()  { 
  • //获取位置管理服务  mLocationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE); 
  •   //查找服务信息 
  • 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 = mLocationManager.getBestProvider(criteria, true); //获取GPS信息 
  •   Location location = mLocationManager.getLastKnownLocation(provider); 
  •   mLocationManager.requestLocationUpdates(provider, 2000, 5, locationListener); 
  •   return location; 
  • }  改方法是等待GPS位置改变后得到新的经纬度 
  • private final LocationListener locationListener = new LocationListener()  { 
  • public void onLocationChanged(Location location)  { 
  • // TODO Auto-generated method stub  if(location != null) 
  • textView.setText("维度:" + location.getLatitude() + "n经度:"  + location.getLongitude()); 
  • else  textView.setText("获取不到数据" + Integer.toString(nCount)); 
  • }   
  • public void onProviderDisabled(String provider)  { 
  • // TODO Auto-generated method stub  } 
  •   public void onProviderEnabled(String provider) 
  • {  // TODO Auto-generated method stub