Android - 如何通过检查已发送的项目来确定电子邮件是否已发送

2024-05-06

我有一个应用程序,我使用意图发送电子邮件,如下所示:

//TODO attach and send here
try {           

    Log.i(getClass().getSimpleName(), "send  task - start");

    String address = "[email protected] /cdn-cgi/l/email-protection";
    String subject = "Order of " + customer + " for " + date;
    String emailtext = "Please check the attached file. Attached file contains order of " + customer;

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { address });
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext);

    ArrayList<Uri> uris = new ArrayList<Uri>();
    Uri uriList = Uri.fromFile(orderListFile);
    uris.add(uriList);

    emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

    this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));

} 
catch (Throwable t) {
    Toast.makeText(this, "Request failed: " + t.toString(),
    Toast.LENGTH_LONG).show();
}

现在,用户选择他或她想要使用哪个应用程序来发送该电子邮件。但是,一旦选定的电子邮件应用程序接管,我知道就无法确定电子邮件是否已正确发送。这里的几个问题已经讨论过使用startActivityForIntent()没有帮助,因为RESULT_OK从未由电子邮件或 GMail Ap 发送,因此我不知道用户是否发送、丢弃或将电子邮件保存为草稿。

但是,一种可能的解决方法是检查该电子邮件帐户的已发送邮件,并从那里检查用户是否发送了电子邮件。现在,有没有办法知道 Android 中电子邮件帐户的已发送项目?过去一个小时我一直在谷歌搜索,但似乎什么也没得到。


您无法检查 Email ContentProvider 的内容,因为这需要只有系统应用程序可以请求的权限。这是定义在用于电子邮件的 AndroidManifest https://github.com/android/platform_packages_apps_email/blob/master/AndroidManifest.xml:

<permission
    android:name="com.android.email.permission.ACCESS_PROVIDER"
    android:protectionLevel="signature"
    android:label="@string/permission_access_provider_label"
    android:description="@string/permission_access_provider_desc"/>
…
<application>
    …
    <!-- This provider MUST be protected by strict permissions, as granting access to
         it exposes user passwords and other confidential information. -->
    <provider
        android:name=".provider.EmailProvider"
        android:authorities="com.android.email.provider;com.android.email.notifier"
        android:exported="true"
        android:permission="com.android.email.permission.ACCESS_PROVIDER"
        android:label="@string/app_name"
        />
    …
</application>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 如何通过检查已发送的项目来确定电子邮件是否已发送 的相关文章

随机推荐

  • for-yield-getOrElse 是 Scala 的范例还是有更好的方法?

    基本上我想提取一堆选项 a b 等 这是在 Scala 中执行此操作的最佳方法吗 对于我来说 括号中的 for yield 看起来有点令人困惑 for a lt a b lt b c lt c yield getOrElse 尝试使用map
  • 设置特定div的字符集

    是否可以为特定的 div 分配字符集 这样你就可以在一页上拥有多个字符集 我目前正在通过 JS 将文本片段导入到我的网站 其中一些文本需要 UTF 8 字符集 为了确保我的文本正确显示在包含的每个页面 有时是外部站点 上 我将元标记强制添加
  • mvvmcross:如何使用枚举值作为 ItemsSource

    我的模型中有以下内容 public class Equipment public enum Type Detector VegetationClearance Removal Engaging 在视图模型中 private Equipmen
  • 常见的 R 习语 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 R 习惯用法与 Java 和 Python 习惯用法一样 有哪些好的资源 我主要推荐R地狱 http
  • 当用户单击链接时如何隐藏 Angular Material Sidenav

    我正在开发一个使用 Material UI 的 Angular 应用程序 我使用 Angular CLI 生成以下代码 Navigation HTML
  • 是否可以更改 Mercurial 中的默认 diff 工具?

    每次我做一个hg diff file ext我最终使用了控制台差异应用程序 我想使用 Kdiff3 或 WinMerge 我使用的是 Windows 有办法改变吗 我在 Mercurial 文档中找不到参考 我不是在谈论合并 我已经使用 M
  • 在 HP Load Runner 的 VuGen 中加载 javai.dll 时出现错误

    当我尝试在 HP load runner 的 VuGen 中编译一个简单的脚本时 无法启动 JVM 并出现以下错误 Java VM Internal Error Getting Error Loading javai dll 我在用着 HP
  • 单元测试(有时)会因为浮点不精确而失败

    我有课Vector代表 3 维空间中的一个点 这个向量有一个方法normalize self length 1 将矢量缩小 放大为length vec normalize length length 该方法的单元测试有时由于浮点数的不精确性
  • 日期时间值如何存储在mysql中?

    我是数据库世界的新手 我正在从 java 程序发送一个日期时间值 例如 2016 04 27 09 00 00 以便将其保存到 mysql 数据库中 我的问题是如何将该值保存到 mysql 数据库表中的日期时间类型字段中 我的意思是 它是否
  • 将 pandas 数据框中的所有 inf、-inf 值替换为 NaN

    我有一个大型数据框 不同列中包含 inf inf 值 我想用 NaN 替换所有 inf inf 值 我可以逐栏这样做 所以这有效 df column name df column name replace np inf np nan 但我的
  • NumPy 数组中负数和正数岛的计数

    我有一个包含负元素块和正元素块的数组 一个更简单的例子是一个数组a看起来像 array 3 2 1 1 2 3 4 5 6 5 4 a lt 0 sum and a gt 0 sum 给我消极和积极元素的总数 但我如何按顺序计算它们 我的意
  • 类似于eternity的C++对象持久化库

    我正在寻找一个 C 对象持久库来替换永恒图书馆 http sourceforge net projects eternity it 我已经用它制作了大约一天的原型 永恒图书馆的能力不足 我创建了一个与此类似的对象层次结构 我有一个std l
  • 从后台应用程序启动活动

    我的应用程序在后台运行 我希望当运行下面的代码时该应用程序显示在 Android 手机的顶部 启动 我知道代码肯定会运行 这似乎是一件简单的事情 但我在这个网站上花了几个小时 每个人似乎都在建议这样的事情 Intent intent new
  • Angular js ng-view 渲染事件

    我如何知道 ng view 何时完全渲染 目前我尝试使用 scope on viewContentLoaded function scope on routeChangeSuccess function angular element do
  • 时间:2019-01-09 标签:c#decimaltoString()转换与逗号(,)

    c decimal toString 转换问题 Example 我有一个十进制值 1 当我使用 toString 将十进制转换为字符串时 它返回 0 10 它返回 COMMA 而不是 DOT 我相信这与您的操作系统设置的文化 地区有关 您可
  • hive查询无法通过jdbc生成结果集

    我是 Hive 和 Hadoop 的新手 在我的教程中 我想将表创建为 import java sql SQLException import java sql Connection import java sql ResultSet im
  • 如何在java中执行复合sql查询?

    如何执行以下查询并通过准备好的语句检索结果 INSERT INTO vcVisitors sid VALUES SELECT LAST INSERT ID 有没有办法同时执行这两个语句 我尝试执行以下操作 Connection con Db
  • Google Sheets - 如何将过滤功能与过滤视图结合起来

    我一直在处理一个包含 100 多行的电子表格 并发现了一种巧妙的方法来合并 隐藏 复选框 该复选框将隐藏 C 列与框旁边指定的特定值 建筑类型 匹配的任何行 为此 我首先创建了一个如下函数 FILTER Data A1 OR Data C1
  • IE 中的表格布局错误(7)

    下面是一个带有表格布局的简单 html 代码 在 FF 中 它看起来就像我认为的那样 在 IE7 中则不然 我究竟做错了什么 我该如何解决它 table cellspacing 0 cellpadding 0 border 1 tbody
  • Android - 如何通过检查已发送的项目来确定电子邮件是否已发送

    我有一个应用程序 我使用意图发送电子邮件 如下所示 TODO attach and send here try Log i getClass getSimpleName send task start String address emai