自從離開上海來到杭州以後,陸續接觸了Android,Python,C++,OpenCV,最爲一個新人來講,一路上遇到了不少坑,幸運的是 這互聯網的強大(大傻子我仍是蠻喜歡的哈),一路填填補補總算走了下來。 一直就有把本身這幾個月來遇到的問題記錄下來的想法,苦於沒有時間(其實就是本身太懶),業精於勤荒於嘻,就以這個剛剛解決的問題做爲開始吧。java
接下來是正文啦~~~ 你們都知道,Android 6.0中,某些權限屬於Protected Permission,例如:讀寫手機存儲權限,僅僅在AndroidManifest.xml中申明是沒法真正獲取到權限的,打開手機的權限管理頁面,咱們能夠看見,讀寫手機存儲權限欄是一個問號,這意味着App並未獲取到該權限。 這是訪問手機存儲時,會報出相似下面的錯誤: java.io.FileNotFoundException:*** (Permission denied)
有一個簡單粗暴的方法,就是在App安裝完成以後,手動在手機上將該權限改成容許。可是這種方法太low了,給用戶帶來的體驗也不好。咱們但願經過代碼動態的獲取此權限,用戶只須要在第一次安裝時,在彈出的窗口點擊一下容許,就能夠啦。 實現代碼:ui
if (Build.VERSION.SDK_INT >= 23) { int REQUEST_CODE_CONTACT = 101; String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; //驗證是否許可權限 for (String str : permissions) { if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) { //申請權限 this.requestPermissions(permissions, REQUEST_CODE_CONTACT); } } }
PS:其它的權限小夥伴們就能夠以此類推啦。this