问题描述
我有一条通知,显示下载文件的进度。完成后,点击它应打开文件保存目录(我的应用程序的外部存储目录)。该意图是通过以下方式设置的,然后传递给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是正确的。 另外请注意:如果可能的话,我想避免将这些文件保存为“下载”。
解决方法
完成后,点击它应该打开文件保存的目录(我的应用程序的外部存储目录)。
这从来不是Android的功能。
以以下方式设置意图,然后将其传递给PendingIntent。
FileProvider
不支持目录。尽管某些文件管理器可能会默认ACTION_VIEW
不支持目录。 DocumentsContract
与FileProvider
无关。
传递绝对路径而不是内容URI,但这没什么作用
那应该用FileUriExposedException
使您的应用崩溃。