Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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
Java Android使用intent打开外部目录_Java_Android_Android Intent - Fatal编程技术网

Java Android使用intent打开外部目录

Java Android使用intent打开外部目录,java,android,android-intent,Java,Android,Android Intent,在安卓系统中,没有一种直接或明确的方式来隐含打开文件夹/目录的意图。 特别是在这里,我想打开getExternalFilesDir(Environment.DIRECTORY\u下载) 我尝试了这些应用程序,但它们只会打开一个FileManager应用程序,而不是我想要的目录: val directory = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); val uri = Uri.parse(directory.path) val

在安卓系统中,没有一种直接或明确的方式来隐含打开文件夹/目录的意图。 特别是在这里,我想打开
getExternalFilesDir(Environment.DIRECTORY\u下载)

我尝试了这些应用程序,但它们只会打开一个
FileManager
应用程序,而不是我想要的目录:

val directory = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
val uri = Uri.parse(directory.path)
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.setDataAndType(uri, "*/*")
startActivity(Intent.createChooser(openIntent, "Open Folder"))
另一个例子:

val directory = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
val uri = Uri.parse(directory.path)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "resource/folder")
startActivity(Intent.createChooser(openIntent, "Open Folder"))
打开“
下载”
文件夹 如果要打开下载文件夹,需要使用
DownloadManager.ACTION\u VIEW\u downloads
,如下所示:

Intent downloadIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS);
downloadIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(downloadIntent);
无需使用mime类型
resource/folder
,因为Android没有正式的文件夹mime类型,所以在某些设备中可能会产生一些错误。您的设备似乎不支持该mime类型。您需要使用上面的代码,因为它只是传递到您想要访问的官方文件夹


Edit:对于其他自定义目录,我不认为您可以只传递一条路径到目的地,就像这样。我不认为有一种可靠的方法可以在Android中打开文件夹


使用
文件提供程序
(测试) 编辑:如果您使用的是
FileProvider
,您应该使用
getUriForFile()
,请尝试分析
Uri
。像这样:

val dir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
val intent = new Intent(Intent.ACTION_VIEW)
val mydir = getUriForFile(context, "paste_your_authority", dir)
intent.setDataAndType(mydir, "resource/folder")
startActivity(intent);
或者,不要使用
资源/文件夹
,而是使用:

DocumentsContract.Document.MIME_TYPE_DIR
故事的寓意:
没有打开文件的标准方法。每个设备都是不同的,上面的代码不能保证在每个设备中都能工作

不,这将打开下载文件夹,我想打开我的应用程序下载目录
getExternalFilesDir(Environment.directory\u downloads)
哦,好的,我不明白你的意思。正在更新此问题。
FileProvider.getUriForFile
也不起作用。我也用
DocumentsContract.Document.MIME\u TYPE\u DIR
试过了顺便问一下,你是在模拟器上测试的吗?如果没有,你在用什么设备?我正在Pixel2 Android 9和10上测试。他们还安装了几个文件管理器应用程序“没有一个简单或明确的方法来暗示在安卓系统中打开文件夹/目录的意图”——这是因为安卓系统从来没有对此提供过官方支持。应该有人创建一个库来打开目录。或者我们StackOverflow上的人应该去Github创建一个新的开源项目,因为与谷歌现在所做的相反,有许多应用程序需要打开目录才能工作并实现其目标。@GauravMall完全同意@GauravMall我想,如果有一个包含所有隐含意图的意图助手库,从拍照、打电话和拨号到共享文件和打开它们,那将是非常棒的