Android - 打开带附件提示的电子邮件意图

时间:2016-03-08 21:29:51

标签: android email android-intent attachment

一直试图解决这个问题,似乎找不到任何关于如何实现这一目标的线索。

我正在尝试启动电子邮件意图来发送电子邮件,但是它还会自动打开附件提示,以便用户可以选择要附加到电子邮件的图像。

有谁知道这样做的方法?

目前我正在使用发送电子邮件的标准方式,如下所示:

        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.setType("message/rfc822");
        emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"test@email.com"});
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, "test");

        try {
            startActivity(emailIntent);
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(MainActivity.this, "No e-mail client found!", Toast.LENGTH_SHORT).show();
        }
    }

感谢任何帮助。

编辑:

如果这不可能,那么有没有办法流式传输相机拍摄的图像(多个)并将它们添加为意图的附件?似乎无法找到一种方法来处理多个图像,只有一个,这就是我在应用程序设置之前设置多个应用程序并通过电子邮件发送它们的方式。

编辑2:

使用此方法从相机意图进入onActivityResult后拍摄多张照片。

    if (resultCode == Activity.RESULT_OK) {

            uriList.add(Uri.fromFile(photoFile));

            try {

                Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                photoFile = CreateImageFile();
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
                resultCode = 9999;
                startActivityForResult(takePictureIntent, CAMERA_REQUEST);

            } catch (Exception e) {
            }           
    }

1 个答案:

答案 0 :(得分:0)

String Message="<b>Name :</b> "+ed_name.getText().toString()+"<br><br>"+
               "<b>Email : </b>"+ed_email.getText().toString()+"<br><br>"+
               "<b>Mobile Number : </b>"+ed_mobile.getText().toString()+"<br><br>"+
               "<b>City : </b>"+ed_city.getText().toString()+"<br><br>"+
               "<b>Subject : </b>"+ed_subject.getText().toString()+"<br><br>"+
               "<b>Inquiry : </b>"+ed_msg.getText().toString()+"<br><br>";

            Spanned FinalMessage=Html.fromHtml(Message);


            Intent emailIntent = new Intent(Intent.ACTION_SEND);
            emailIntent.setType("message/rfc822");
            emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{"test@gmail.com"});
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Inquiry By : "+ed_name.getText().toString());
            emailIntent.putExtra(Intent.EXTRA_TEXT,FinalMessage);
            //emailIntent.putExtra(Intent.EXTRA_BCC, new String[] {GlobleVaribles.EmailBCC });
            //emailIntent.putExtra(Intent.EXTRA_CC, new String[] {GlobleVaribles.EmailCC });
            startActivity(Intent.createChooser(emailIntent, "Pick an Email provider"));