为了实现定位,碰到个问题瞎折腾了快两个消失= = 特此来记录下步骤

简单实现的代码其实很简单,官方SDK技术参考网址:http://developer.baidu.com/map/wiki/index.php?title=android-locsdk/guide/v4-2

其实看官网的介绍以及提供的SDK DEMO 已经很清楚了

版本不同,弄起来也会有所不同,本人写作日期2014-7-18

第一步 到官网下载SDK 并且添加到工程

引子官方例子:

在相关下载最新的库文件。将liblocSDK4.so文件拷贝到libs/armeabi目录下。将locSDK4.2.jar文件拷贝到工程的libs目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定locSDK4.2.jar,确定后返回。这样您就可以在程序中使用百度定位SDK了。

第二步 申请开发者KEY

请参考 http://developer.baidu.com/map/wiki/index.php?title=android-locsdk/guide/key

第三步 配置 AndroidManifest.xml

添加权限

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

在<application />里面添加 你的 开发KEY

<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="你的KEY"/>

在<application />里面 添加 service 我就是少了这一步 结果定位都不会回调~ 研究了好久- - 囧


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

第四步 编写代码

4.1 首先要创建一个实例

LocationClient mLocationClient = new LocationClient(this.getApplicationContext());

4.2 实现BDLocationListener接口

mLocationClient.registerLocationListener(this); //this为实现这个接口的实例

4.3 设置参数 有各种各样的参数可以设置 参考官方例子

LocationClientOption option = new LocationClientOption();

option.setCoorType("gcj02"); // 设置坐标类型
option.setScanSpan(1000);
option.setLocationMode(LocationMode.Hight_Accuracy);
mLocationClient.setLocOption(option);

4.4 调用start 开始定位,之后会不停地回调 BDLocationListener接口里的onReceiveLocation函数,返回一个location信息

mLocationClient.start();

第五步在回调里面实现你需要的功能

loma 2014/7/18