大家通过 Android 系统级途径分享图片到 8.0.62 版本的微信会出现问题吗?

3 天前
 john6lq

最近 APP 有用户反馈遇到这方面问题,我理解 Android 系统图片分享,无论多少张图片,只要通过 FileProvider 转为 Uri ,然后塞到 Intent 里,然后给 Intent 设置 Intent.FLAG_GRANT_READ_URI_PERMISSION 就可以了。

但是测试发现,8.0.62 版本微信发送多张图片,大概率会出现 转发图片失败,请检查原图片消息的图片是否存在 的错误提示。

下面是荣耀手机论坛的反馈中的错误信息:

我使用 AndroidX core 支持库中的 ShareCompat 分享图片,发现确实如此,而 8.0.58 的微信表现正常。

ShareCompat.IntentBuilder(context)
    .setType("image/*")
    .setChooserTitle("Share via")
    .also {
        uris.forEach { uri ->
            it.addStream(uri)
        }
    }.startChooser()

找到官方文档,按照微信团队发布的 FileProvider 适配链接给每个 uri 加上:

context.grantUriPermission("com.tencent.mm", uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)

确实可以分享成功了,但是这没遵守开发规范啊,按照系统设计,发送方调用 revokeUriPermission 前微信一直能获取这个图片。而且如果所有 APP 都这么干,我要写死多少个包名在 APK 里面?(另外我发现分享图片到微信,微信还强制要求获取存储权限才给分享,这太流氓了。)

我不能完全确定是微信的问题,也许他们有什么苦衷?也许单纯就是 BUG ?也许是我调用的方式不对?

想问下大家有没有碰到?开发中是怎么适配的?因为我用 MT 管理器 试了下并没有遇到这个问题。

914 次点击
所在节点    Android
4 条回复
psklf
1 天前
“也许他们有什么苦衷?”

没有苦衷,微信的技术能力就是垃圾。你以为微信很会遵守开发规范吗?
jeesk
1 天前
刚才试过了, 多张照片确实有可能失败。 感觉是就是微信的问题
john6lq
1 天前
@psklf 技术角度确实没有理由这么干,产品层面有什么特殊要求也不一定呢,我倾向于这么理解。
jeesk
1 天前
下午测试了一波, 貌似微信热更新修复了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1157546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX