Android 调用系统文件管理器打开指定路径目录

网上找到普遍都是这样:

1
2
3
4
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setDataAndType(uri, "*/*");
startActivityForResult(intent);

但是我在 Android 4.4, 5.1, 10 上测试都不能达到打开指定目录的效果,求解

回答>>

Android 8 以上可以使用 DocumentsContract.EXTRA_INITIAL_URI 来实现
例如指定:/sdcard/Download

1
2
3
4
5
6
Uri uri = Uri.parse("content://com.android.externalstorage.documents/document/primary:Download");
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uri);
startActivityForResult(intent, 1);