LocationManager 这个类提供了访问系统位置的服务,该服务允许应用程序获得定期更新设备的地理位置
实例化的时候不能直接实例化 通过Context.getSystemService(Context.LOCATION_SERVICE)获取
LocationManager locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationProvider类可以获取与位置提供者相关的信息
Location类是对具体位置信息的抽象表示
使用GPS定位的关键之一就是获取LocationProvider,每一个LocationProvider对象都表示一个抽象的定位系统。无论使用GPS做什么,都需要首先获取合适的LocationProvider对象
获取LocationProvider有三个方法
1.获取android 系统所有可用LocationProvider
List<String> allProvider=locationManager.getAllProviders();
2.根据名称获取LocationProvider
// 获取passive Location Provider
LocationProvider passiveProvider = locationManager.getProvider(LocationManager.PASSIVE_PROVIDER);
// 获取gps Location Provider
LocationProvider gpsProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
// 获取network Location Provider
LocationProvider passiveProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER);
3.根据条件(Criteria)获取LocationProvider
Criteria criteria=new Criteria();
//设置 LocationProvider 免费
criteria.setCostAllowed(true);
//设置 LocationProvider 提供高度信息
criteria.setAltitudeRequired(true);
//设置LocationProvider 提供方向信息
criteria.setBearingRequired(true);
List<String> bestProvider=locationManager.getProviders(criteria, true);
当然LocationManager还提供很多的方法获得LocationProvider
比如 :getBestProvider(Criteria criteria, boolean enabledOnly)
该方法返回一个最适合的LocationProvider