为了实现定位,碰到个问题瞎折腾了快两个消失= = 特此来记录下步骤
简单实现的代码其实很简单,官方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-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> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
在<application />里面添加 你的 开发KEY
<meta-data android: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