Android - 将 TXT 文件作为电子邮件附件发送失败(“无法发送附件”)

2024-01-31

我试图让我的 Android 应用程序发送一封带有附件的电子邮件,并且我从 .txt 文件开始,因为这些很简单。

到目前为止,我有这个(发生在片段内):

//Send the email
Intent mailIntent = new Intent(Intent.ACTION_SEND);
mailIntent.setType("text/Message");
mailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{address});
mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Test Email");
mailIntent.putExtra(Intent.EXTRA_TEXT   , "Hi!  This is a test!");

//Deal with the attached report
String FileName = "report.txt";
Calculator.generateReport(getActivity().getApplicationContext(), FileName);
//It will be called "report.txt"
File attachment = getActivity().getApplicationContext().getFileStreamPath(FileName);
if (!attachment.exists() || !attachment.canRead()) {
    Toast.makeText(getActivity().getApplicationContext(), 
                   "Attachment Error", 
                   Toast.LENGTH_SHORT).show();
    System.out.println("ATTACHMENT ERROR");
}
else
{
    Uri uri = Uri.fromFile(attachment);
    mailIntent.putExtra(Intent.EXTRA_STREAM, uri);
}

//Send, if valid!
try {
   startActivity(Intent.createChooser(mailIntent, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(getActivity().getApplicationContext(), 
               "There are no email clients installed.", 
               Toast.LENGTH_SHORT).show();
}

不幸的是,这似乎不起作用。现在我知道该文件存在;如果我在之后插入适当的代码generateReport(),我可以找到并访问该文件并读取其内容。它就在那里,而且我有正确的名字。

当我可以选择电子邮件客户端时,我选择了 Gmail,发现确实有一个report.txt文件附加到电子邮件中。但是,当我发送电子邮件时,我收到一条通知,指出“无法发送附件”,并且电子邮件到达时没有附加任何内容。

我应该指出,我也尝试过其他意图类型,例如text/plain and message/rfc822,无济于事。

关于我可能做错了什么有什么想法吗?


如果您已将文件另存为应用程序的私有文件,应用程序可以查看是否正常,但外部电子邮件客户端将无法看到它。

您需要将其写出到外部存储,或将其公开。

Use http://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE http://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE or http://developer.android.com/guide/topics/data/data-storage.html http://developer.android.com/guide/topics/data/data-storage.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 将 TXT 文件作为电子邮件附件发送失败(“无法发送附件”) 的相关文章

随机推荐

  • React Native:指定的子级已经有父级

    我有 2 个组件 DraggableCard 和 ChooseMachine ChooseMachine 使用 DraggableCard 当我到达 ChooseMachine 组件时 它返回错误 The specified child a
  • 如何在第二个连接表中进行多个条件的连接?

    我有2张桌子 第一个表是客户列表 第二个表是这些客户拥有的设备列表 另一个字段包含该客户的一些数据 客户问题 问题是对于每个客户来说 可能存在多个问题 我需要对这些表进行联接 但只返回有其中两个问题的客户的结果 问题是 如果我使用 OR 进
  • iText PDFWriter - 如果少数表格行转到新页面,则写入表格标题

    我在用PdfWriter创建 PDF 文档 我正在添加一个PdfPTable到 PDF 文档 该表有标题行 然后是实际数据行 如果表很大 那么它的一部分将被转移到新页面 我希望此页面也有表格标题行 但是 只有当表数据进入新页面时 我才需要此
  • 将带有日期列的 pyspark DataFrame 转换为 Pandas 会导致 AttributeError

    我有以下数据框 pyspark DATE date nullable true ID string nullable true A double nullable true B double nullable true 在尝试将数据帧转换为
  • 如何使用 Google Apps 脚本在 Gmail 插件中创建此 UI

    有人可以告诉我如何使用 Google Apps 脚本在 Gmail 插件中实现以下 UI 我尝试了 KeyValue 的带有可点击文本的图标我能够实现这一点 但我不知道如何将电子邮件文本放在 keyValue 图标旁边 现在 我不关心带有计
  • fopen 在 Linux 中失败,但在 Windows 中工作

    当我运行下面的代码时 它在 Linux 中失败 但在 Windows 中没有问题 文件名类似于 src 文件夹 文件 char loadProgSource const char filename size t finalLength ch
  • 你会如何用冰糕来记忆玫瑰花?

    尝试注释此代码 玫瑰记忆 给我一个错误Use of undeclared variable git sha typed strict frozen string literal true module Util extend T Sig s
  • 将ArrayList转换为有序集(TreeSet)并返回

    我是一种采用数字列表的方法 例如ArrayList 并将其转换为排序集 例如TreeSet 并返回它 我写了代码 但遇到了一些问题 public TreeSet getSort ArrayList list TreeSet set new
  • 来自 HTTPS URLSession.dataTask 的 0 字节数据

    我正在尝试从 URL 检索一些 JSON 数据 但它每次在数据中返回 0 字节 我检查了几个不同的 SO 帖子 但似乎没有一个与我遇到的确切问题相符 因为我从中获取数据的服务器确实使用带有 TLS 1 2 的 HTTPS 所以我不认为有任何
  • 边框位于文本下方但不穿过文本

    我正在为我的杂志做网页设计 现在 我正在尝试制作类似于 1996 年标题的内容 如下图所示 文本下方有边框 但文本周围有白色背景 任何人都可以帮助我做到这一点吗 当然可以 试试这个 HTML div class heading h1 Hea
  • DAX 相当于 Excel PERCENTRANK.INC 每个类别

    我想在 DAX 中计算 Excel 函数 PERCENTRANK INC 的等效项 但按类别计算 我承认我什至不知道如何计算类别 任何提示将不胜感激 以下是示例数据的 M 代码 let Source Table FromRows Json
  • 如何禁用非员工用户的可浏览 API (is_staff=False)?

    就我而言 我使用 Django REST Framework DRF 作为内部 api 它不适合普通用户使用 因此我想为普通用户禁用它 an admin is staff True should be able to access it a
  • ALM 12:通过 REST 进行身份验证返回 400 错误请求

    我遵循这里的指导 http alm help saas hp com en 12 50 api refs REST TECH PREVIEW Content General Session Management html http alm
  • 如何知道以下代码将创建多少个对象?

    当涉及到字符串时 我对对象的情况感到有点困惑 所以想知道使用以下代码将创建多少个对象 以及有关字符串池和堆的字符串对象创建的一些解释 public static void main String args String str1 Strin
  • D3D11坐标系

    我的一些旧代码最终出现了一堆令人讨厌的黑客行为 以使事情 正确 工作 在移动物体和相机方面 例如必须采用 std sin yaw 而不是 std sin yaw 在实现在线其他地方找到的方程时 通常会让一切变得混乱 在许多情况下都达到了追踪
  • iOS 9 UITableView 分隔符插入(显着左边距)

    我的分隔符有问题UITableViewCells in UITableView on iOS 9 他们有很大的左边距 我已经有用于删除间距的代码iOS 8但它不适用于iOS 9 看起来他们还添加了其他东西 我想它可能与布局边距指南 http
  • 找不到表“cdc.lsn_time_mapping”

    我正在开发一个调用此函数 sys fn cdc map time to lsn 的遗留系统 并且出现以下错误 Invalid object name cdc lsn time mapping 我在对象资源管理器中找不到此表 这个功能有替代品
  • 在句子边界分割文本文件

    我必须处理一个文本文件 一本电子书 我想对其进行处理 以便每行有一个句子 换行符分隔的文件 是吗 我如何使用 UNIX 实用程序 sed 来完成此任务 它是否有一个 句子边界 的符号 就像 单词边界 的符号一样 我认为 GNU 版本有这个
  • 让C代码自动绘制图表

    我编写了一个程序 它将数据列表写入 dat 文件 然后使用 gnuplot 单独绘制它 有没有办法让我的代码自动绘制它 我的输出的形式如下 x coord analytic approximation x coord analytic ap
  • Android - 将 TXT 文件作为电子邮件附件发送失败(“无法发送附件”)

    我试图让我的 Android 应用程序发送一封带有附件的电子邮件 并且我从 txt 文件开始 因为这些很简单 到目前为止 我有这个 发生在片段内 Send the email Intent mailIntent new Intent Int