問題:華為mate10一直在申請百度定位的時候出現此問題並且定位權限和定位服務都打開的情況也是返回這個參數 明顯沒有定位成功,其他手機暫時沒有出現(只要打開定位權限就會立即定位成功)
解決:在定位之前加入讀取手機狀態的動態權限申請並在配置文件中加入配置
總結一下,在Android6.0以上需要在配置文件中 加入這個權限:<uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> 並且在代碼中要動態申請
PermisionUtils.checkPermission(this, "android.permission.READ_PHONE_STATE",6);這個權限后,開啟百度定位才會定位成功
就導致了定位結果是4.9E -324的問題,害得我搞了半天,加上后就正常獲得定位結果了;然后我去掉這行,結果又不正常了,可以得出結論,是這行影響到了定位的結果。
原因分析:在一部分手機中 手機狀態默認是允許的所以直接給定位權限就可以直接定位,在mate10的手機中需要先申請通過手機狀態權限后再打開定位權限才能定位成功。綜合分析是因為百度定位連網后,因為它會下載地圖數據到你的手機所以要開啟此權限,百度定位這個坑有點大,希望大家以后注意。
使用百度定位,需要在AndroidManifest 文件中配置如上權限,其中 ACCESS_COARSE_LOCATION ,ACCESS_FINE_LOCATION ,READ_SETTINGS,WRITE_EXTERNAL_STORAGE。需要動態分配