如何打开应用程序的外部/共享存储目录

时间:2020-11-03 15:05:51

标签: android file directory file-browser

我有一条通知,显示下载文件的进度。完成后,点击它应打开文件保存目录(我的应用程序的外部存储目录)。该意图是通过以下方式设置的,然后传递给PendingIntent。

val dir = getExternalFilesDir("storage")
val intent = Intent(Intent.ACTION_VIEW)
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
intent.data = FileProvider.getUriForFile(context, authority, dir)
intent.type = DocumentsContract.Document.MIME_TYPE_DIR

实际发生的情况-文件浏览器打开,但显示“最近”目录(?)。

我还尝试了什么:

  • 传递绝对路径而不是内容URI,但这没有区别
  • 将类型设置为“ / ”,然后显示选择打开哪个目录的应用程序,但最终结果是相同的-“最近”
  • 改为使用ACTION_OPEN_DOCUMENT意向,看它是否也有相同的问题,是的,它也指向“最近”

注意:FileProvider设置正确,传递给Intent数据的uri是正确的。 另外请注意:如果可能的话,我想避免将这些文件保存为“下载”。

1 个答案:

答案 0 :(得分:0)

完成后,点击它应该打开文件保存的目录(我的应用程序的外部存储目录)。

这从来不是Android的功能。

以以下方式设置意图,然后将其传递给PendingIntent。

FileProvider不支持目录。尽管某些文件管理器可能会默认ACTION_VIEW不支持目录。 DocumentsContractFileProvider无关。

传递绝对路径而不是内容URI,但这没什么作用

那应该用FileUriExposedException使您的应用崩溃。