为什么不在Android中通过intent打开定义的文件夹?

为什么不在Android中通过intent打开定义的文件夹?,android,android-intent,Android,Android Intent,此代码通过打开导航重定向到驱动器,但未打开实际给定路径 旧代码 Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/foldername/"); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setDataAndType(uri,

此代码通过打开导航重定向到驱动器,但未打开实际给定路径

旧代码

Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/foldername/");
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setDataAndType(uri, "text/csv");
startActivity(intent);
我通过uri获得的路径值是:
/storage/emulated/0/myfolder

新代码

Intent resultIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
resultIntent.addCategory(Intent.CATEGORY_OPENABLE);
Uri uri = 
Uri.parse(Environment.getExternalStorageDirectory().getPath() + 
"/myfolder/");
resultIntent.setType("*/*");
resultIntent.putExtra("android.provider.extra.INITIAL_URI", uri);
// show the entire internal storage tree
//resultIntent.putExtra("android.content.extra.SHOW_ADVANCED", true);
startActivity(resultIntent);
让我知道这个代码中的问题在哪里

private static final int READ_REQUEST_CODE = 10;
...
/**
 * Fires an intent to spin up the "file chooser" UI and select an image.
 */
public void performFileSearch() {

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType(uri, "text/*");

    startActivityForResult(intent, READ_REQUEST_CODE);
}
用户在选择器中选择文档后,onActivityResult() 有人打电话来。resultData参数包含指向的URI 选定的文档。使用getData()提取URI。当你有 您可以使用它来检索用户想要的文档


您是否在清单中添加了权限?并请求权限??查看
意图。额外。初始URI
。但最好使用ACTION\u OPEN\u文档,以便在Android上工作。@KaranKhurana是的,我在清单中添加了权限,并在运行时询问,问题是Android 7及以上版本首先,
text/csv
不是目录的MIME类型。目录没有MIME类型。其次,
ACTION\u GET\u CONTENT
不将
Uri
作为输入。请参阅中的“输入”部分。欢迎您尝试将该
Uri
放入,但不需要
ACTION\u GET\u CONTENT
来尊重它或理解那里的
文件
Uri
。我想打开特定文件夹。
@Override
public void onActivityResult(int requestCode, int resultCode,
        Intent resultData) {

    if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {

        Uri uri = null;
        if (resultData != null) {
            uri = resultData.getData();
            Log.i(TAG, "Uri: " + uri.toString());
            showImage(uri);
        }
    }
}