爲了實現定位,碰到個問題瞎折騰了快兩個消失= = 特此來記錄下步驟
簡單實現的代碼其實很簡單,官方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