轉(zhuǎn)載或听、引用請(qǐng)標(biāo)明出處
http://www.reibang.com/p/29ccac3e1e42
本文出自zhh_happig的簡書博客脯倚,謝謝
Android百度地圖(二):百度地圖sdk顯示位置點(diǎn)渔彰、圖層繪制
Android百度地圖(三):百度地圖畫運(yùn)動(dòng)軌跡及圖層點(diǎn)擊事件處理
Android百度地圖(四):百度地圖運(yùn)動(dòng)軌跡糾偏、去噪推正、綁路之百度鷹眼sdk服務(wù)
Android百度地圖(五):百度地圖鷹眼sdk監(jiān)控進(jìn)出地理圍欄(區(qū)域)
Android百度地圖(六):百度地圖POI檢索恍涂,行政區(qū)邊界、公交植榕、線路規(guī)劃查詢再沧,地理編碼介紹
本文主要針對(duì)百度定位sdk的api進(jìn)行詳細(xì)說明、注意事項(xiàng)尊残,還會(huì)簡單的談一下定位的原理炒瘸,目的是讓讀者真正了解定位,只有在完全了解的情況下寝衫,在開發(fā)中才會(huì)少走彎路顷扩,少踩坑。
一 定位簡介
目前定位大致分為三種:gps定位慰毅、wifi定位隘截、基站定位
gps定位:衛(wèi)星定位,利用手機(jī)gps硬件定位汹胃,實(shí)現(xiàn)簡單婶芭,手機(jī)本地就能實(shí)現(xiàn)定位,不需要和服務(wù)端進(jìn)行交互统台。
//偽代碼
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 5, listener);
手機(jī)GPS狀態(tài)說明
在橋梁下果漾、大樹下、建筑物內(nèi)谷誓、隧道內(nèi)绒障,手機(jī)很多時(shí)候都無法接收到gps信號(hào),就無法利用gps定位了捍歪。
在室內(nèi)無法定位是gps定位的最大問題户辱,此時(shí)就得利用WiFi定位了。
wifi定位:一說到wifi定位糙臼,很多人覺得奇怪庐镐,WiFi怎么能知道我的位置呢,wifi硬件會(huì)返回位置嗎变逃?其實(shí)這些WiFi都不能做到必逆。wifi定位的原理是,我們?cè)谑彝獾臅r(shí)候韧献,手機(jī)能接收到gps位置信息末患,也能掃描到WiFi,當(dāng)手機(jī)把gps位置和WiFi傳到后端服務(wù)器锤窑,WiFi和gps位置就建立了映射關(guān)系璧针,當(dāng)手機(jī)在室內(nèi)無法接收到gps時(shí),卻能掃描WiFi渊啰,手機(jī)把WiFi傳到服務(wù)器查詢出對(duì)應(yīng)的gps位置探橱,然后進(jìn)行計(jì)算可以得到位置結(jié)果(經(jīng)緯度),其中映射和計(jì)算是很復(fù)雜的過程,感興趣的同學(xué)可以查閱相關(guān)資料腐泻。wifi定位需要wifi開啟构诚,并且手機(jī)能上網(wǎng)。
基站定位:當(dāng)手機(jī)無法掃描到WiFi時(shí),只要裝了sim卡盏阶,就能連接移動(dòng)或聯(lián)通等基站魄眉,即可用基站定位,定位原理和WiFi大致相同。基站定位需要裝了sim卡浪蹂,并且手機(jī)能上網(wǎng)斥赋。
wifi定位與基站定位統(tǒng)稱為網(wǎng)絡(luò)定位滑绒,當(dāng)wifi關(guān)閉,或者掃描不到WiFi列表時(shí)倦零,sdk只會(huì)把獲取的基站信息發(fā)給服務(wù)端育瓜,進(jìn)行基站定位恋脚;如果沒有sim书妻,wifi開啟见间,則sdk會(huì)把掃描到的WiFi信息發(fā)給服務(wù)端荒辕,進(jìn)行wifi定位;如果既有wifi又有基站,則sdk會(huì)把這兩者信息都發(fā)給服務(wù)端茧跋,具體用哪一種定位哪亿,不太確定,但絕大多數(shù)情況下都是用wifi定位的。
在室內(nèi)無gps時(shí)奇瘦,百度定位就是利用的WiFi和基站定位的瓶您,在室外有g(shù)ps時(shí)夜赵,百度是利用的android自帶的LocationManager進(jìn)行定位,當(dāng)然室外也可以用WiFi基站定位。
gps定位精度很高,幾米到十幾米岛啸,但是耗電嚴(yán)重瓤狐;
WiFi定位精度相對(duì)于gps差一點(diǎn),但是也能到十幾米郁稍、幾十米赦政,也有上百米的誤差的,低耗電耀怜;
基站定位精度很差恢着,一般都有幾百米,上千米的誤差略步。
這個(gè)誤差其實(shí)和wifi、基站的信號(hào)覆蓋半徑有關(guān)钦购,wifi覆蓋半徑大概100m左右票从,而基站的覆蓋半徑就到km級(jí)別了锥咸。
二 百度定位sdk配置
1.必須申請(qǐng)apikey
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="P9XLjU5FvdtDhRUTumdg2xRTpmk*****" />
每個(gè)apikey對(duì)應(yīng)一個(gè)唯一的應(yīng)用捺典,這個(gè)apikey的主要作用是統(tǒng)計(jì)每個(gè)應(yīng)用每天的定位次數(shù),雖然百度沒有說明每天的訪問次數(shù)凉当,但是應(yīng)該有一個(gè)訪問次數(shù)谴供。比如惡意攻擊,設(shè)置訪問次數(shù)可防止惡意攻擊周瞎。
2.導(dǎo)入jar声诸、庫文件
BaiduLBS_Android.jar:提供定位sdk的api
liblocSDK7a.so:這個(gè)so文件的主要作用是對(duì)客戶端發(fā)送給服務(wù)端的參數(shù)數(shù)據(jù)進(jìn)行加密
開發(fā)包下載地址,選擇基礎(chǔ)定位即可灾梦。
3.設(shè)置AndroidManifest.xml
<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>
周期性的定位請(qǐng)求是在這個(gè)服務(wù)中發(fā)起的逾雄,如果不聲明這個(gè)Service,周期性請(qǐng)求無法正常工作腻脏,但可進(jìn)行一次定位鸦泳。
4.聲明使用權(quán)限
<!-- 這個(gè)權(quán)限用于進(jìn)行網(wǎng)絡(luò)定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 這個(gè)權(quán)限用于訪問GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于訪問wifi網(wǎng)絡(luò)信息,wifi信息會(huì)用于進(jìn)行網(wǎng)絡(luò)定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 獲取運(yùn)營商信息永品,用于支持提供運(yùn)營商信息相關(guān)的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 這個(gè)權(quán)限用于獲取wifi的獲取權(quán)限做鹰,wifi信息會(huì)用來進(jìn)行網(wǎng)絡(luò)定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用于讀取手機(jī)當(dāng)前的狀態(tài)-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 寫入擴(kuò)展存儲(chǔ),向擴(kuò)展卡寫入數(shù)據(jù)鼎姐,用于寫入離線定位數(shù)據(jù)-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 訪問網(wǎng)絡(luò)钾麸,網(wǎng)絡(luò)定位需要上網(wǎng)-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡讀取權(quán)限,用戶寫入離線定位數(shù)據(jù)-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
注:以上介紹和配置炕桨,高德饭尝、騰訊sdk也差不多是這樣的,這些sdk不一樣的就是下面的api不一樣献宫,但是定位原理流程都是大同小異的
三 定位api詳解
1.初始化LocationClient類
此處需要注意:LocationClient類最好在主線程中聲明钥平,需要Context類型的參數(shù)。
Context需要時(shí)全進(jìn)程有效的Context,推薦用getApplicationConext獲取全進(jìn)程有效的Context
//偽代碼
public LocationClient mLocationClient = null;;
public void onCreate()
{
mLocationClient = new LocationClient(getApplicationContext());//聲明LocationClient類
mLocationClient.registerLocationListener(myListener);//注冊(cè)監(jiān)聽函數(shù)
}
2.配置定位SDK參數(shù)
設(shè)置定位參數(shù)包括:定位模式(高精度定位模式遵蚜、低功耗定位模式和僅用設(shè)備定位模式)帖池,返回坐標(biāo)類型,是否打開GPS吭净,是否返回地址信息睡汹、位置語義化信息、POI信息等等寂殉。
LocationClientOption類囚巴,該類用來設(shè)置定位SDK的定位方式,例如:
//偽代碼
LocationClientOption mOption = new LocationClientOption();
/**
* 默認(rèn)高精度友扰,設(shè)置定位模式
* LocationMode.Hight_Accuracy 高精度定位模式:這種定位模式下彤叉,會(huì)同時(shí)使用
網(wǎng)絡(luò)定位(Wi-Fi和基站定位)和GPS定位,優(yōu)先返回最高精度的定位結(jié)果村怪;
但是在室內(nèi)gps無信號(hào)秽浇,只會(huì)返回網(wǎng)絡(luò)定位結(jié)果;
室外如果gps收不到信號(hào)甚负,也只會(huì)返回網(wǎng)絡(luò)定位結(jié)果柬焕。
* LocationMode.Battery_Saving 低功耗定位模式:這種定位模式下审残,不會(huì)使用GPS,只會(huì)使用網(wǎng)絡(luò)定位斑举。
* LocationMode.Device_Sensors 僅用設(shè)備定位模式:這種定位模式下搅轿,
不需要連接網(wǎng)絡(luò),只使用GPS進(jìn)行定位富玷,這種模式下不支持室內(nèi)環(huán)境的定位
*/
mOption.setLocationMode(LocationMode.Hight_Accuracy);
/**
* 默認(rèn)是true璧坟,設(shè)置是否使用gps定位
* 如果設(shè)置為false,即使mOption.setLocationMode(LocationMode.Hight_Accuracy)也不會(huì)gps定位
*/
mOption.setOpenGps(true);
/**
* 默認(rèn)gcj02赎懦,設(shè)置返回的定位結(jié)果坐標(biāo)系雀鹃,如果配合百度地圖使用,建議設(shè)置為bd09ll;
* 目前國內(nèi)主要有以下三種坐標(biāo)系:
1. wgs84:目前廣泛使用的GPS全球衛(wèi)星定位系統(tǒng)使用的標(biāo)準(zhǔn)坐標(biāo)系励两;
2. gcj02:經(jīng)過國測(cè)局加密的坐標(biāo)褐澎;
3. bd09:為百度坐標(biāo)系,其中bd09ll表示百度經(jīng)緯度坐標(biāo)伐蒋,bd09mc表示百度墨卡托米制坐標(biāo)工三;
* 在國內(nèi)獲得的坐標(biāo)系類型可以是:國測(cè)局坐標(biāo)、百度墨卡托坐標(biāo) 和 百度經(jīng)緯度坐標(biāo)先鱼。
在海外地區(qū)俭正,只能獲得WGS84坐標(biāo)。請(qǐng)?jiān)谑褂眠^程中注意選擇坐標(biāo)焙畔。
*/
mOption.setCoorType("bd09ll");
/**
* 默認(rèn)0掸读,即僅定位一次;設(shè)置間隔需大于等于1000ms宏多,表示周期性定位
* 如果不在AndroidManifest.xml聲明百度指定的Service儿惫,周期性請(qǐng)求無法正常工作
* 這里需要注意的是:如果是室外gps定位,不用訪問服務(wù)器伸但,設(shè)置的間隔是3秒肾请,那么就是3秒返回一次位置
如果是WiFi基站定位,需要訪問服務(wù)器更胖,這個(gè)時(shí)候每次網(wǎng)絡(luò)請(qǐng)求時(shí)間差異很大铛铁,設(shè)置的間隔是3秒,
只能大概保證3秒左右會(huì)返回就一次位置却妨,有時(shí)某次定位可能會(huì)5秒才返回
*/
mOption.setScanSpan(3000);
/**
* 默認(rèn)false饵逐,設(shè)置是否需要地址信息
* 返回省、市彪标、區(qū)倍权、街道等地址信息,這個(gè)api用處很大捞烟,
很多新聞?lì)恆pp會(huì)根據(jù)定位返回的市區(qū)信息推送用戶所在市的新聞
*/
mOption.setIsNeedAddress(true);
/**
* 默認(rèn)false薄声,設(shè)置是否需要位置語義化結(jié)果
* 可以在BDLocation.getLocationDescribe里得到萌业,結(jié)果類似于“在北京天安門附近”
*/
mOption.setIsNeedLocationDescribe(true);
/**
* 默認(rèn)false,設(shè)置是否需要設(shè)備方向傳感器的方向結(jié)果
* 一般在室外gps定位時(shí),返回的位置信息是帶有方向的奸柬,但是有時(shí)候gps返回的位置也不帶方向,
這個(gè)時(shí)候可以獲取設(shè)備方向傳感器的方向
* wifi基站定位的位置信息是不帶方向的婴程,如果需要可以獲取設(shè)備方向傳感器的方向
*/
mOption.setNeedDeviceDirect(false);
/**
* 默認(rèn)false廓奕,設(shè)置是否當(dāng)gps有效時(shí)按照設(shè)定的周期頻率輸出GPS結(jié)果
* 室外gps有效時(shí),周期性1秒返回一次位置信息档叔,其實(shí)就是設(shè)置了
locationManager.requestLocationUpdates中的minTime參數(shù)為1000ms桌粉,1秒回調(diào)一個(gè)gps位置
* 如果設(shè)置了mOption.setScanSpan(3000),那minTime就是3000ms了衙四,3秒回調(diào)一個(gè)gps位置
*/
mOption.setLocationNotify(false);
/**
* 默認(rèn)true铃肯,定位SDK內(nèi)部是一個(gè)SERVICE,并放到了獨(dú)立進(jìn)程传蹈,設(shè)置是否在stop的時(shí)候殺死這個(gè)進(jìn)程押逼,默認(rèn)不殺死
* 如果你已經(jīng)拿到了你要的位置信息,不需要再定位了惦界,不殺死留著干嘛
*/
mOption.setIgnoreKillProcess(true);
/**
* 默認(rèn)false挑格,設(shè)置是否需要POI結(jié)果,可以在BDLocation.getPoiList里得到
* POI就是獲取到的位置附近的一些商場(chǎng)沾歪、飯店漂彤、銀行等信息
*/
mOption.setIsNeedLocationPoiList(true);
/**
* 默認(rèn)false,設(shè)置是否收集CRASH信息灾搏,默認(rèn)收集
*/
mOption.SetIgnoreCacheException(false);
/**
* 默認(rèn)false挫望,設(shè)置定位時(shí)是否需要海拔高度信息,默認(rèn)不需要狂窑,除基礎(chǔ)定位版本都可用
*/
mOption.setIsNeedAltitude(false);
mLocationClient.setLocOption(mOption);//設(shè)置定位參數(shù)
mLocationClient.start();//開始定位
3.實(shí)現(xiàn)BDLocationListener接口
BDLocation類媳板,封裝了定位SDK的定位結(jié)果,在BDLocationListener的onReceiveLocation方法中獲取泉哈,onReceiveLocation方法當(dāng)返回的是網(wǎng)絡(luò)類型定位時(shí)是在子線程中執(zhí)行了拷肌,如果有UI操作,請(qǐng)注意旨巷。
//偽代碼
private BDLocationListener myListener = new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
//定位sdk獲取位置后回調(diào)
if (null != location && location.getLocType() != BDLocation.TypeServerError) {
/**
* location.getTime() 是指服務(wù)端出本次結(jié)果的時(shí)間巨缘,如果位置不發(fā)生變化,則時(shí)間不變
*/
location.getTime();
/**
* 定位類型
BDLocation.TypeGpsLocation----gps定位
BDLocation.TypeNetWorkLocation----網(wǎng)絡(luò)定位(wifi基站定位)
以及其他定位失敗信息
*/
location.getLocType();
/**
* 對(duì)應(yīng)的定位類型說明
* 比如"NetWork location successful"之類的信息
*/
location.getLocTypeDescription();
/**
* 緯度
*/
location.getLatitude();
/**
* 經(jīng)度
*/
location.getLongitude();
/**
* 誤差半徑采呐,代表你的真實(shí)位置在這個(gè)圓的覆蓋范圍內(nèi)若锁,
* 半徑越小代表定位精度越高,位置越真實(shí)
* 在同一個(gè)地點(diǎn)斧吐,可能每次返回的經(jīng)緯度都有微小的變化又固,
* 是因?yàn)榉祷氐奈恢命c(diǎn)并不是你真實(shí)的位置仲器,有誤差造成的。
*/
location.getRadius();
location.getCountryCode();//國家碼仰冠,null代表沒有信息
location.getCountry();//國家名稱
location.getCityCode();//城市編碼
location.getCity();//城市
location.getDistrict();//區(qū)
location.getStreet();//街道
location.getAddrStr();//地址信息
location.getLocationDescribe();//位置描述信息
/**
* 判斷用戶是在室內(nèi)乏冀,還是在室外
* 1:室內(nèi),0:室外洋只,這個(gè)判斷不一定是100%準(zhǔn)確的
*/
location.getUserIndoorState();
/**
* 獲取方向
*/
location.getDirection();
if (location.getPoiList() != null && !location.getPoiList().isEmpty()) {
for (int i = 0; i < location.getPoiList().size(); i++) {
Poi poi = (Poi) location.getPoiList().get(i);
poi.getName();//獲取位置附近的一些商場(chǎng)辆沦、飯店、銀行等信息
}
}
if (location.getLocType() == BDLocation.TypeGpsLocation) {// GPS類型定位結(jié)果
location.getSpeed();//速度 單位:km/h识虚,注意:網(wǎng)絡(luò)定位結(jié)果是沒有速度的
location.getSatelliteNumber();//衛(wèi)星數(shù)目肢扯,gps定位成功最少需要4顆衛(wèi)星
location.getAltitude();//海拔高度 單位:米
location.getGpsAccuracyStatus();//gps質(zhì)量判斷
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {//網(wǎng)絡(luò)類型定位結(jié)果
if (location.hasAltitude()) {//如果有海拔高度
location.getAltitude();//單位:米
}
location.getOperators();//運(yùn)營商信息
} else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 離線定位結(jié)果
//離線定位成功,離線定位結(jié)果也是有效的;
} else if (location.getLocType() == BDLocation.TypeServerError) {
//服務(wù)端網(wǎng)絡(luò)定位失敗担锤,可以反饋IMEI號(hào)和大體定位時(shí)間到loc-bugs@baidu.com;
} else if (location.getLocType() == BDLocation.TypeNetWorkException) {
//網(wǎng)絡(luò)不同導(dǎo)致定位失敗蔚晨,請(qǐng)檢查網(wǎng)絡(luò)是否通暢;
} else if (location.getLocType() == BDLocation.TypeCriteriaException) {
//無法獲取有效定位依據(jù)導(dǎo)致定位失敗,一般是由于手機(jī)的原因肛循,處于飛行模式下一般會(huì)造成這種結(jié)果铭腕,可以試著重啟手機(jī);
}
}
}
};
4.定位完成注意釋放資源
//偽代碼
protected void onStop() {
mLocationClient.unregisterListener(myLocationListener); //注銷掉監(jiān)聽
mLocationClient.stop(); //停止定位
}
僅一次定位:
mLocationClient.start()啟動(dòng)定位SDK,在BDLocationListener的onReceiveLocation方法中獲取到位置后多糠,
再 mLocationClient.stop()關(guān)閉定位SDK即可谨履。
周期性定位:
設(shè)置周期間隔,單位ms熬丧,必須大于等于1000ms才進(jìn)行周期性定位笋粟,小于1000只定位一次。
locationClientOption .setScanSpan(1000);
mLocationClient.start()析蝴;
每次獲取位置都會(huì)在BDLocationListener的onReceiveLocation方法中回調(diào)害捕,
不再進(jìn)行定位, mLocationClient.stop()關(guān)閉定位SDK闷畸。
四 定位錯(cuò)誤分析
首先尝盼,一定確定你的配置都完成了:
1.apikey申請(qǐng)正確,并在AndroidManifest.xml配置佑菩;
2.權(quán)限都申請(qǐng)了盾沫,注意6.0權(quán)限的動(dòng)態(tài)申請(qǐng);
3.AndroidManifest.xml中定位服務(wù)配置了殿漠;
4.jar包以及so包都導(dǎo)入了赴精。
在Android Studio除了上述操作之外,還需要在build.gradle中配置SO文件的使用绞幌,如下所示
android{
...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
另外蕾哟,ABI:指應(yīng)用基于哪種指令集來進(jìn)行編譯,ABI分armeabi、armeabi-v7a谭确、mips帘营、x86、x86_64等逐哈,它們都是表示cpu的類型芬迄,確定自己的機(jī)器是什么類型的cpu,導(dǎo)入相應(yīng)的so文件昂秃。
如果所有配置正確禀梳,在a手機(jī)中正常,在b手機(jī)出錯(cuò)了械蹋,原因很有可能就是ab手機(jī)的cpu類型不同導(dǎo)致的。
查看cpu類型命令
1羞芍、adb shell
2哗戈、cat /proc/cpuinfo
詳細(xì)cpu間so文件的兼容問題,請(qǐng)閱讀相關(guān)資料
如果確定所有配置正確屋灌,還有問題酷师,則需要通過獲取定位返回錯(cuò)誤碼分析錯(cuò)誤原因
bDLocation.getLocType ( );//獲取錯(cuò)誤碼
返回值:
61 : GPS定位結(jié)果趣惠,GPS定位成功。
62 : 無法獲取有效定位依據(jù)(wifi基站信息)胆胰,定位失敗,請(qǐng)檢查運(yùn)營商網(wǎng)絡(luò)或者WiFi網(wǎng)絡(luò)是否正常開啟刻获,嘗試重新請(qǐng)求定位蜀涨。
63 : 網(wǎng)絡(luò)異常,沒有成功向服務(wù)器發(fā)起請(qǐng)求蝎毡,請(qǐng)確認(rèn)當(dāng)前測(cè)試手機(jī)網(wǎng)絡(luò)是否通暢厚柳,嘗試重新請(qǐng)求定位。
65 : 定位緩存的結(jié)果沐兵。
66 : 離線定位結(jié)果别垮。通過requestOfflineLocaiton調(diào)用時(shí)對(duì)應(yīng)的返回結(jié)果。
67 : 離線定位失敗扎谎。通過requestOfflineLocaiton調(diào)用時(shí)對(duì)應(yīng)的返回結(jié)果碳想。
68 : 網(wǎng)絡(luò)連接失敗時(shí),查找本地離線定位時(shí)對(duì)應(yīng)的返回結(jié)果毁靶。
161: 網(wǎng)絡(luò)定位結(jié)果胧奔,網(wǎng)絡(luò)定位成功。
162: 請(qǐng)求串密文解析失敗预吆,一般是由于客戶端SO文件加載失敗造成葡盗,請(qǐng)嚴(yán)格參照開發(fā)指南或demo開發(fā),放入對(duì)應(yīng)SO文件。
167: 服務(wù)端定位失敗觅够,請(qǐng)您檢查是否禁用獲取位置信息權(quán)限胶背,嘗試重新請(qǐng)求定位。
502: AK參數(shù)錯(cuò)誤喘先,請(qǐng)按照說明文檔重新申請(qǐng)AK钳吟。
505:AK不存在或者非法,請(qǐng)按照說明文檔重新申請(qǐng)AK窘拯。
601: AK服務(wù)被開發(fā)者自己禁用红且,請(qǐng)按照說明文檔重新申請(qǐng)AK。
602: key mcode不匹配涤姊,您的AK配置過程中安全碼設(shè)置有問題暇番,請(qǐng)確保:SHA1正確,“;”分號(hào)是英文狀態(tài)思喊;且包名是您當(dāng)前運(yùn)行應(yīng)用的包名壁酬,請(qǐng)按照說明文檔重新申請(qǐng)AK。
501~700:AK驗(yàn)證失敗恨课,請(qǐng)按照說明文檔重新申請(qǐng)AK舆乔。
如果以上都不能解決你定位sdk使用中出現(xiàn)的問題,可以去百度定位sdk開發(fā)社區(qū)查閱或發(fā)帖詢問剂公,有百度工程師解答希俩。
如果各位看官覺得文章不錯(cuò),別忘了點(diǎn)個(gè)喜歡纲辽。
源碼下載地址
以上文章內(nèi)容颜武,是本人工作中的總結(jié),供大家參考拖吼,有誤的地方還請(qǐng)指正盒刚。