Android应用程序实现定位功能(使用百度定位SDK)

这篇博客介绍了如何在Android应用中实现定位功能,主要采用百度定位SDK。由于系统API的LocationManager常返回null,百度SDK成为国内开发的优选。文章详细讲解了设置参数、请求定位、权限申请及接口回调等步骤,并提供了布局和活动文件示例。
摘要由CSDN通过智能技术生成

简介

Android应用程序如果能够记录用户的位置信息会为应用程序增添不少价值。Android应用实现定位功能有两种方式:使用Android系统API的LocationManager、Location类或者使用第三方SDK实现定位功能。然而Android系统API定位功能getLastKnownLocation(String provider)往往返回null(可能是因为系统API使用Google地图服务实现定位,而Google服务在国内不好使)。在国内百度也有提供定位服务,而且响应的SDK也在不断更新,因此在国内开发应用程序使用百度定位SDK实现定位功能是个不错的选择(可恶的是SDK说明太简陋了)。

定位大致原理:应用程序设置参数并请求百度定位SDK,百度定位SDK获取手机当前定位依据(如WIFI,GSM,GPS信息等),并使用此依据像百度后台地图服务发出定位请求,请求成功后百度定位SDK会调用应用注册的回调接口以便通知应用。

接口

要使用百度定位SDK实现应用程序定位功能需要开发者注册百度开发者账号并为应用程序注册申请AccessKey(详细说明请参见 http://developer.baidu.com/map/index.php?title=android-locsdk),并下载响应SDK。
如果仅实现定位功能,主要需要以下三个接口:LocationClient、LocationClientOption、BDLocationListener、BDLocation 。
BDLocation 为位置类,包含纬度、经度、精度等等
LocationClient为定位服务客户端类,是定位SDK核心类,它负责发送定位请求,通知定位结果等,定位相关操作是在后台线程中执行的。
LocationClientOption为LocationClient使用的定位选项,定义了请求的一些详细信息,比如定位模式、定位请求时间间隔、是否获取地址信息等等。
BDLocationListener为定位回调接口,此接口有一个方法onReceiveLocation(BDLocation location),此接口注册给LocationClient对象上,在每次定位后此方法会被调用(在主线程中调用)。

示例

说明:

本示例通过百度定位SDK实现Android应用程序的定位功能,并将定位结果展示。

注意:

在Manifest.xml配置文件application标签内定义 定位服务和定义元数据name/value,百度定位SDK使用次元数据作为请求时的ak。 
<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
        </service>
<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="key为自己应用申请的key" />

为应用程序申请相应权限

<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
&l
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值