我使用通用图片加载器,并能够使用此代码将图像从我的应用转发到whatsapp
public static void shareImage(Context context, File pictureFile, String text) {
Uri imageUri = Uri.parse(pictureFile.getAbsolutePath());
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.putExtra(Intent.EXTRA_TEXT, text);
shareIntent.setType("image/*");
context.startActivity(Intent.createChooser(shareIntent, "Share"));
}
但随着最近的whatsapp更新于5月22日。我得到 不支持文件格式'敬酒。
答案 0 :(得分:0)
早期的图片共享适用于
shareIntent.setType("image/*");
但是在最新更新中,在whatsapp上共享图像需要进行更改
public class ImageFileNameGenerator implements FileNameGenerator {
@Override
public String generate(String imageUri) {
String extension = imageUri.substring(imageUri.lastIndexOf("."));
return String.valueOf(imageUri.hashCode() + extension);
}
}
更新配置
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.diskCacheFileNameGenerator(new ImageFileNameGenerator())
.build();
ImageLoader.getInstance().init(config);
图片共享代码
public static void shareImage(Context context, File pictureFile, String text) {
String imagePath = pictureFile.getAbsolutePath();
Uri imageUri = Uri.parse(imagePath);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.putExtra(Intent.EXTRA_TEXT, text);
String imageFileExtension = imagePath.substring(imagePath.lastIndexOf("."));
shareIntent.setType("image/" + imageFileExtension);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(shareIntent, "Share"));
}