1.BMapManager 初始化在setViewContent之前 否則會報錯
2.在application標簽中聲明service組件,每個app擁有自己單獨的定位service
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service>
3.初始化LocationClient類時需要注意:LocationClient類必須在主線程中聲明。需要Context類型的參數。
Context需要時全進程有效的context,推薦用getApplicationConext獲取全進程有效的context
public LocationClient mLocationClient = null; public BDLocationListener myListener = new MyLocationListener(); public void onCreate() { mLocationClient = new LocationClient(getApplicationContext()); //聲明LocationClient類 mLocationClient.registerLocationListener( myListener ); //注冊監聽函數 }
4.BDLocationListener接口有2個方法需要實現: 1.接收異步返回的定位結果,參數是BDLocation類型參數。 2.接收異步返回的POI查詢結果,參數是BDLocation類型參數。
5.發起定位:public int requestLocation()
發起定位,異步獲取當前位置。因為是異步的,所以立即返回,不會引起阻塞。定位結果在ReceiveListener的方法OnReceive方法的參數中返回。
需要注意:當定位SDK從定位依據判定,位置和上一次沒發生變化,而且上一次定位結果可用時,則不會發起網絡請求,而是返回上一次的定位結果。 返回值:
- 0:正常發起了定位。
- 1:服務沒有啟動。
- 2:沒有監聽函數。
- 6:請求間隔過短。 前后兩次請求定位時間間隔不能小於1000ms。
