Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用Uri打开特定目录?_Android_Android Intent_Directory_Uri - Fatal编程技术网

Android 如何使用Uri打开特定目录?

Android 如何使用Uri打开特定目录?,android,android-intent,directory,uri,Android,Android Intent,Directory,Uri,我想打开一个特定的目录(在文件资源管理器应用程序中),其中存储应用程序保存的图像。我可以通过Uri.parse(imagesDir.getAbsolutePath())获取该目录的Uri。我试过了,还有其他人,但都没用。以下是我的代码目前的样子: Uri selectedUri = Uri.parse(imagesDir.getAbsolutePath()); int OPEN_REQUEST = 1337; Intent intent = new Intent(Intent.ACTION_OP

我想打开一个特定的目录(在文件资源管理器应用程序中),其中存储应用程序保存的图像。我可以通过
Uri.parse(imagesDir.getAbsolutePath())
获取该目录的Uri。我试过了,还有其他人,但都没用。以下是我的代码目前的样子:

Uri selectedUri = Uri.parse(imagesDir.getAbsolutePath());
int OPEN_REQUEST = 1337;
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setDataAndType(selectedUri, DocumentsContract.Document.MIME_TYPE_DIR);
if (intent.resolveActivityInfo(getPackageManager(), 0) != null) {
    startActivityForResult(intent, OPEN_REQUEST);
} else {
    Log.e("MainActivity", "Could not launch intent");
}
另:imagesDir.getAbsolutePath()的值=/storage/simulated/0/Draw Easy

我想打开一个特定的目录,在那里存储我的应用程序保存的图像

Android从未真正支持过这一点

我可以通过Uri.parse(imagesDir.getAbsolutePath())获取该目录的Uri

这是一个无效的
Uri
。最好使用
Uri.fromFile(imagesDir)

这就是我的代码现在的样子

操作\u打开\u文档


最接近您想要的东西是符合
意图。但是,这只是为了使用以前从
操作\u打开\u文档
操作\u打开\u文档树
中获得的
Uri
。它不太可能使用来自其他地方的
Uri
,例如来自某个
文件的

SAF是痛苦的
Uri.fromFile(file.getAbsolutePath())
不起作用,因为返回的Uri类似于
file://sdcard...
。但是
文档contract.EXTRA_INITIAL_URI
内容一起使用。下面是我的作品:

private void selectDir() {
    Uri d = 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, d);
    startActivityForResult(intent, PICK_WDI_FILE);
}

请告诉imagesDir.getAbsolutePath()的值。INITIAL_DIR或INITIALDIR不总是有效的。尝试寻找更多的链接,因为有更好的链接。它们需要一个内容方案uri。不是文件方案uri。更好的主题:
如何使用ACTION\u OPEN\u文档设置初始目录?
@blackapps我通过编辑我的问题回答了您的查询。目录是否有内容方案uri?我不知道。好吧,我的应用程序做了一些照片处理,然后把它保存在一个目录中。当用户按下保存按钮时。如果图像保存成功,我希望出现一个包含操作的SnackBar。单击按钮时,我想导航到保存图像的目录。希望这能说明我实际上在做什么。谢谢你回复安卓王@AbhishekChoudhary:“当点击按钮时,我想导航到保存图像的目录”——目的是什么?此时您希望用户做什么<代码>操作\打开\文档
相当于桌面操作系统中的“文件打开”对话框。你要求用户打开什么?我在中使用了一篇文章中的代码片段,希望它能正常工作。老实说,我甚至不知道这段话到底是怎么回事。“--目的是什么?此时您希望用户做什么?”我希望用户知道保存图像的目录的位置。@AbhishekChoudhary:“我希望用户知道保存图像的目录的位置”--然后在
TextView
或其他文件中显示路径。或者,不是您决定保存图像的位置,而是最初使用
ACTION\u OPEN\u DOCUMENT
ACTION\u OPEN\u DOCUMENT\u TREE
,以便用户决定将用户图像放置在用户设备上或用户选择的云存储位置的位置。然后,你不需要告诉用户最终的位置,就像用户首先告诉你的位置一样。