下面說一下使用該api的具體步驟:
1、首先第一步就是搭配環境:
②然後複製
2、請確保網路通暢,無論是連線wifi還是使用2g/3g訊號。
3、定位sdk的呼叫必須在主線程中。
4、必須在定位sdk啟動前設定好引數,例如是否使用gps,掃瞄時間間隔設定等。我們強烈建議您設定自己的prodname,並保管好,這樣方便我們為您提供更好的定位服務。
5、定位sdk start之後立即執行,這種情況下很難定位成功,因為定位sdk剛開始啟動還沒有獲取到定位資訊。這時getlocation一般為null。如果是要獲取位置成功,可以在listerner中新增乙個判斷如果strdata為空,則再發起一次定位。
6、定位覆蓋率大概在98%。就是說有2%可能伺服器沒有資料,所以定位會失敗。只需要走到別的地方,或者多試幾次即可成功定位。
7、請使用真機。在虛擬機器上無法進行定位測試。
下面就是我的事例**:
具體思路是:將開啟和獲取位置的**分開來做,可以在程式剛開啟的時候就start。因為據上面所說,有時候可能兩分鐘才能獲取到位置,對於我們需要展示資訊來說,這是絕對不可以的。如果在主線程卡兩分鐘後果可想而知的。
需要說名的是:我這裡沒有設定時間間隔public void setscanspan ( int ) //設定定時定位的時間間隔。單位ms,如果不設定或者所設定的整數值小於1000(ms)時,採用第一次定位模式。
每呼叫一次requestlocatin(),定位sdk會發起一次定位。請求定位與監聽結果一一對應;如果所設的整數值大於等於1000(ms)時,定位sdk內部使用定時定位模式。
呼叫requestlocation( )後,每隔設定的時間,定位sdk就會進行一次定位。如果定位sdk根據定位依據發現位置沒有發生變化,就不會發起網路請求,返回上一次定位的結果;如果發現位置改變,就進行網路請求進行定位,得到新的定位結果。
定時定位時,呼叫一次requestlocation,會定時監聽到定位結果。設定了定時定位後,可以熱切換成一次定位,需要重新設定時間間隔小於1000(ms)即可。locationclient物件stop後,將不再進行定位。 如果設定了定時定位模式後,多次呼叫requestlocation(),則是每隔一段時間進行一次定位,同時額外的定位請求也會進行定位,但頻率不會超過1秒一次。
/*** 停止,減少資源消耗
*/public
void
stoplistener()
} /**
* 更新位置並儲存到situde中
*/public
void
updatelistener()
} /**
* 獲取經緯度資訊
* * @return
*/public
situde getlocation()
private
static
class
mybdlistener
implements
bdlocationlistener
station.latitude = location.getlatitude();
station.longitude = location.getlongitude();
} @override
public
void
onreceivepoi(bdlocation arg0)
} }
在使用的時候,在一開始就開啟locationclient,即呼叫startlocation()方法。我的是在服務服務中的oncreate中呼叫的,然後在**中這樣使用:
locationinfo.situde station = location.getlocation();
if(station.latitude ==
0.0&& station.longitude ==
0.0)
if(station.latitude ==
0.0&& station.longitude ==
0.0)
location.stoplistener();
使用上面的方法後,第一次使用都能拿到位置資訊。
android百度定位
android value 請輸入你的ak值 由於是第三方定位 直接上 定位sdk監聽函式 public class mylocationlistenner implements bdlocationlistener mylocationdata locdata new mylocationdata...
android 百度sdk之 百度定位
步驟 1.控制台建立應用。2.sha1獲得 注意 debug 版本和release不同。debug版本獲取 首先 到c user android目錄下,我的是 c users admin android 其次 在這個目錄下,用cmd.輸入keytool v list keystore debug.k...
Android百度定位API使用方法
實現bdlocationlistener介面 bdlocationlistener介面有2個方法需要實現 1.接收非同步返回的定位結果,引數是bdlocation型別引數。2.接收非同步返回的poi查詢結果,引數是bdlocation型別引數。class mylocationlistener imp...