java.io.FileNotFoundException: /storage/emulated/0/xxx.mp3: open failed: EACCES (Permission denied)
總算是在萬千博客中總結了一下遇到的這個bug,感覺每個人寫的都是一部分的解決方法,很幸運解決了,所以記錄一下,避免遇到的同志熬夜,希望有用,由于經驗有限,溫柔批評,
BUG產生
Android Studio剛入門,在做簡單的MP3播放器時遇到這個困擾的BUG,由于MP3播放器上的.mp3檔案是從本地存盤設備(SD)卡上讀取,所以需要一個讀取的權限,這是因為基于安全性能的考慮,android 6.0(API 23)以后,google規定了系統需要動態獲取權限 ,在沒有了解的情況下去運行代碼會出現

于是我就復制這段bug# java.io.FileNotFoundException: /storage/emulated/0/xxx.mp3: open failed: EACCES (Permission denied)找百度,然后寫寫吐吐xue,放放棄棄的,主要是不知道代碼怎么搞(剛入門)還有弄不清這個讀寫權限怎么打開,
解決方法
最主要的自己手動動態打開權限,就像是下載一個APP,安裝好,手機提示是否允許APP打開讀取設備照片,檔案權限,然后自己除錯下運行代碼,已經解決,手機響起《第十套廣播體操》,目前的問題就算解決了,代碼如下:

然后在onCreate()中呼叫此方法,
在mainfest.xml檔案中注冊靜態權限:

重要的是如果加入代碼后,問題還是沒有解決,也要加入這段代碼

運行代碼如下

我是在Android 10上運行的,添加這段代碼可以運行,具體為啥要添加代碼?CSDN大佬比我解釋清楚,以上BUG也是吸收CSDN大佬是文章解決,感謝!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/162838.html
標籤:其他
