【问题标题】:How to read USB OTG on Android 11如何在 Android 11 上读取 USB OTG
【发布时间】:2021-02-24 11:24:54
【问题描述】:

我想在 Android 11 上读取 OTG USB 我可以在 Android 9 上列出这样的文件:

val path = File("/storage")

我可以在 Android 11 中列出外部存储器中的文件,但不能列出 USB OTG:

val path = Environment.getExternalStorageDirectory()

问题是为什么我可以在 Android 11 上读取外部存储器但不能读取 OTG USB? 我希望能够在 Android 11 上读取 USB OTG。

【问题讨论】:

  • The question is why can I read the sd card /storage 不是可移动的 micro sd 卡。此外,您无法读取 /storage。
  • The question is why can I read the sd card 那是您设备中的外部存储器。它与可移动的微型 SD 卡有关。
  • 你可以从可移动 micro sd 卡中列出吗?好吧,如果你插入一个..
  • why can I read external memory but not OTG USB on Android 11 ? 好吧,您使用的是外部存储器的路径。所以难怪..我认为你应该改写你的问题。

标签: android usb-otg


【解决方案1】:

使用getExternalFilesDirs(null)ACTION_OPEN_DOCUMENT_TREE

getExternalFilesDirs() 将返回一件、两件或三件物品,具体取决于插入的可移动 micro sd 卡和连接的 USB otg 笔式驱动器。

您可以通过删除 Android 目录并从获得的路径进一步获取分区的路径。

更新。我之前没有将 USB 笔式驱动器连接到我三天前的 Android 11 设备。

遗憾的是,在 getExternalFilesDirs() 中没有提到它,以前在较低的 Android 版本中就是这种情况。 micro SD 卡是。

但是.. 使用带有ACTION_OPEN_DOCUMENT_TREE 的 SAF 完全访问。甚至可以选择驱动器的根目录。

【讨论】:

  • 谢谢!我使用 getExternalFilesDirs(null) 它在华为设备上工作,但由于某种原因,它没有显示谷歌像素设备中 USB OTG 笔式驱动器的路径,知道为什么吗?两者都有相同的版本。
  • ACTION_OPEN_DOCUMENT_TREE
  • 我正在使用 ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION 我不想使用 ACTION_OPEN_DOCUMENT_TREE,因为我想自定义我的文件管理器应用程序。
  • 好吧,如果 USB otg 驱动器只能使用 saf 访问,那么您必须使用 saf。所有文件访问不会突然为您打开该驱动器。如果你制作了一个文件管理器应用,你也应该添加一个 saf explorer。
  • 知道了!谢谢!
猜你喜欢
  • 2013-03-12
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 2023-03-28
  • 2021-11-15
  • 1970-01-01
相关资源
最近更新 更多