[異常解決] 安卓6.0權限問題導致老藍牙程序出現異常解決辦法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...


 

一、問題:

  之前寫的一款安卓4.4的應用程序,用來連接藍牙BLE,而現在拿出來用新的AS編譯(此時SDK為6.0,手機也是6.0)應用程序並不能搜索到藍牙,查看log總是報權限錯誤:

Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...

 

二、解決過程:

  但是,我把相應的權限加入manifest.xml仍然報這個錯誤,最終查到這個資料:

  http://www.open-open.com/lib/view/open1445671646351.html

 

  說明我用6.0編譯可能是問題所在,看到下面兼容舊版本,就SDK Manage下載個5.0SDK,

 

 

  並修改build.gradle文件:

 

 

  編譯之后運行沒有報錯,但是還是搜索不到藍牙設備,然后又搜到6.0系統上的藍牙服務要和位置服務都打開才能搜索

  於是打開手機上的位置服務,就能夠搜索到了!

 

三、反思

  和一個目前正在搞安卓的伙伴討論,他“馬后炮”地說6.0權限和之前的很不相同~然后我又搜了一篇關於6.0權限的文章——

  http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/

 

  

  印證了之前的想法。確實安卓的變動性很快,我是有時候玩玩才搞兩下,平時不緊跟安卓技術潮流,所以這種奇葩的問題會讓我們這些對安卓技術忽冷忽熱的人很措不及防。網上遇到相同問題的人也很多,不過解答都很淺(只讓你在manifest中加權限),因此這里把該解決辦法分享下,僅供后人參考!

  

 


免責聲明!

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



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