V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
john6lq
V2EX  ›  Android

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

  •  
  •   john6lq · 1 天前 · 513 次点击

    最近 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 管理器 试了下并没有遇到这个问题。

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:38 · PVG 03:38 · LAX 12:38 · JFK 15:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.