java - 微信android sdk 能否一次发送多张图片?
ringa_lee
ringa_lee 2017-04-17 11:14:34
0
1
635
WXImageObject imgObj = new WXImageObject(); imgObj.setImagePath(path); WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; Bitmap bmp = BitmapFactory.decodeFile(path); Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true); bmp.recycle(); msg.thumbData = Util.bmpToByteArray(thumbBmp, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("img"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline ; api.sendReq(req);

以上代码可以分享一张图片到微信朋友圈,但是如果 想要一次分享多张图片怎么办啊

ringa_lee
ringa_lee

ringa_lee

reply all (1)
巴扎黑

不能,至少目前这个SDK版本是不能处理多个图片。SDK没有混淆,通过观看,它支持

public static final int TYPE_UNKNOWN = 0; public static final int TYPE_TEXT = 1; public static final int TYPE_IMAGE = 2; public static final int TYPE_MUSIC = 3; public static final int TYPE_VIDEO = 4; public static final int TYPE_URL = 5; public static final int TYPE_FILE = 6; public static final int TYPE_APPDATA = 7; public static final int TYPE_EMOJI = 8;

SDK 通过Bundle来传递数据,用记录每种数据类型,并且都是单条的记录,如图片数据WXImageObject

paramBundle.putByteArray("_wximageobject_imageData", this.imageData); paramBundle.putString("_wximageobject_imagePath", this.imagePath); paramBundle.putString("_wximageobject_imageUrl", this.imageUrl);

只有单一的 imageData ,死心吧。

不过,网上有个方法是通过系统的“分享”来调用微信,下面是我写的代码测试有效,不过这种方法还得手工在微信里面操作,适用范围太小:

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 imageUris = new ArrayList(); for (File f : files) { imageUris.add(Uri.fromFile(f)); } intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); startActivity(intent); } // 遍历 SD 卡下 .png 文件通过微信分享 File root = Environment.getExternalStorageDirectory(); File[] files = root.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().endsWith(".png")) return true; return false; } }); shareMultiplePictureToTimeLine(files);
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!