android 基于位置服务,Android 基于位置服务的基本知识

1、在android平台使用位置服务需要使用位置管理器,获得方法如下:

String locationService =Context.LOCATION_SERVICE;

LocationManager locationManager=(LocationManager)getSystemService(locationService);

android中为了安全机制在使用位置管理器的时候需要请求权限,请求方法如下:

这个两个权限管理用户在使用权限是可以使用的精度等级。Fine表示高精度、COARSE 表示的精度要差一点。

2、在获得位置之前还得了解一下“提供器”,在android中有三种位置提供器,如下:

LocationManager.GPS_PROVIDER;

LocationManager.NETWORK_PROVIDER;

LocationManager.PASSIVE_PROVIDER;

其中要使用GPS实现位置定位需要fine权限 ,其他两种coarse就可以了。

获得所有可用提供器的列表:

boolean enable=true;

List providers=locationManager.getProviders(enable);

也可以指定条件查找,那么这就需要使用Criteria类

Criteria criteria=new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_COARSE);

criteria.setPowerRequirement(Criteria.POWER_LOW);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setSpeedRequired(false);

criteria.setCostAllowed(true);

android3.0为Criteria引入了额外的属性

criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);

String bestProvider=locationManager.getBestProvider(criteria,true);

3、 获得手机的最后一次定位的方法:

Location location=locationManager.getLastKnowLocation(LocationManager.GPS_PROVIDER);

4、获得实时地理位置信息

检测地理位置变化有两种方法,一种是使用LocationListener 一种是使用BroadCast Receiver;

String provider LocationManager.GPS_PROVIDER;

int t=5000;// 毫秒

int distance= 5;//米

LocationListener myListener=new LocationListener(){

.......

pubolic void onStatusChanged( String p,int status, Bundle b){

}

}

locationManager.requestLocationUpdates(provider,t,distance,mylistener);

当位置变化是的时候会在listener的方法onStatusChanged会被调用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值