无法在Whatsapp上共享图像

时间:2015-04-06 06:34:23

标签: android whatsapp android-sharing

我正在编写一个分享图片的应用。 我写了代码但遇到了问题。 我在做什么 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上共享。

截图如下。我们可以看到图片未成功共享。

enter image description here

1 个答案:

答案 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);

这应该让你的图像分享。