首先获取LocationManager、Location及Criteria

LocationManager locationManager;String context = Context.LOCATION_SERVICE;locationManager = (LocationManager) getSystemService(context);Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);criteria.setCostAllowed(false);criteria.setPowerRequirement(Criteria.POWER_LOW);String provider = locationManager.getBestProvider(criteria,true);Location location = locationManager.getLastKnownLocation(provider);


Criteria 类介绍:

Criteria是“精确度”的意思,Criteria类提供若干个查询条件:

(1) public void setAccuracy( int accuracy)

位置解析的精度,高或低

参数: Criteria. ACCURACY_FINE,精确模式;

Criteria. ACCURACY_COARSE,模糊模式;

(2) public void setAltitudeRequired(booleanaltitudeRequired)

是否提供海拔高度信息,是或否

(3) public void setBearingRequired(boolean bearingRequired)

是否提供方向信息,是或否

(4) public void setCostAllowed(boolean costAllowed)

是否允许运营商计费,是或否

(5) public void setPowerRequirement(int level)

电池消耗,无、低、中、高,参数 Criteria. NO_REQUIREMENT,Criteria. POWER_LOW,Criteria. POWER_MEDIUM, orCriteria. POWER_HIGH,

(6) public void setSpeedRequired(boolean speedRequired)

是否提供速度信息,是或否

获取地理信息函数:

private void updateWithNewLocation(Location location) {String coordinate;TextView loc = (TextView) findViewById(R.id.loc);String addressStr = "no address \n";if (location != null) {double lat = location.getLatitude();double lng = location.getLongitude();coordinate = "Latitude:" + lat + "\nLongitude:" + lng;double latitude = location.getLatitude();double longitude = location.getLongitude();Geocoder geocoder = new Geocoder(context, Locale.getDefault());try {List addresses = geocoder.getFromLocation(latitude,longitude, 1);StringBuilder sb = new StringBuilder();if (addresses.size() > 0) {Address address = addresses.get(0);for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {sb.append(address.getAddressLine(i)).append("\n");}sb.append(address.getLocality()).append("\n");sb.append(address.getLocality()).append("\n");sb.append(address.getCountryName());addressStr = sb.toString();}} catch (IOException e) {e.printStackTrace();}} else {coordinate = "no coordinate!\n";}loc.setText("your coordinate:\n" + coordinate + "\n"+ addressStr);}


更多相关文章

  1. Android OKhttp 上传文件袋参数
  2. android 手机获取当前连接的wifi配置信息
  3. android 获取手机系统信息
  4. Android、Java单例看这里(常用的单例模式对比)
  5. android 存储一些app配置信息
  6. [Android]开启/关闭/监听 飞行模式
  7. android GPS JAVA应用程序编程-------获得经纬度,卫星信息等
  8. Android 定位自己当前位置信息
  9. android系统信息,cpu、内存、电池等

随机推荐

  1. Android中MQTT的简单实现(只是连接到服务
  2. 关于ADT中“空指针”异常的处理
  3. android 开发 Activity 与intent
  4. 实现在Android简单封装类似JQuery异步请
  5. [Android(安卓)UI界面] ListView与arrays
  6. IOS和Android的区别[转]
  7. 如何让android应用程序用中文显示(应用程
  8. 解决ndk编译Host 'awk' tool is outdated
  9. Android的super.onCreate
  10. Linux下添加Android设备