Android java.io.FileNotFoundException:*** (Permission denied)


自從離開上海來到杭州之后,陸續接觸了Android,Python,C++,OpenCV,最為一個新人來說,一路上遇到了很多坑,幸運的是 這互聯網的強大(大傻子我還是蠻喜歡的哈),一路填填補補總算走了下來。
一直就有把自己這幾個月來遇到的問題記錄下來的想法,苦於沒有時間(其實就是自己太懶),業精於勤荒於嘻,就以這個剛剛解決的問題作為開始吧。

接下來是正文啦~~~
大家都知道,Android 6.0中,某些權限屬於Protected Permission,例如:讀寫手機存儲權限,僅僅在AndroidManifest.xml中申明是無法真正獲取到權限的,打開手機的權限管理頁面,我們可以看見,讀寫手機存儲權限欄是一個問號,這意味着App並未獲取到該權限。
這是訪問手機存儲時,會報出類似下面的錯誤:
java.io.FileNotFoundException:*** (Permission denied)
有一個簡單粗暴的方法,就是在App安裝完成之后,手動在手機上將該權限改為允許。但是這種方法太low了,給用戶帶來的體驗也很差。我們希望通過代碼動態的獲取此權限,用戶只需要在第一次安裝時,在彈出的窗口點擊一下允許,就可以啦。
實現代碼:

    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:其它的權限小伙伴們就可以以此類推啦。


免責聲明!

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



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