美文网首页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),
      • Sen_android:请问分享给微信好友 可不可以呢?
      • 马德率的伊比:请问楼主 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