代码片段分享

Android 系统分享无法分享图片到朋友圈消息,FaceBoo

2019-06-24  本文已影响0人  花艺荣

以下罗里吧嗦,总结是精华 ,可直接看总结.

最近项目里需要增加把我们自己的图片文件分享给他人的功能。只是走系统分享的途径,我这边很快实现了,在开发中我实现了将一个或多个文件分享给QQ或微信好友以及添加到邮件附件,心想这些都是标准实现,这些支持了,其它应该问题不大。递交版本给QA,很快给打了回来,怎么的呢,不支持分享到微信朋友圈消息(我压根没考虑到这个),我说不应该啊,发微信好友都行,怎么朋友圈消息不行呢,自己一测果然不行,审视一下代码,发现Share Intent的setType所设置的MimeType为* / *, 手动改了为image / jpeg, 试了一下成功,找了个获取文件mime type的工具方法后,马上给QA版本。不过一会后,QA又打了回来,怎么的呢,不支持FB和TT(公司业务原因,需要支持)上发状态,我欲哭啊,好在网络支持,我下了这两个软件,测试发现果然不行,这是什么原因啊,朋友圈发动态都支持了呀。网上搜了一圈都说要引入它們的SDK,难道它们不支持标准分享发动态消息。。。僵了好一会,去问技术大牛,大牛说看看其他软件支不支持,我用系统自带的相册测试,居然支持。我这是错在哪里啊,好在逻辑简单就去逐行推敲代码,没发现什么问题;分析现象,实际上FB和TT的UI都弹了出来,也Toast了一下原因,说是无法读取数据,等等,这说明FB和TT已经拿到了URI,只是解析不了,那就看我这URI怎么弄的,去看代码发现我这边是实现了一个ContentProvider,用它对第三方应用提供URI,在这个自定义provider中一看发现指定URI的MimeType有问题,果断将解决微信问题的那段获取MimeType的代码拿来用上,测试成功。

总结

  1. Share Intent的setType所设置的MimeType为对应MimeType;
  2. 如果自己实现了ContentProvider,需指定URI正确的MimeType;
上一篇下一篇

猜你喜欢

热点阅读