【问题标题】:Android - Open email intent with attachment promptAndroid - 打开带有附件提示的电子邮件意图
【发布时间】:2016-03-08 21:29:51
【问题描述】:

一直在尝试解决这个问题,但似乎找不到任何关于如何实现它的线索。

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

有谁知道这样做的方法吗?

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

        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:

从相机intent进入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) {
            }           
    }

【问题讨论】:

  • 这不可能通过任何记录和支持的方式实现。第三方电子邮件应用完全不需要支持附件。
  • 感谢您的快速回复。我编辑了我原来的问题,因为这似乎不可能。
  • 使用ACTION_IMAGE_CAPTURE N次拍N张照片,然后尝试ACTION_SEND_MULTIPLE附上。不过,我不确定有多少电子邮件应用程序会支持ACTION_SEND_MULTIPLE
  • 感谢您的帮助。我最终尝试了一些事情并得到了满足我需求的实现。

标签: android email android-intent attachment


【解决方案1】:
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"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2015-03-06
    相关资源
    最近更新 更多