会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 57自学网———旗下安卓自学网站专注Android系统开发教程!
当前位置:主页 > 第三方集成 > 百度地图集成 > 正文

Android使用百度定位SDK 方法及错误处理

时间:2016-02-29 16:52 来源:网络整理 作者:安卓自学网 阅读:

之前我的项目中的位置定位使用的是基站方法,使用的Google提供的API,但是前天中午突然就不返回数据了,到网上搜了一下才知道,Google的接 口不提供服务了,基于时间紧迫用了百度现有的SDK,但是在使用过程中第一次获取位置总是空值,经过多次实验终于成功。当然,如果需要精确的位置,你可以 再加上位置偏移算法。我的应用对这个要求不高,就没做,一搜一大把,就不多说了。

下面这段话来自 百度地图API>定位SDK

百度地图定位SDK免费对外开放,无需申请key。在使用百度定位SDK前,希望先阅读百度定位地图的API。如果使用则被视为对使用条款的完全接收,并同意接收本协议的各项条款约束。
目前百度地图定位SDK只支持Android和Symbian量大平台,其他产品正在开放中。

下面事例是使用Android平台的部分代码。对于这个平台百度的开放人员已经写了完整的demo,把工程导入到eclipse中之后一般没有错误,如果报错的话,eclipse也会给出提示。一般可以通过将propertie.properties文件名字改为default.properties就 可以了,如果还有错误的话,显示工程activity错误啊什么的,就是SDK版本不对的问题了,你可以通过他的manifest文件查 看<uses-sdk android:minSdkVersion="8" />找到这个最小值,比如我下载的是2.6他的最低版本是5,我eclipse默认版本是8,就可以同过右键单击该工程,选择最下面那个properties项,然后在弹出对话框的右侧列表中选择Android,在左侧选择API level为5,也就是2.0,然后确定。就木有问题了。

下面说一下使用该API的具体步骤:
也可以查看百度定位SDK自己的开发指南

1、首先第一步就是搭配环境:
①先将百度demo中的libs文件夹复制到自己的工程。(别忘记把jar包build path)
②然后复制

<service android:name="com.baidu.location.f" android:enabled="true"
android:process=":remote" android:permission="android.permission.BAIDU_LOCATION_SERVICE">
<intent-filter>
       <action android:name="com.baidu.location.service_v2.6"></action>
</intent-filter>
</service>

到manifest的application 节点
接下来复制百度地位SDK需要的permission

<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></permission>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE">
        </uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">
        </uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
        </uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
        </uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
        </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">
        </uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
        </uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
        </uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">
        </uses-permission>
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>

③ 接下来就可以在代码中放心的使用百度定位SDK了.
   下面是来自百度的提醒.需要注意的是第五条,因为我们第一次经常定位不到位置:

1、您需要确保程序编译通过。如果对自己写的代码有疑问,可以下载官方高级示例,查看标准源代码。

2、请确保网络通畅,无论是连接wifi还是使用2G/3G信号。

3、定位SDK的调用必须在主线程中。

4、必须在定位SDK启动前设定好参数,例如是否使用GPS,扫描时间间隔设置等。我们强烈建议您设置自己的prodName,并保管好,这样方便我们为您提供更好的定位服务。

5、定位SDK start之后立即执行,这种情况下很难定位成功,因为定位SDK刚开始启动还没有获取到定位信息。这时getlocation一般为null。如果是要获取位置成功,可以在listerner中添加一个判断如果strData为空,则再发起一次定位。

6、定位覆盖率大概在98%。就是说有2%可能服务器没有数据,所以定位会失败。只需要走到别的地方,或者多试几次即可成功定位。

7、请使用真机。在虚拟机上无法进行定位测试。

(责任编辑:www.57zxw.com)

顶一下
(0)
0%
踩一下
(0)
0%