【发布时间】:2020-04-10 02:18:34
【问题描述】:
我的问题是,在某些设备上,在 Android 10 的这种特殊情况下,库存华为 p30 EMUI 10,我无法创建新的 SD 卡文件。 documentFile.createFile(...) 返回 null,DocumentsContract.createDocument(...) 抛出一个我在任何地方都找不到的奇怪异常。如附图所示,上面写着“java.lang.IllegalArgumentException: Requested path ... doesn't appear under ...”。
提到的两个函数都有正确的参数,比如 mimetype 和 path。我自己没有设备,我正在通过电子邮件与一个人一起调试它。在列出他的存储时,任何地方都没有提到“/mnt/media_rw”,SD卡分区似乎被称为“/storage/0123-4567”。所有其他 SD 卡文件操作都可以正常工作,请求并正确处理这些额外的 SAF 权限。代码本身在绝大多数设备上运行良好,在我的 Android 10 上也是如此。我有目标,编译 SDK 设置为 28,构建工具 28.0.3。
有人遇到过这样的问题吗?任何想法如何解决?恐怕随着 Android 10 的发展和制造商继续以不同的方式做事,这种情况会更频繁地发生。更不用说 SDK 29 带来的变化了。谢谢
【问题讨论】:
-
你能分享你正在使用的代码吗?您是否也尝试过使用规范路径?
-
有趣。请显示完整的可重现代码,否则我们必须猜测您在做什么。
-
At listing his storages ....你可以开始告诉你如何列出它们了。 -
the SD card partition seems to be called "/storage/0123-4567"Hmmmm .... 这确实是可移动媒体上经典文件路径的示例。但在 Android Q 下没用。那你到底在做什么?
标签: android frameworks storage huawei-mobile-services