【问题标题】:Delete Gmail emails programmatically以编程方式删除 Gmail 电子邮件
【发布时间】:2012-03-20 13:51:53
【问题描述】:

我正在开发一个应用程序,我在自己的应用程序中访问 Gmail 电子邮件,但我无法通过它们的 ID 删除这些电子邮件。我该怎么做?

delete.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        try {
            Uri uri = Uri.parse((new StringBuilder()).append(
                "content://gmail-ls/messages/").append(account_name).append("/").append(mail_id).toString());
            getContentResolver().delete(uri, null, null);
            Toast.makeText(cont, "Deleted", Toast.LENGTH_SHORT).show();

            // getContentResolver().delete(
            // Uri.parse("content://gmail-ls/conversations/"
            // + account_name + "/" + mail_id + ""), null,
            // null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

});

【问题讨论】:

  • 问题是,我可以在我的应用程序中以编程方式访问 gmail,但我无法使用上面给出的代码删除它们。此代码取自 gmail.java 的删除方法。请给我一个能够在我们自己的应用程序中删除 gmail 的解决方案。

标签: android email gmail


【解决方案1】:

除了您的问题似乎是什么(您没有指定它,但听起来您可以阅读邮件?),您不能真正依赖此功能。

最后一个适用的版本是 2.3.4.1 见:http://groups.google.com/a/googleproductforums.com/forum/#!category-topic/gmail/reading-and-receiving-messages/XD0C4sw9K7U

在不久的将来,我们将做出改变,这可能会影响 你的应用程序。从历史上看,Gmail 应用程序暴露了一个未记录的 受非公共权限值保护的内容提供者, 允许用户授予权限的应用阅读用户的电子邮件和 还执行实时查询。我们已经确定,作为我们的一部分 不断努力提高 Gmail 的安全级别,这 API 不符合现代安全标准。因此,我们将 在运行的 Android 设备上的 Gmail 的下一次更新中禁用它 Froyo 和更高版本。

其次,我认为这种方法不仅仅是read 许可。

【讨论】:

  • 是和不是。您需要进行 OAuth 舞蹈,然后使用 IMAP(您也需要打开它)或 POP 访问收件箱。不是很容易,但可行
  • 旁注:对于阅读,有更容易实现的 gmail atom 提要(您不需要任何 imap/pop 邮件代码),但这只是未读邮件的提要,不是很有用的删除
  • 我在我的应用程序中使用了内容 uri,这比 atom feed 更有用,因为我正在读取所有邮件,未读邮件,我可以通过应用约束对它们进行排序。但没有可删除的工具,甚至在gmail atom 提要。
  • 就像我说的,内容 uri 是一个未记录的“功能”,已被删除,因此您的应用只能在 2.2 之前运行。我理解你为什么使用它,但这并不重要。而且提要显然没有任何删除功能……它是提要。您唯一的选择是 IMAP。不是一个有趣的答案,而是事实......
猜你喜欢
  • 2010-09-25
  • 2010-11-22
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
相关资源
最近更新 更多