afkT/DevUtils

UriUtils.java

JiZhi-Error opened this issue · 4 comments

Caused by: java.lang.NumberFormatException: For input string: "msf:1160391"
建议参考https://blog.csdn.net/jingzz1/article/details/106188462/
我系统AndroidQ遇到的

afkT commented

尝试 Android Q DEBUG 暂时没出现这个情况,你是调用 UriUtils.getFilePathByUri 出现的?

实际是因为 Android Q Scoped Storage 限制导致,链接内的代码操作是,通过判断大于 Android Q 则直接把 Uri 文件复制到 getExternalCacheDir 中,并且返回该文件路径,这种和这个方法功能有歧义,我可以加一个新方法,专门用于把 Uri 复制到 Cahce 中并返回复制后的路径信息

尝试 Android Q DEBUG 暂时没出现这个情况,你是调用 UriUtils.getFilePathByUri 出现的?

实际是因为 Android Q Scoped Storage 限制导致,链接内的代码操作是,通过判断大于 Android Q 则直接把 Uri 文件复制到 getExternalCacheDir 中,并且返回该文件路径,这种和这个方法功能有歧义,我可以加一个新方法,专门用于把 Uri 复制到 Cahce 中并返回复制后的路径信息

我目前就是这么干的,魔改了你的工具类
判断是否大于Q
我在我手机上这个问题是必现得:一加7P Android Q

尝试 Android Q DEBUG 暂时没出现这个情况,你是调用 UriUtils.getFilePathByUri 出现的?
实际是因为 Android Q Scoped Storage 限制导致,链接内的代码操作是,通过判断大于 Android Q 则直接把 Uri 文件复制到 getExternalCacheDir 中,并且返回该文件路径,这种和这个方法功能有歧义,我可以加一个新方法,专门用于把 Uri 复制到 Cahce 中并返回复制后的路径信息

我目前就是这么干的,魔改了你的工具类
判断是否大于Q
我在我手机上这个问题是必现得:一加7P Android Q

image

afkT commented

已经修复了(DevAppX:1.9.9),你可以直接调用 UriUtils.getFilePathByUri(uri, true) 或者 UriUtils.copyByUri(uri)