在我的应用中,我正在导入一个csv文件。使用内部存储器时此方法工作正常,但无法通过SD卡使用。
以下代码用于显示文件对话框:
Intent intent = new Intent().setType("*/*").setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select a file"), 99);
随后,所选文件将按以下方式使用:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 99 && resultCode == RESULT_OK) {
Uri selectedFile = data.getData();
this.readFromCSV(selectedFile.getPath());
}
}
当我从内部存储器中选择一个文件时(从“ Documens”文件夹中,返回的路径看起来像这样并且可以工作:
/storage/emulated/0/Documents/test.csv
从SD卡(从根级别)这样操作,但失败:
/storage/emulated/0/document/78F1-1915:test.csv
不幸的是,DocumentFile.fromSingleUri()也返回相同的无效路径。
如何修复SD卡文件的路径? 干杯!