您的位置:首页 > 移动开发 > Android开发

android学习笔记——Localtion服务之LocationManager

2016-03-20 00:06 393 查看
/article/7553414.html
慢慢看一下上述的连接中关于LocationManager的讲解以及其中得注释部分,博主讲的挺详细了。

接下来我把LocationManager的基本用法零碎的写一下

获取到一个LocationManager的实例调用系统的服务(因为LocationManager本身就是一个系统的服务)
LocationManager locationManager = (LocationManager) getSystemService (Context.LOCATION_SERVICE);

接下来我们需要一个位置提供器来确定设备当前的位置。android中一般有三种位置提供器可供选择,GPS_PROVIDER、NETWORK_PROVIDER、PASSIVE_PROVIDER 。其中前两种使用比较多,分别表示使用GPS定位和使用网络定位。
GPS 耗电高,准确度高
网络 耗电低,准确度稍差(很不错的选择)

选择好位置提供器的方式后
String provider = LocationManager.NETWORK_PROVIDER;
Location location = locationManager.getLastKnowLocation (provider);
这个location对象中包含里经度、纬度、海拔等一系列位置信息,然后从中取出我们要的就好。

判断一下有哪些位置提供器可用,我们可以用一个数组来接收目前启用的位置提供器有哪些,然后再根据需要进行甄别。
List<String> providerList = locationManager.getProviders (true) ;
传入的true 表示,只有启用的位置提供器才会被返回。

当位置发生改变时,我们以隔一段时间请求一次的方式来获取更改的状态,同时,利用监听事件来对改变的状态进行判别。
locationManager . requestLocationUpdates (LocationManager.GPS_PROVEDER , 5000 , 10 , 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) {

}
});
当状态发生改变时(如移动距离超过了10米,就会调用LocationListener的onLocationChanged () 方法,并把新的位置信息传入)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: