在 Android 13 (sdk 33) 中从 uri 获取文件:权限被拒绝

Get file from uri in Android 13 (sdk 33) permission denial

提问人:Laurens V 提问时间:11/16/2023 最后编辑:Laurens V 更新时间:11/16/2023 访问量:27

问:

我正在尝试使用我的 uri 检索文件。只有当我想通过我的 openInputStream 检索它时,我才会收到以下错误:

权限拒绝:打开提供程序 com.android.externalstorage.ExternalStorageProvider 从 ProcessRecord{b3d0dd0 18767:com.workbon/u0a163} (pid=18767, uid=10163) 要求您使用 ACTION_OPEN_DOCUMENT 或相关 蜜蜂属

我的代码,是的,它仍然是 Java 如下:

InputStream inputStream = context.getContentResolver().openInputStream(fileUri);
            byte[] bytes = readBytes(inputStream);
            return Base64.encodeToString(bytes, Base64.DEFAULT);

private static byte[] readBytes(InputStream inputStream) throws IOException {
        ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
        int bufferSize = 1024;
        byte[] buffer = new byte[bufferSize];

        int len;
        while ((len = inputStream.read(buffer)) != -1) {
            byteBuffer.write(buffer, 0, len);
        }
        return byteBuffer.toByteArray();
    }

我的目标是最终将文件转换为 base64 数据,以便我可以将其传递给 API。

除其他事项外,我在我的 Android 清单中拥有这些权限。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"
        tools:ignore="ProtectedPermissions" />

希望有人能帮我解决这个问题。这是一个特定的 Android 13+ 问题。

java 权限 存储 android-13

评论

0赞 tomerpacific 11/16/2023
你能分享你的AndroidManifes.xml文件吗?
0赞 Selvin 11/16/2023
你如何获得?此 URI 的格式是什么?你为什么不关注恐怖信息并使用“ACTION_OPEN_DOCUMENT”来获取 uri?fileUri
0赞 Laurens V 11/16/2023
@tomerpacific,我将我在 Android 清单中拥有的权限添加到上面的帖子中。
0赞 Laurens V 11/16/2023
@Selvin我从FileProvider获取了它,我的uri如下所示: content://com.android.externalstorage.documents/document/primary%3ADocuments%2F123456789.pdf
0赞 tomerpacific 11/16/2023
@LaurensV - 你读过这个吗?

答: 暂无答案