在Android中将图像作为电子邮件附件发送

时间:2016-06-21 08:07:38

标签: android sendmail email-attachments

我收到一个错误,我无法在gmail中附加空文件。我正在尝试构建简单的应用程序,当我点击按钮它显示我可以发送图像的选择,但下面的代码不起作用。 请帮助我是android的新手。 代码:

       if(view.getId()==R.id.SendImage)
       {
        Uri imageUri = Uri.parse("android:resource://com.example.jaspreet.intentstest.drawable/"+R.drawable.image);
        intent=new Intent(android.content.Intent.ACTION_SEND);
        intent.setType("application/image");
        intent.putExtra(Intent.EXTRA_STREAM,imageUri);
        intent.putExtra(Intent.EXTRA_TEXT,"Hey i have attached this image");
        chooser=Intent.createChooser(intent,"Send Image");
        startActivity(chooser);

       }

3 个答案:

答案 0 :(得分:0)

尝试使用:

shareIntent.setType("image/png");

通过使用此意图知道它将发送.png文件。

this link上,您可以找到所有媒体类型/子类型的列表

答案 1 :(得分:0)

试试这个

Bitmap b =BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);

String path = MediaStore.Images.Media.insertImage(getContentResolver(),
                b, "Title", null);

Uri imageUri =  Uri.parse(path);
share.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(share, "Select"));

答案 2 :(得分:0)

试试这个代码段

    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/jpeg");
    share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + C.PROJECT_PATH + "/drawable/" + R.drawable.icon_to_share);
    startActivity(Intent.createChooser(share, "Select"));

android:resource://不是文件,可能是你通过转换为文件然后回到Uri来弄乱你的Uri。