百度定位 百度地圖locationClient.start()沒反應解決辦法


public void init(NetResultCallBack callBack) {
this.callBack = callBack;
try {
mLocationClient = new LocationClient(AppApplication.CONTEXT); // 聲明LocationClient類 這里必須的上下文必須是Application的Context不然會出現加載條一直加載情況
mLocationClient.registerLocationListener(myListener); // 注冊監聽函數
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);
option.setAddrType("all");// 返回的定位結果包含地址信息
option.setCoorType("bd09ll");// 返回的定位結果是百度經緯度,默認值gcj02
option.setScanSpan(0);// 設置發起定位請求的間隔時間為5000ms
option.disableCache(true);// 禁止啟用緩存定位
option.setIsNeedLocationDescribe(true);
mLocationClient.setLocOption(option);
mLocationClient.start();
if (mLocationClient != null) {
ConnectivityManager conn = (ConnectivityManager) BaseActivity.CONTEXT.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = conn.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
mLocationClient.requestLocation();
} else {
mLocationClient.requestOfflineLocation();
}
}
} catch (Exception e) {
e.printStackTrace();
if (callBack != null) {
callBack.onErr("定位失敗,請開啟GPS定位權限", "locationHelper");
}
}
}


百度定位在第二次請求的時候 走到locationClient.start()沒反應解決辦法是把 locationClient = new LocationClient(this); 改成 locationClient = new LocationClient(getApplicationContext()); 就可以了。如果沒有getApplicationContext()可用在Application中聲明上下文對象即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM