首页 > 解决方案 > Android pdf文件读取权限问题一加手机

问题描述

我的代码:

        File temp = new File(getCacheDir(),"temp.pdf");
        String file = "/Download/ALTO8003.pdf";
        File file1 = new File(Environment.getExternalStorageDirectory(),file);
        System.out.println("Is is readable "+file1.canRead());
        FileOutputStream fileOutputStream = new FileOutputStream(temp);
        InputStream inputStream = new FileInputStream(file1);
        byte[] buffer = new byte[1024];
        int readBytes;
        while((readBytes = inputStream.read(buffer)) != -1) {
            fileOutputStream.write(buffer, 0, readBytes);
        }
        fileOutputStream.close();
        inputStream.close();
        parcelFileDescriptor = ParcelFileDescriptor.open(temp,ParcelFileDescriptor.MODE_READ_ONLY);
        pdfRenderer = new PdfRenderer(parcelFileDescriptor);

错误 :

2021-01-26 14:11:26.304 19273-19273/com.sangamexportsdelhi.mtest1 I/System.out:是可读错误 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/ System.err:java.io.FileNotFoundException:/storage/emulated/0/Download/ALTO8003.pdf:打开失败:EACCES(权限被拒绝)2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 libcore.io.IoBridge.open(IoBridge.java:496) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 java.io .FileInputStream.(FileInputStream.java:159) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 com.sangamexportsdelhi.mtest1.PdfList.initRenderer(PdfList.java: 165) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 com.sangamexportsdelhi.mtest1.PdfList。onCreate(PdfList.java:70) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 android.app.Activity.performCreate(Activity.java:7815) 2021- 01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 android.app.Activity.performCreate(Activity.java:7804) 2021-01-26 14:11:26.305 19273- 19273/com.sangamexportsdelhi.mtest1 W/System.err:在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1318) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System .err:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3349) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 android.app.ActivityThread。 handleLaunchActivity(ActivityThread.java:3513) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi。mtest1 W/System.err: 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 android.app.servertransaction.TransactionExecutor。执行(TransactionExecutor.java:95) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 android.os.Handler.dispatchMessage(Handler.java:107) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 android.os.Looper.loop(Looper.java:214) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 android.app.ActivityThread.main(ActivityThread .java:7682) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: at java.lang.reflect.Method.invoke(Native Method) 2021-01-26 14 :11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 2021-01-26 14:11:26.305 19273-19273/com。 sangamexportsdelhi.mtest1 W/System.err:原因:android.system.ErrnoException:打开失败:EACCES(权限被拒绝)2021-01-26 14:11:26.305 19273-19273/com。sangamexportsdelhi.mtest1 W/System.err:在 libcore.io.Linux.open(本机方法)2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 libcore.io .ForwardingOs.open(ForwardingOs.java:167) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252 ) 2021-01-26 14:11:26.305 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err: 在 libcore.io.ForwardingOs.open(ForwardingOs.java:167) 2021-01-26 14:11: 26.306 19273-19273/com.sangamexportsdelhi.mtest1 W/System.err:在 android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7581) 2021-01-26 14:11:26.306 19273-19273/com.sangamexportsdelhi .mtest1 W/System.err:在 libcore.io.IoBridge.open(IoBridge.java:482) 2021-01-26 14:11:26.306 19273-19273/com.sangamexportsdelhi。mtest1 W/System.err: ... 18 更多

标签: androidfilepermissions

解决方案


推荐阅读