android - 代码在电视上Android P运行时无法在U盘中复制文件或其他操作
问题描述
当我在 Android P 上运行我的代码并抛出异常“权限被拒绝”时,我无法从 U 盘复制或移动文件。相同的代码在 8.0 或更低版本上运行良好。我使用 FileInputStream 和 FileOutputStream 来复制 U 盘中的文件。
我已经声明了关于android.permission.READ_EXTERNAL_STORAGE
and的许可android.permission.WRITE_EXTERNAL_STORAGE
。但它仍然不起作用。
private int copyFileUsingFileStreams(File source, File dest)
throws IOException {
int resultCode = 0;
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream(source);
output = new FileOutputStream(dest);
byte[] buf = new byte[2048];
int bytesRead;
while ((bytesRead = input.read(buf)) != -1) {
if (isInterrupted()) {
resultCode = ZFileManager.OperateResult.USER_CANCLE;
input.close();
output.close();
break;
}
output.write(buf, 0, bytesRead);
}
} finally {
if (input != null) {
input.close();
}
if (output != null) {
output.close();
}
}
return resultCode;
}
解决方案
推荐阅读
- python - Python 请求发布 - 不会登录
- cordova - AndroidX 过渡和 Cordova,有什么风险/好处?
- excel - 如何修复长时间替换值
- java - 是否可以在其他线程内的不同线程上运行命令?
- c# - 我想按值的频率对列表进行排序并区分它c#
- c++ - 如何获取两个列表的共同元素并将其存储在一个新列表中而不重复
- hadoop - Hive 表保留支持
- arrays - Array.length 在数据加载时未定义,导致使用钩子做出反应时出错
- javascript - 我的 JavaScript 手风琴没有正确切换。当我单击其标题面板时,我需要隐藏内容
- javascript - JQuery - 为什么这个变量在函数执行后不会丢失它的值?