2016年12月19日 星期一

[教學] open failed: EACCES (Permission denied)

今天下午需要寫一個撥放mp4的test app
結果我無論怎麼改程式都無法撥放!
憤怒!


PS:Android Version :6.0.1


error log:
12-19 16:45:51.146: W/System.err(13135): java.io.FileNotFoundException: /storage/emulated/0/emot_peace.mp4: open failed: EACCES (Permission denied)
12-19 16:45:51.147: W/System.err(13135): at libcore.io.IoBridge.open(IoBridge.java:452)
12-19 16:45:51.147: W/System.err(13135): at java.io.FileInputStream.<init>(FileInputStream.java:76)
12-19 16:45:51.147: W/System.err(13135): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1090)
12-19 16:45:51.147: W/System.err(13135): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1041)
...


permission都有開:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


存取檔案的方式也都對:
File dir = Environment.getExternalStorageDirectory().getAbsoluteFile();
        File myFile = new File(dir, "xxx.mp4");
        String path= myFile.toString();
        if(myFile.exists())
            Log.d("Mickey", "path = "+path);


所以究竟怎麼回事呢?

其實不是程式本身的問題
1.開啟設定
2.選擇應用程式 -> 點入你的App ->  點入權限





























3. 把"儲存"的權限打開





我的mp4就可以正常撥了~~~
不經一事不長一智QQ






1 則留言: