Android 定位服务(Location-Based Services)

Android定位服务融合了GPS定位、移动通信、导航等多种技术,提供与空间位置相关的综合应用服务。近些年来,基于位置的服务发展更为迅速,涉及商务、医疗、工作和生活的各个方面,为用户提供定位、追踪和敏感区域警告等一系列服务。

Android平台支持提供位置服务的API,在开发过程中主要使用LocationManager和LocationProviders对象。

- LocationManager:

用来获取当前位置,追踪设备的移动路线,或设定敏感区域,在进入或离开敏感区域时设备会发出特定警报。

- LocationProviders:

提供定位功能的组件集合,集合中的每种组件以不同的技术提供设备的当前位置,区别在于定位的精度、速度和成本等方面。

为了使开发的程序能够提供位置服务,首先的问题是如何获取LocationManager。获取LocationManager可以通过调用android.app.Activity.getSystemService()函数获取,代码如下:

String serviceString = Context.LOCATION_SERVICE;
LocationManager locationManager = (LocationManager) getSystemService(serviceString);

其中Context.LOCATION_SERVICE指明获取的是位置服务,Android(API 23)支持的系统级服务如下表:

Context类的静态常量 返回对象 说明
LOCATION_SERVICE location LocationManager 控制位置等设备的更新
WINDOW_SERVICE window WindowManager 最顶层的窗口管理器
LAYOUT_INFLATER_SERVICE layout_inflater LayoutInflater LocationManager 将XML资源实例化为View
POWER_SERVICE power PowerManager 电源管理

……

在这里我只列举了以上四个,其他的可在Android SDK中关于public Object getSystemService (String name) 方法下查看,目前共有19个系统级服务,我们也没必要全部牢记,在使用相应系统服务的时候可查看SDK文档。这些系统服务的使用方法也相似,只不过返回的管理对象类型不同,其返回的管理对象的类型随被请求的名称而变化。比如Context.LOCATION_SERVICE 对应返回的是LocationManager类型对象,Context.WIFI_SERVICE对应返回的是WifiManager类型对象。

回到我们此文的重点:LBS(Location-Based Services),在获取LocationManager之后,还需要指定LocationManager的定位方法,然后才能够调用LocationManager.getLastKnowLocation()方法获取当前位置。

那么LocationManager的定位方法都有哪些呢?在某2012年出版的高等院校Android教材中写到:

目前LocationManager中主要有两种定位

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值