提问人:s-hunter 提问时间:3/22/2020 更新时间:8/16/2022 访问量:7230
如何在 Android 11 中阅读外部文档?
How to read external documents in Android 11?
问:
在 Android 11 中,强制实施范围内存储后,requestLegacyExternalStorage 标志将不再适用于访问外部存储中的文件。跟
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在清单文件中声明,以及用户在运行时授予的此权限,以下代码曾经能够读取该文件,但在 Android 11 中无法读取。文件位于/sdcard/Documents/my_confi_file.json
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/),应用将从此文件中读取内容。
答:
0赞
Gopal Reddy
8/16/2022
#1
在请求之前使用它
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
得到。
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));
评论