首先获取LocationManager、Location及Criteria

[java] view plain copy print ?
  1. LocationManagerlocationManager;
  2. Stringcontext=Context.LOCATION_SERVICE;
  3. locationManager=(LocationManager)getSystemService(context);
  4. Criteriacriteria=newCriteria();
  5. criteria.setAccuracy(Criteria.ACCURACY_FINE);
  6. criteria.setAltitudeRequired(false);
  7. criteria.setBearingRequired(false);
  8. criteria.setCostAllowed(false);
  9. criteria.setPowerRequirement(Criteria.POWER_LOW);
  10. Stringprovider=locationManager.getBestProvider(criteria,
  11. true);
  12. Locationlocation=locationManager
  13. .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)

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

获取地理信息函数:

[java] view plain copy print ?
  1. privatevoidupdateWithNewLocation(Locationlocation){
  2. Stringcoordinate;
  3. TextViewloc=(TextView)findViewById(R.id.loc);
  4. StringaddressStr="noaddress\n";
  5. if(location!=null){
  6. doublelat=location.getLatitude();
  7. doublelng=location.getLongitude();
  8. coordinate="Latitude:"+lat+"\nLongitude:"+lng;
  9. doublelatitude=location.getLatitude();
  10. doublelongitude=location.getLongitude();
  11. Geocodergeocoder=newGeocoder(context,Locale.getDefault());
  12. try{
  13. List<Address>addresses=geocoder.getFromLocation(latitude,
  14. longitude,1);
  15. StringBuildersb=newStringBuilder();
  16. if(addresses.size()>0){
  17. Addressaddress=addresses.get(0);
  18. for(inti=0;i<address.getMaxAddressLineIndex();i++){
  19. sb.append(address.getAddressLine(i)).append("\n");
  20. }
  21. sb.append(address.getLocality()).append("\n");
  22. sb.append(address.getLocality()).append("\n");
  23. sb.append(address.getCountryName());
  24. addressStr=sb.toString();
  25. }
  26. }catch(IOExceptione){
  27. e.printStackTrace();
  28. }
  29. }else{
  30. coordinate="nocoordinate!\n";
  31. }
  32. loc.setText("yourcoordinate:\n"+coordinate+"\n"
  33. +addressStr);
  34. }

更多相关文章

  1. android 根据pid 获取进程名
  2. google地图demo
  3. 访问android所有可以使用的外接设备
  4. Android(安卓)Socket 编程
  5. Android(安卓)在Activity中获取控件尺寸的方法
  6. android点滴3
  7. android获取设备屏幕分辨率的方法
  8. android intent pick
  9. 获取Android正在运行的任务和服务

随机推荐

  1. mysql server is running with the --ski
  2. Mysql 5.7.19 winx64 ZIP Archive 安装及
  3. MySQL 4G内存服务器配置优化
  4. MySQL中KEY、PRIMARY KEY、UNIQUE KEY、I
  5. Windows安装MySQL 5.7.18 解压版的教程
  6. 详解数据库连接的URL的写法及总结
  7. mysql5.7.19 winx64安装配置方法图文教程
  8. MySql超长自动截断实例详解
  9. mysql 5.7.15 安装配置方法图文教程(wind
  10. Mysql 5.6.37 winx64安装双版本mysql笔记