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);
以上代码可以分享一张图片到微信朋友圈,但是如果 想要一次分享多张图片怎么办啊
巴扎黑2017-04-17 11:16:34
No, at least the current SDK version cannot handle multiple images. The SDK is not obfuscated and by looking at it, it supports
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 passes data through Bundle, using <key,value> to record each data type, and they are all single records, such as image data WXImageObject: < /p>
paramBundle.putByteArray("_wximageobject_imageData", this.imageData);
paramBundle.putString("_wximageobject_imagePath", this.imagePath);
paramBundle.putString("_wximageobject_imageUrl", this.imageUrl);
There is only a single imageData, give up.
However, there is a method on the Internet to call WeChat through the "sharing" of the system. The following is the code I wrote to test that it works. However, this method has to be manually operated in WeChat, and the scope of application is too small:
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);
startActivity(intent);
}
// Traverse the .png files in the SD card and share them through WeChat
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);