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我想,如果有一个包含所有隐含意图的意图助手库,从拍照、打电话和拨号到共享文件和打开它们,那将是非常棒的