从保存在手机上的另一个应用程序访问 txt 文件 ||打开失败:EACCES(权限被拒绝)||Android Studio Java 安卓 11+

Accessing txt file from another app that is saved on phone || open failed: EACCES (Permission denied) || Android Studio Java Android 11+

提问人:Jan 提问时间:9/20/2023 更新时间:9/20/2023 访问量:32

问:

所以我对 Java/Android Studio 等很陌生。我想访问路径“/storage/emulated/0/DataLogger/”中另一个安全应用的文件

我试过了这个: private String get_feature_string(String fileName) {

    try (BufferedReader reader = new BufferedReader(new FileReader("/storage/emulated/0/DataLogger/"+fileName))) {
        String firstLine = reader.readLine(); // Read the first line

        if (firstLine != null) {
            StringBuilder restOfFile = new StringBuilder();
            String nextLine;
            while ((nextLine = reader.readLine()) != null) {
                restOfFile.append(nextLine + '\n');
            }
            data = restOfFile.toString();
            return firstLine;
        }
    } catch (IOException e) {
        return "";
    }
    return "";
}

但它总是在打开文件时失败: /storage/emulated/0/DataLogger/23.09.01_15.20.27_raw.txt:打开失败:EACCES(权限被拒绝)

此外,我完全不确定这种方法是否与它的工作方式以及我需要哪些权限非常接近。文件权限似乎发生了很多变化,经过几个小时的搜索,我似乎仍然感到绝望。似乎还有其他像ACTION_OPEN_DOCUMENT_TREE的方法,但我真的不明白如何实现它们。

我很乐意提供任何帮助,谢谢:)

Java Android 文件 权限

评论

0赞 blackapps 9/20/2023
是的,在 Android 11+ 设备上,您的应用无法以经典方式读取其他应用的文件。您应该使用 ACTION_OPEN_DOCUMENT 让用户选择该文件作为 .._TREE用于选择目录。无需权限。

答: 暂无答案