【问题标题】:Android scoped storage - how to customize directory pickerAndroid 范围存储 - 如何自定义目录选择器
【发布时间】:2021-03-02 20:35:27
【问题描述】:

我提示用户为我的应用选择一个目录以用于此意图:

val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
        intent.addFlags(
               Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                    or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
                    or Intent.FLAG_GRANT_PREFIX_URI_PERMISSION
        )
startActivityForResult(intent, DIR_ACCESS_REQUEST_CODE)

它工作正常,但用户得到这个非常不清楚的提示,如图所示。

是否可以以某种方式对其进行自定义,或者至少显示设备存储而不是这个“最近”的东西?

【问题讨论】:

  • intent.addFlags() 请删除该声明。你不能盛大任何东西。如果您被授予访问用户选择的目录的权限,您应该会很高兴。
  • 软管标志似乎没有任何作用,我将它们移除。但这仍然无助于自定义目录选择器。
  • 当然不是。没有答案。这是一条评论。

标签: android kotlin scoped-storage


【解决方案1】:

使用 StorageManager 为您提供可用 StorageVolume 的列表。

有一个主存储卷和一个用于插入 micro sd 卡的卷。

一旦你有了一个卷,你就可以获得它的启动意图。

如果您启动该意图,选择器将打开并显示该卷。

【讨论】:

  • 谢谢,我试试这个
  • 认为这仅适用于 Q+。请尝试。
  • 工作正常,但仅适用于 Q+。不幸的是,我需要 API 21+
猜你喜欢
  • 1970-01-01
  • 2020-09-18
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 2015-04-30
  • 2022-12-08
  • 1970-01-01
相关资源
最近更新 更多