首页 > 解决方案 > 是否可以以编程方式访问 Android Q (SDK >= 29) 上的下载文件夹?

问题描述

我想列出下载.txt文件夹中的所有文件,然后允许用户选择一个并阅读其内容。我的是,但我遇到了这个问题,因为我的 Android 是 Q (29)。minSdkVersion16

我尝试了什么:

显然Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)会为 SDK <= 29 解决它。但是,我没有测试它,因为我首先想查看 Android Q 的解决方案。

getExternalStoragePublicDirectory说:

当应用程序以 Build.VERSION_CODES.Q 为目标时,从此方法返回的路径不再可供应用程序直接访问。通过迁移到Context#getExternalFilesDir(String)MediaStoreIntent#ACTION_OPEN_DOCUMENT等替代方案,应用程序可以继续访问存储在共享/外部存储上的内容。

所以:

简而言之:

是否可以在 Android Q (SDK >= 29) 中以编程方式列出.txt下载的文件?如果是这样,怎么做?

标签: javaandroidkotlinandroid-storage

解决方案


是否可以在 Android Q (SDK >= 29) 中以编程方式列出 .txt 下载的文件?

不是由其他应用程序创建的,这似乎是您的意图。

最接近的是如果您使用ACTION_OPEN_DOCUMENT_TREE并要求用户在外部存储上打开Downloads/树......而您不能在 Android R 上执行此操作(至少通过 DP1)。


推荐阅读