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

慢慢看一下上述的连接中关于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 () 方法,并把新的位置信息传入)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值