为什么不在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);
}
}
}