W/System.err: java.io.FileNotFoundException: /storage/emulated/0/demo/demo_test.txt: open failed: EACCES (Permission denied)
W/System.err: at libcore.io.IoBridge.open(IoBridge.java:496)
at java.io.FileInputStream.<init>(FileInputStream.java:159)
at com.dji.importSDKDemo.MainActivity$OnClick.onClick(Unknown Source:68)
at android.view.View.performClick(View.java:7185)
at android.view.View.performClickInternal(View.java:7162)
at android.view.View.access$3500(View.java:819)
at android.view.View$PerformClick.run(View.java:27684)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7562)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
W/System.err: at libcore.io.Linux.open(Native Method)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
W/System.err: at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7461)
W/System.err: at libcore.io.IoBridge.open(IoBridge.java:482)
我在大疆sdk上開發應用,目前測驗遇到的問題為:我需要讀取手機里的檔案,使用File類讀取,再通過InputFileStream讀取成輸入流。提取內部的資料進行應用。上面的報錯詳細資訊。
核心代碼如下:
Manifest檔案下的權限申請:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
讀取代碼:
File file = new File(Environment.getExternalStorageDirectory() +
"/demo/demo_test.txt");
Toast.makeText(getApplicationContext(), file.canRead() ? "true" : "false",
Toast.LENGTH_SHORT).show();
try {
FileInputStream inputStream = new FileInputStream(file);
byte[] temp = new byte[98];
while (inputStream.read(temp) != -1) {
Log.d("DATA", new String(temp));
}
} catch (IOException e) {
e.printStackTrace();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/242085.html
標籤:Android
