Android,.txt 电子邮件附件未通过意图发送

2024-02-24

我正在测试创建一个 .txt 文件,然后通过意图将其作为电子邮件附件发送。

创建 .txt 文件

    try {
        String fileName = "testFileName.txt";
        File root = new File(Environment.getExternalStorageDirectory(), "testDir");
        if (!root.exists()) {
            root.mkdirs();
        }
        File gpxfile = new File(root, fileName);
        FileWriter writer = new FileWriter(gpxfile);
        writer.append("Testing email txt attachment.");
        writer.flush();
        writer.close();
        sendEmail(gpxfile.getAbsolutePath());
    } catch (IOException e) {
        e.printStackTrace();
    }

发送电子邮件

protected void sendEmail(String fileName){
    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("message/rfc822");
    i.putExtra(Intent.EXTRA_SUBJECT, "Test subject");
    i.putExtra(Intent.EXTRA_TEXT, "This is the body of the email");
    i.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileName));
    try {
        startActivity(Intent.createChooser(i, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }
}

这一切似乎都运作良好。它打开电子邮件客户端,主题、正文和附件全部可见

并且发送得很好,表明有附件

但是当我打开gmail时,没有显示附件

当我查看电子邮件时,同样的故事

在手机上的“已发送”文件夹中查看电子邮件也显示没有附件

该代码是从 SO 上的多个不同帖子复制并粘贴的,看起来他们没有任何问题。文件去哪儿了?是不是被gmail拦截了?或者根本不发送?文件不存在吗?

注:我有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />在清单中设置。

提前致谢。


问题出在文件路径上。进行了以下更改:

sendEmail(gpxfile); // This is the file itself, not the file path

然后实际发送电子邮件:

protected void sendEmail(File file){
    Uri path = Uri.fromFile(file); // This guy gets the job done!

    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("message/rfc822");
    i.putExtra(Intent.EXTRA_SUBJECT, "Test subject");
    i.putExtra(Intent.EXTRA_TEXT, "This is the body of the email");
    i.putExtra(Intent.EXTRA_STREAM, path); // Include the path
    try {
        startActivity(Intent.createChooser(i, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android,.txt 电子邮件附件未通过意图发送 的相关文章

  • 如何在 ImageButton 上显示文本?

    我有一个ImageButton我想在上面显示文本和图像 但是当我尝试使用模拟器时
  • 无法调用类的无参数构造函数。向 Gson 注册此类型的 InstanceCreator 可能会解决此问题

    java lang RuntimeException Unable to invoke no args constructor for class com arch example network models NetworkPagingL
  • 如何创建轮播ViewPager?

    我想做的只是 Android 中的水平轮播 如果我有 3 个屏幕 A B 和 C 那么我希望我的 ViewPager 允许我像这样移动 A B B C C A GTalk for Android 的对话可以这样切换 三星的主屏幕和应用程序屏
  • 在 flutter 应用程序中添加启动屏幕的正确方法是什么?

    我正在开发一个基于 flutter 的应用程序 并研究了几种添加闪屏的方法 但我不确定哪一个是最好实现的 import dart async import package flutter material dart import packa
  • Android 矩形有两种不同的颜色

    如何通过使用两种不同颜色和阴影来创建矩形形状 就像上图一样 Please create a drawable file and put the below code in it
  • 检查 key 是否存在 firebase Android

    我想检查 firebase 数据库中是否存在密钥 例如 我想查找关键的 upvotes 以查看它是否存在 Here is an exmaple upvotes key does not exist in here 现在我尝试检查密钥 upv
  • ANDROID:如何从所有窗口顶部的通知或长按搜索按钮启动弹出对话框?

    我已经搜索过 一切都是关于启动活动而不是对话框 我想要做的是在状态栏中显示通知 当用户按下它时 在用户单击通知之前正在查看的内容之上会弹出一个对话框 我不希望对话框显示在主要活动或最近的应用程序列表的顶部 另外 如何通过长按搜索按钮启动对话
  • Android view.animate() 第一次执行后工作方式不同且错误

    我已经实现了一个横幅 每当用户失去连接时就会弹出 重新连接后 另一个横幅会显示几秒钟然后消失 布局是一个RelativeLayout 其中一个灰色的TextView 表示警告 一个绿色的TextView 表示重新连接消息 如果我只是更改 V
  • Android studio 3.0不生成签名的apk

    将 android studio 更新到版本 3 0 Windows 后 我无法生成签名的 APK 构建完成后 我收到消息 单击 查找 会将我带到 APP 文件夹 但找不到 APK 改变了什么 自Android Studio 3 0更新后
  • 文本末尾有额外的换行符

    使用此方法设置文本后 我似乎得到了一些额外的换行符TextView message setText Html fromHtml message 我怎样才能删除这些 它们导致我的布局扭曲 因为它在输出中添加了两条额外的行 该字符串已通过以下方
  • 使用协程对任务进行排队

    我最近开始阅读有关协程的内容 我想询问某个场景 考虑一个带有一个按钮的简单屏幕 单击后 它会执行一堆打印语句和一些延迟 其间 到目前为止 我正在使用协程来实现这一目标 现在 我的问题是 如果用户反复向该按钮发送垃圾邮件 是否有一种方法可以将
  • Android - 带图像的按钮 - 禁用按钮时图像变暗

    在 Android 中 我有一个包含图像和文本的按钮 禁用该按钮时 文本会自动变灰 但图像保持不变 当按钮被禁用时是否可以使图像变暗而不需要两个单独的图像 在您的代码中 您还可以使用彩色滤光片 http developer android
  • Android:调用超类的原因?

    我正在查看 Android 开发人员网站上的记事本教程 我有一个关于调用活动超类的重写函数的问题 例如 public class Notepadv3 extends ListActivity Override public boolean
  • 从其他域发送电子邮件而不是垃圾邮件

    这个问题问了一遍又一遍 仍然没有好的解决方案 当有人使用 php 发送电子邮件并将另一个域放在 from 中时 它最终会成为垃圾邮件 解决方案通常是 使用您的 发件人 并将您想要的域名放入 回复 中 将您的域列入主要邮件服务的白名单 第一个
  • Firebase 邀请发送电子邮件,但不发送短信。返回结果代码 0

    我正在尝试使用 Firebase 在我的 Android 应用程序中实现应用程序邀请系统 该代码与他们中给出的完全相同guide https firebase google com docs invites android private
  • 在 Cordova / PhoneGap 中生成 iOS 和 Android 图标

    我有一个新创建的 Cordova 项目 其中包含以下内容config xml设置 使用来自http docs phonegap com en edge config ref images md html http docs phonegap
  • 如何更改Android软键盘中任意键的按键背景

    我想让键盘上的一些键与其他键不同 例如下图中的shift 删除 空格键 根据google的参考文档 我们可以通过使用 来改变按键的背景android keybackground drawable xxx in input xml 但它改变了
  • 如何在flutter app android中添加Startapp广告?

    我想用其他广告更改 AdMob 广告 一些个人问题 如何在flutter app android中添加Startapp广告 有什么方法可以将启动广告添加到我的 flutter 应用程序 android 中 StartApp 现已更名为 St
  • 使用 Ant 构建 Android 库项目

    我在使用 ant 构建 Android 库项目时遇到问题 当我尝试跑步时ant release 它说Target release does not exist in the project MyProject 然后我假设库可能无法通过发布
  • 如何从 Android 应用程序调用 REST API? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是 android 新手 也是编程新手 如何从 Android 应用程序调用 REST api GET POST 请求 请给我推荐一

随机推荐

  • AFNetworking SSL 固定过期证书

    如果 iOS 应用程序使用 ssl pinning 如何更新过期的 ssl 证书 似乎只有应用程序更新才能更新证书 但不更新应用程序的用户将不会收到此更新 关键是要理解可能的值 https github com AFNetworking A
  • 如何在文档中嵌入作用域 html (css)

    我需要能够将从远程 api 获取的 HTML 片段 嵌套元素和 CSS 嵌入到我的文档中 这样它们的 CSS 就不会影响我的整个文档 我需要获取 随机 gmail 消息 HTML 并将它们嵌入到我的网站中 问题是大多数消息都有 CSS 标签
  • ES6 中的二维数组

    长话短说 我正在寻找一种使用 ES6 创建和填充 2D 数组的方法 以避免for循环 创建的数组应包含全 0 我尝试了很多不同的方法 所以我无法发布所有这些方法 var r c 5 5 var m Array r fill Array c
  • 如何阻止 Visual Studio“总是”检查解决方案文件?

    显然没有任何原因 每次我打开解决方案时 Visual Studio 都会检查 sln 文件 如果我将它与以前的版本进行比较 没有任何变化 但这确实令人沮丧 因为每个人都检查了解决方案 我使用的是 VS 2008 和 TFS 2008 都是
  • IOS UIImageView 显示为黑色背景

    所以我有这个可扩展的函数UIImages 我用它来初始化UIImageView带有图像 我的问题是 当显示图像时 它周围总是有一个黑色矩形 尽管图像是背景完全透明的 png 这是缩放方法以及初始化UIImageView UIImage im
  • AngularJS 错误:缩小后的 $injector:modulerr

    嘿伙计们我收到一个错误Error injector modulerr当我缩小 Angular JS 1 应用程序时 到目前为止 我已经研究过这是我调用依赖项的方式HomeController但是我不确定我可能哪里出错了 我注意到这里有一些预
  • JavaScript 括号将原始类型转换为对象

    如果数字是原始类型 为什么我可以这样做 gt 12345 toString 12345 括号是将原始类型转换为Number 不 括号只是让解析器理解 不是小数点 12345 toString 也会起作用 每当您访问原始数字的属性时 原始数字
  • 如何在 scrapy pipelines.py 文件中导入 django 模型

    我正在尝试在 pipelines py 中导入一个 django 应用程序的模型 以使用 django orm 保存数据 我在第一个涉及的 django 应用程序 app1 中创建了一个 scrapy 项目 scrapy project 顺
  • 如何更改 MDI 子窗口图标?

    看下图 我已经创建了Sub Window动态地 我尝试使用setWindowIcon函数如下 mdiWindows gt setWindowIcon QIcon icon ico 但效果不佳 另请参阅以下代码 MDI 窗口创建 QWidge
  • 如何使用 Google Apps 脚本显示 Google Drive 图像?

    如果我使用 Google 教程页面中的以下内容来加载图像 则效果很好 第一个 Google 涂鸦 app add app createImage http www google com logos googleburn jpg 但如果我尝试
  • 在控制器中访问另一个 CakePHP 模型的最佳方法是什么?

    假设我有两个这样的控制器Table1sController and Table2sController 对应型号 Table1sModel Table2sModel In the Table1sController 我懂了 this gt
  • 在本机 iPhone 应用程序中的 UIWebView 中使用 InnerHTML 是否存在错误?

    我有一个相当大的 HTML JS CSS 应用程序 在 iPhone 上使用 Safari 作为 Web 应用程序运行时效果非常好 当在本机 iPhone 应用程序中的 UIWebView 中运行相同的应用程序时 在 jQuery 中调用创
  • Vim,如何自动删除“_”的空行?

    怎样才能让Vim总是删除内容到 当我们删除空行时 N dd or d motion EDIT1 例如 我写过 Hello 某处 然后用yy 然后我将光标移动到其他地方 删除一些空白行N dd到 而没有明确指示寄存器 然后我可以走一条正确的线
  • (撰写)Common Lisp

    我们在 P Graham 的 ANSI Common Lisp 第 110 页 中找到了这个函数构建器来实现组合 参数是 n gt 0 带引号的函数名称 我不完全理解它 所以我将在这里引用代码并在下面指出我的问题 defun compose
  • 如何使用 Ionic 4 检测平台

    如何使用 Ionic 4 检测浏览器和移动网络平台 因为当我在桌面浏览器中尝试使用以下代码时 它没有落入 core 健康 状况 if this platform is core alert core platform else alert
  • 返回Task的接口的同步实现

    如同在同步代码中实现需要 Task 返回类型的接口 https stackoverflow com questions 26352034 implementing an interface that requires a task retu
  • 如何不在链接中的元素下划线?

    我试图在链接上加下划线 但 myspan 元素除外 在任何情况下我都不希望在该元素下加下划线 我还想更改 myspan 的颜色 规则似乎并不适用于此 如果我颠倒顺序并且不在 a 下划线而是在 myspan下划线 则似乎适用了规则 我见过此链
  • 在 Node 中使用 Postgres 的 Sequelize 请求查询日期范围

    我想做的是使用 Node js 中的 Sequelize ORM 获取两个日期之间的行 我正在使用 PostgreSQL 问题是 Sequelize 错误地解释了我提出的请求 这是我用来发出请求的代码 const dbresp await
  • 未找到无服务器命令“离线”

    我正在运行我的nodejs代码并且还安装了无服务器 npm i g 无服务器 但是在使用命令运行它时sls offline start CacheInvalidations我收到错误如下 无服务器错误 未找到无服务器命令 离线 您指的是 c
  • Android,.txt 电子邮件附件未通过意图发送

    我正在测试创建一个 txt 文件 然后通过意图将其作为电子邮件附件发送 创建 txt 文件 try String fileName testFileName txt File root new File Environment getExt