首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取Android 11中的外部文档?

如何读取Android 11中的外部文档?
EN

Stack Overflow用户
提问于 2020-03-22 01:29:48
回答 1查看 6.2K关注 0票数 18

在Android11中,使用requestLegacyExternalStorage标志作用域存储强制执行将不再适用于访问外部存储中的文件。使用

代码语言:javascript
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

在清单文件中声明的,以及用户在运行时授予的这个权限,下面的代码曾经能够读取该文件,但是它不能在/sdcard/Documents/my_confi_file.json的Android11.file中读取。

代码语言:javascript
复制
try {
    var fileContent = ""
    val file = File("/sdcard/Documents/my_confi_file.json")
    val fileInputStream = FileInputStream(file)
    val size = fileInputStream.available()
    val buffer = ByteArray(size)
    fileInputStream.read(buffer)
    fileContent = String(buffer, Charset.forName("UTF-8"))
    fileInputStream.close()
} catch (e: IOException) {
    e.printStackTrace()
}

在Android 11中,仍然可以从这个目录(/sdcard/Documents/)读取一个文件吗?

用例是,该设备和应用程序不公开,也不涉及用户隐私问题。设备和应用程序的所有者希望将文件上载到设备中的这个目录(/sdcard/Documents/),应用程序将从该文件中读取内容。

EN

回答 1

Stack Overflow用户

发布于 2022-08-16 02:48:44

在请求之前使用此方法

代码语言:javascript
复制
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
                        Uri uri = Uri.fromParts("package", getPackageName(), null);
                        intent.setData(uri);
                        startActivity(intent);

为了得到。

代码语言:javascript
复制
        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+"/FolderName/"+new_filename+"/");
        File[] allfiles = null;
        allfiles = file.listFiles();

        Log.i(TAG, String.valueOf(allfiles.length));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60795079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档