android - 无法将文件附加到 ACTION_SEND Intent

标签 android email android-intent attachment

我正在尝试将文本文件附加到电子邮件中,但出现了一个奇怪的错误,希望有人能帮助我。当用户从选择器中选择 gmail 应用程序时,它工作正常,但如果他们选择内置邮件应用程序,他们会看到提示“无法附加文件”。

代码如下所示:

public static void sendMail(Context context, String emailBody, String emailSubject, String emailAddress, String attachmentFilename){
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("plain/text");

    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { emailAddress});
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
    emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody);

    if(attachmentFilename != null) {
        //Add the attachment by specifying a reference to our custom ContentProvider and the specific file of interest
        emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + Settings.VYPR_LOG_PROVIDER_AUTHORITY + "/" + attachmentFilename));
    }
    context.startActivity(emailIntent);
}

有人对这里可能发生的事情有任何想法吗?我在这里看到的大部分内容都与 SD 卡上的附件有关。实际上,这段代码并不是我自己编写的,但看起来这一定不是这里的问题,因为如果用户选择 gmail 应用程序而不是内置应用程序,它确实可以工作。

提前致谢!

最佳答案

我很久以前遇到过同样的问题。不得不强制使用 Gmail 应用程序来发送附件。我不明白为什么内置电子邮件应用程序不起作用。

如果您尝试将附件接收到特定的电子邮件地址,您还可以考虑部署网络服务来上传附件。

希望对您有所帮助。

关于android - 无法将文件附加到 ACTION_SEND Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201682/

相关文章:

android - 服务 onStartCommand 抛出 NullPointerException

android - 试图访问 Assets 文件夹中的子文件夹

android - 完成 MainActivity 和新 Activity 之间的所有 Activity

iphone - 如何在 iOS 中注册自定义文件类型

android - 如果发生异常,则将 flatMap 短路

php - Woocommerce:在订单页面上显示产品变体描述

php - 通过 PHP 代表其他人发送电子邮件

android - 重新启动主屏幕应用程序时的小部件通知?

android - 我第一次发现这种类型的错误

android - 无法解析或不是字段(android dev网站的记事本练习)