Android 定位權限被用戶拒絕了,如何監聽到權限被用戶拒絕?
需求是如果定位權限被用戶拒絕了,在用到定位的地方提示用戶去開啟權限,請問我該如何監聽這個權限是否被拒絕?
PackageManager pm = getPackageManager();
boolean flag = (PackageManager.PERMISSION_GRANTED ==
pm.checkPermission("android.permission.ACCESS_COARSE_LOCATION", "packageName"));
if (flag) {
//有這個權限,做相應處理
}else { //沒有權限
}
上面這個方法試過了,不好使,只要在manifest.xml中聲明了權限就會判定為true。
網友還有說通過在定位的地方進行try{}catch(Exception e){}方法來監聽是否有異常拋出,我也試了,不會有異常拋出的!
我用的是 百度地圖定位,在 mLocationClient.start()進行抓取異常,可是沒有任何異常拋出,而且沒有走BDLocationListener中的onReceiveLocation方法。
求各路大神指教如何監聽定位權限被拒絕!
如果權限被拒絕而沒有走BDLocationListener中的onReceiveLocation方法,那就定義一個全局的BDLocation,如果定位失敗,則全局的BDLocation為null,當需要用到定位信息時,直接判斷是否為空就知道是不是定位失敗了!不知道能不能幫到你...