美文网首页Android开发Android高级技术
android调用系统分享实现朋友圈同时分享文字和图片(可多张)

android调用系统分享实现朋友圈同时分享文字和图片(可多张)

作者: lvnihen | 来源:发表于2016-11-18 14:34 被阅读7754次

先上代码:

private void shareMultiplePictureToTimeLine(File... files) {
                Intent intent = new Intent();
                ComponentName comp = new ComponentName("com.tencent.mm",
                                "com.tencent.mm.ui.tools.ShareToTimeLineUI");
                intent.setComponent(comp);
                intent.setAction(Intent.ACTION_SEND_MULTIPLE);
                intent.setType("image/*");
                
                ArrayList<Uri> imageUris = new ArrayList<Uri>();
                for (File f : files) {
                        imageUris.add(Uri.fromFile(f));
                }
                intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
                intent.putExtra("Kdescription", "wwwwwwwwwwwwwwwwwwww");
                startActivity(intent);
}
              localIntent = new Intent("android.intent.action.SEND");
              localIntent.putExtra("android.intent.extra.TEXT", paramString1);
              localIntent.putExtra("sms_body", paramString1);
              localIntent.putExtra("Kdescription", paramString1);
              if (localUri1 == null)
                break;
              localIntent.putExtra("android.intent.extra.STREAM", localUri1);
              localIntent.setType("image/*");
              context.startActivity(Intent.createChooser(localIntent, "Share"));

其中最关键的就是:

intent.putExtra("Kdescription", text); 

文字部分一直分享失败,搞了很久都分享失败后来才发现是需要加上这一句了·····坑!
原来Kdescription是微信描述信息的键。

原因是:微信的代码已经做了代码混淆,因此看起来有些困难,但是仔细观察还是有很多东西可以看出来的。在此类中我们寻找Intent传递的有关key的名称,找到了好几个,因此我们可以一个个来测试,最终发现就是Kdescription这个键来传递描述信息。

效果如下:


Paste_Image.png

相关文章

网友评论

  • 卖车管家:安卓微信6.6.7 Kdescription 已经失效。https://www.jianshu.com/p/57935d90bf75
  • _那个人:分享到微信朋友圈 多图会提示 资源获取失败
  • 7dd7e3ff8552:楼主private void shareMultiplePictureToTimeLine(File... files) 这个参数创建呢?我想得到相册下的目录。
  • chen酿葡萄酒:请问,如何把文字和图片一块分享给微信好友啊
  • 啦啦辣辣:楼主,你好,请问下QQ怎么可以同时分享图片与文字呢,目前只能实现单独分享。谢谢
  • c9a85ec5c007:intent.putExtra("Kdescription", text);
    这个没传,朋友圈、qq、微博什么的都可以发,但是发给微信好友不行怎么解决?
    发给微信好友多图就提示:分享失败:多文件分享仅限照片格式。
    啦啦辣辣:楼主,你好,请问下QQ怎么才可以同时分享图片与文字呢 ,目前只能实现单独分享。谢谢
    cb6c8dcb57c9:@ftgqzhengkai 请问你最后解决这个问题了么???
    c9a85ec5c007:intent.putExtra("Kdescription", text);
    这个传了发给微信好友还是不行!
  • 40f614d9bb95:我看到别人分享到朋友圈还能带url传递链接过去,分享后在朋友圈能点击url进入详情页,不知道这个怎么做?有什么参数传递?不要调用share sdk情况下。
  • bf2615ad2f09:楼主,是如何调用函数shareMultiplePictureToTimeLine(File... files),
  • 165a127e2d0e:请问分享给微信好友 可不可以呢?
  • 马德率的伊比:请问楼主 7.0的没法用怎么解决啊
    默默小歇:@马德率的伊比 嗯 谢谢 但是每转化一次就会新生成一个图片在相册里,这个怎么避免?
    马德率的伊比: @默默小歇 恩 用 MediaStore.Images.Media.insertImage()转化一下uri就可以了
    默默小歇:7.0的这个请问您解决了没?解决了分享下解决思路哇
  • 南生的奥特曼:这个发送成功或者发送失败能有回调嘛?
    lvnihen:@南生的奥特曼 没有回调的,分享是直接跳转到微信界面上去分享的
  • 6cc6900c880c:楼主 ,请问我掉用这个方法的时候 ,老是报错!Unable to find explicit activity class {com.tencent.mm/com.tencent.mm.ui.tools.ShareToTimeLineUI}; have you declared this activity in your AndroidManifest.xml? 怎么搞?
    一只写代码的猴子:用微信的SDK里面提供的api 判断一下时候安装了微信客户端不就行了嘛
    6cc6900c880c:@星若星兮 装了的 最后重新登录微信就好了
    794f9ac3f572:大哥,你机器上没装微信,两个办法解决:
    1.在startActivity的时候,try/catch一下;
    2.在startActivity之前,用List<PackageInfo> packageInfos = pkgMgr.getInstalledPackages( PackageManager.GET_ACTIVITIES);遍历机器上所有的activity,然后判断是否有名字为com.tencent.mm.ui.tools.ShareToTimeLineUI的activity,没有就提示用户没有安装微信;
    个人推荐第二种,不要总是依赖于try/catch,因为这玩意儿虽然安全,但也带来效率上的损失,并且从逻辑上来说,你的确需要判断是否有没有安装微信,安装过,你才有理由去启动微信朋友圈的activity;
  • lvnihen:@板山人 :joy:,以后应该不会有什么问题,这个是系统的API,微信应该不会去做什么动作
    HowHardCanItBe:@长安_e9aa 目前看无解,你可以看下我这篇文章 https://www.jianshu.com/p/57935d90bf75
    长安_e9aa:@HowHardCanItBe 请问 您是怎么解决的这个问题呢
    HowHardCanItBe:6.6.7版本的微信已经不能分享文本了
  • 哎你的益达:我将图片下载到/storage/emulated/0/Android/data/包名/files/Download/image.jpg这个路径下分享到朋友圈时提示"获取资源失败,仅支持分享照片至朋友圈",不知道你有没有遇到过这个问题?
    哎你的益达: @城池有 @哎你的益达 分享图片Uri的路径要加上“file://”微信就可以了正常识别了
    城池有:请问解决了嘛?也遇到相同的问题
  • f9c735d44264:楼主,,我想实现那种缩略图加文字链接的那种,,就是能点击跳转详情页,,可以用系统的微信朋友圈分享实现吗?
    lvnihen:@f9c735d44264 对呀,你这种是用微信的SDK或者shareSDK就可以了,我这个是微信一次性分享多张图片的
    幌才:你这种只是分享一个链接,可以直接用微信SDK分享
  • 疯狂搬砖者:楼主 这个怎么用 是系统分享里面的微信朋友圈吗
    lvnihen:@疯狂搬砖者 就按上面的操作就可以了,就是用系统的API一次性分享多张图片,shareSDK和微信SDK没有这个功能
  • e86d6f780179:牛逼,楼主以后会有问题么,这么搞?

本文标题:android调用系统分享实现朋友圈同时分享文字和图片(可多张)

本文链接:https://www.haomeiwen.com/subject/tyzjpttx.html