首页 > 解决方案 > 代码在电视上Android P运行时无法在U盘中复制文件或其他操作

问题描述

当我在 Android P 上运行我的代码并抛出异常“权限被拒绝”时,我无法从 U 盘复制或移动文件。相同的代码在 8.0 或更低版本上运行良好。我使用 FileInputStream 和 FileOutputStream 来复制 U 盘中的文件。

我已经声明了关于android.permission.READ_EXTERNAL_STORAGEand的许可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;
}

标签: androidandroid-permissionsandroid-external-storageandroid-9.0-pie

解决方案


推荐阅读