Android百度地圖(一):百度地圖定位sdk 類方法參數(shù)皿淋、定位原理詳細(xì)介紹

轉(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)說明


以小米手機(jī)為例雕擂。如上圖GPS標(biāo)識(shí)為高亮狀態(tài),代表gps已經(jīng)開啟贱勃,可進(jìn)行g(shù)ps定位

如上圖紅框內(nèi)灰暗標(biāo)識(shí)井赌,說明gps正在搜索衛(wèi)星信號(hào)谤逼,雖然此時(shí)已經(jīng)開始gps定位,但 是不會(huì)有g(shù)ps位置返回仇穗,直到搜索到至少4顆衛(wèi)星信號(hào)流部,才能定位成功;在室外開闊地 搜星的過程幾分鐘到十幾分鐘都有可能纹坐,如果gps長時(shí)間無法定位枝冀,嘗試重啟手機(jī)

如上圖紅框內(nèi)gps標(biāo)識(shí)變成高亮,說明gps已經(jīng)搜索到衛(wèi)星信號(hào)耘子,開始了正常定位

在橋梁下果漾、大樹下、建筑物內(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)指正盒刚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绿贞,隨后出現(xiàn)的幾起案子因块,更是在濱河造成了極大的恐慌,老刑警劉巖籍铁,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涡上,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拒名,警方通過查閱死者的電腦和手機(jī)吩愧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來增显,“玉大人雁佳,你說我怎么就攤上這事。” “怎么了糖权?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵堵腹,是天一觀的道長。 經(jīng)常有香客問我星澳,道長疚顷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任禁偎,我火速辦了婚禮腿堤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘如暖。我一直安慰自己笆檀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布盒至。 她就那樣靜靜地躺著酗洒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妄迁。 梳的紋絲不亂的頭發(fā)上寝蹈,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天李命,我揣著相機(jī)與錄音登淘,去河邊找鬼。 笑死封字,一個(gè)胖子當(dāng)著我的面吹牛黔州,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阔籽,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼流妻,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了笆制?” 一聲冷哼從身側(cè)響起绅这,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎在辆,沒想到半個(gè)月后证薇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匆篓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年浑度,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸦概。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡箩张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情先慷,我是刑警寧澤饮笛,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站熟掂,受9級(jí)特大地震影響缎浇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赴肚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一素跺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧誉券,春花似錦指厌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至商玫,卻和暖如春箕憾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拳昌。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工袭异, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炬藤。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓御铃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沈矿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子上真,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容