‘壹’ 解决android11上分享图片失败,微信提示需要使用FileProvider
先看下微信分享错误的提示:
看到这个错误大家第一个可能会想到FileProvider我在AndroidManifest早已配置过了,但是配置了是你可以使用FileProvider存储了应用间共享文件,但是在并不代表你使用了FileProvider,然后了解问题我们就要先了解一个概念 分区存储
Android 10之前,外部存储区的内容主要以两种形式:
在Android 10 中,Google首次引入了 分区存储 ,将公共区域划分成了不同的集合,并且在媒体文件和其他文档之间建立了清楚的分割。经过划分之后应用不可以随意访问外部存储区中的文件,而只能访问媒体文件。
Android 11 (API 级别 30) 进一步增强了平台功能,为外部存储中的应用和用户数据提供了更好的保护。
从 Android 11 开始,使用 分区存储模式 的应用即使拥有 READ_EXTERNAL_STORAGE 权限,也无法再访问外部存储中的任何其他应用的 专属目录 中的文件
受到这一限制的影响,如果你的应用通过第三方 SDK 分享文件 ( 例如分享照片给另一应用上的好友 ) 到其他应用,而这只是将自己专属目录中的文件路径传递给目标应用,目标应用将无法读取该文件。部分分享 SDK 可能没有正确处理这种情形,没有显式报错而只是静默失败 (对方用户都没有意识到这次分享),影响开发者和用户的体验。
FileProvider是Android7就提出的应用间共享文件适配方式,而目前大多数应用和SDK都具备这中方式
如果您的应用需要在 Android 11 上向其他应用分享文件,请检查您使用的第三方分享 SDK 是否支持通过 FileProvider 进行分享 (现在大部分常用的第三方分享 SDK 均已支持)。通过 FileProvider,您的应用能够允许第三方应用读取所分享的文件,而不会受到分区存储的限制
这里微信已经支持通过了FileProvider形式进行分享了,我们可以直接调用
在项目的AndroidManifest.xml添加相关配置,示例如下:
在res/xml目录(如果没有xml目录,则新建一个)下,添加文件file_provider_paths.xml,内容如下:
external-files-path表示通过 Context.getExternalFilesDir(null) 接口获取到的目录下的文件才可被共享,其他未配置的路径均不可被分享。 同样的节点可以配置多个,以支持多个不同的子目录 ,如下所示:
将路径通过FileProvider的接口转换成 content://URI 形式,示例如下:
参考文档 OpenSDK支持FileProvider方式分享文件到微信
‘贰’ 怎么发送微信动态图片
您好!很高兴能为您解答,
首先如果
你在网上看到的gif图片是小于1m的,直接把gif图片拖拽到电脑版微信的聊天界面中发送就可以了,如果gif图片是大于1m的,就要用利用qq发送gif动态图片,然后保存到手机里,再发送到微信。或者是通过压缩gif图片。
首先你要在电脑和手机上同时登陆qq,qq必须是同一个账号的哦。先在电脑版qq界面中,打开“我的设备”,双击“我的iphone”,安卓手机的话就点击我的android手机。
接着把电脑桌面上的gif动态图片拖动到“我的iphone”界面里的发送框中,然后gif就会自动发送了。
那么现在打开你的手机qq,在消息界面中会显示“我的电脑”发送来的一条消息,点击打开我的电脑界面。
在聊天界面中,就能看到从电脑版qq发来的一张gif动态图片了...您好!很高兴能为您解答,
首先如果
你在网上看到的gif图片是小于1m的,直接把gif图片拖拽到电脑版微信的聊天界面中发送就可以了,如果gif图片是大于1m的,就要用利用qq发送gif动态图片,然后保存到手机里,再发送到微信。或者是通过压缩gif图片。
首先你要在电脑和手机上同时登陆qq,qq必须是同一个账号的哦。先在电脑版qq界面中,打开“我的设备”,双击“我的iphone”,安卓手机的话就点击我的android手机。
接着把电脑桌面上的gif动态图片拖动到“我的iphone”界面里的发送框中,然后gif就会自动发送了。
那么现在打开你的手机qq,在消息界面中会显示“我的电脑”发送来的一条消息,点击打开我的电脑界面。
在聊天界面中,就能看到从电脑版qq发来的一张gif动态图片了。那么点击下gif动态图片。
打开该gif动态图片预览界面,图片是动态的,先点击右上角的“…”更多按钮,在底部弹出的提示栏中点击“保存到手机”也就是保存手机相册中。
那么现在就打开你手机里的微信,先点击任意一位好友,进入与好友聊天的界面中,点击界面右下角“+”图标,点击“相片”从手机相片中添加gif动态图片。
那么在相片中找到刚才从手机qq中保存的gif动态图,并且选中它。
在gif预览界面中,动态图是正常的,在动态的不是静态的。左下角还有gif图片大小的信息,然后就可以点击右下角的“发送”按钮了。
然后在聊天界面中,gif动态图片就发送成功了!可以转发给更多的好友欣赏你发送的gif动态图片。发送的gif动态图片不是静止的,也不是文件形式的。