使用ACTION_GET_CONTENT选择文件时返回的路径无效

时间:2018-09-29 16:53:49

标签: android

在我的应用中,我正在导入一个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卡文件的路径? 干杯!

0 个答案:

没有答案