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

大家都知道,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:其它的權限小夥伴們就可以以此類推啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章