android - 无法使用 Intent 从我的应用程序发送带有附件的电子邮件 (Gmail)

标签 android android-intent email-attachments

我正在尝试使用 Intent 发送包含在 sdcard 文件夹中的文件(.log 文件)。这是代码:

public void sendMail() {
            Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"name.surname@gmail.com"});
            intent.putExtra(Intent.EXTRA_SUBJECT, "Log files");
            intent.putExtra(Intent.EXTRA_TEXT, "body");
            //has to be an ArrayList
            ArrayList<Uri> uris = new ArrayList<Uri>();
            //convert from paths to Android friendly Parcelable Uri's
            if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
                File root = Environment.getExternalStorageDirectory();

                File logfolder = new File(root, "log");


                for (String file : logfolder.list()){
                    Uri u = Uri.parse(file);
                    uris.add(u);
                }
                intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
                startActivity(Intent.createChooser(intent, new String("Send mail...")));
            }

        }

我从菜单中选择 Gmail。打开 Gmail 后,它会正确显示包含收件人、主题、文本和附件文件的邮件。邮件发送没有错误,但我收到一条状态栏通知,提示“无法显示附件”!事实上,收件人正确收到电子邮件,但没有附件。 我不知道是什么问题。为什么附件发不出去?请帮助我!!

最佳答案

好的。我找到了解决办法。需要替换这个:

for (String file : logfolder.list()){
   Uri u = Uri.parse(file);
   uris.add(u);
}

用这个:

for (File file : logfolder.listFiles()){
    Uri u = Uri.fromFile(file);
    uris.add(u);
}

关于android - 无法使用 Intent 从我的应用程序发送带有附件的电子邮件 (Gmail),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389351/

相关文章:

java - JSON异常: No Value For

Android - 打开一个外部应用程序,然后调用一个 Intent URI

javascript - 获取 Thunderbird 附件的名称

java - 在 mimemessage 中添加 "addinline"函数时出现 NullPointerException

来自 iPhone 的 java mailx 多部分附件丢失

java - 如何消除 Android 按钮的延迟?

android - 在哪里可以找到 Android 中 AndEngine 的俄罗斯方 block 等游戏的示例代码?

android - 如何获取带有 Activity 名称的 Activity 图标

java - 如何在选项卡 Activity 中调用微调器?

android - 如何阅读太长的 repo 差异