我正在编写一个分享图片的应用。 我写了代码但遇到了问题。 我在做什么 1:暂时将图像保存在Internal Stoarge中 2:传递URI以共享图像。
图像已成功保存在内部存储中但未在whatsapp上共享。 当我在whatsapp上分享它时,Whatsapp打开,我选择收件人,whatsapp处理它并说“重试”。
代码:
public void shareImage(View V)
{
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.download);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File file = new File(Environment.getExternalStorageDirectory()
+ File.separator + "myDownloadedImage.jpg");
try
{
file.createNewFile();
FileOutputStream fo = new FileOutputStream(file);
fo.write(bytes.toByteArray());
fo.close();
} catch (IOException e) {
Toast.makeText(this, "Some error in Writing"+e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
Uri downloadLocation=Uri.fromFile(file);
share.putExtra(Intent.EXTRA_STREAM, downloadLocation);
startActivity(Intent.createChooser(share, "Share Image"));
}
图像成功保存在内部存储上,但未在whatsapp上共享。
截图如下。我们可以看到图片未成功共享。
答案 0 :(得分:1)
使用以下代码获取图片并制作uri:
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
file.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
现在传递bmpUri:
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
这应该让你的图像分享。