android - 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 更多
解决方案
推荐阅读
- asynchronous - 在 F# 中运行超时的 IO 任务
- objective-c - 如何在 MacOS 中检测 VoiceOver 是否开启?
- azure - 运行 python 数据处理项目的最佳 Azure 无服务器服务
- oracle - 在 Oracle Thin JDBC Connect String 中设置并行处理的参数
- r - 从数据中删除数字字符
- wpf - 更改 WPF ListBox 中 SelectedItem 的背景
- dart - Dart 传递泛型函数
(T t) 似乎需要强制转换,所有其他方式签名都不匹配 - react-native - 安装 npx bugsnag 时出现 React Native Application 错误
- python - 如何更改数据框中的不同值
- vim - 使用 astyle 格式化 Vim 代码(vimrc 中的 formatprg)