如何获取未读的Gmail邮件数量(在android上)

Lor*_*ori 8 gmail android count

请注意,有一种新方法可以做到这一点

我一直试图获取未读的Gmail邮件数量而没有运气.

我已经从这个问题中读取了Gmail.javagmail4j从这个网站中取出的两个链接:Android - 如何找出用户有多少未读电子邮件?

但在阅读了所有这些以及其他几个谈论这个特定主题的网站之后,我的问题仍然存在:

:如何获取Gmail未读数?

对不起,如果它有点坚持,但我显然缺乏从源头上找到我自己的知识.

PS:我想澄清我想要这样做,而不必询问用户的凭据.

只需2为问题添加一些颜色让我告诉你我的应用程序的外观.

alt text http://img716.imageshack.us/img716/8818/lookr.png

请注意,有一种新方法可以做到这一点

Fed*_*dor 22

这是一些代码片段.不确定它是否有效且无法测试.但我希望它能帮助你继续调查.

public static final class LabelColumns {
    public static final String CANONICAL_NAME = "canonicalName";
    public static final String NAME = "name";
    public static final String NUM_CONVERSATIONS = "numConversations";
    public static final String NUM_UNREAD_CONVERSATIONS = "numUnreadConversations";
}

public void queryLabels(){
    String account="email@company.com";
    Uri LABELS_URI = Uri.parse("content://gmail-ls/labels/");
    Uri ACCOUNT_URI = Uri.withAppendedPath(LABELS_URI, account);
    ContentResolver contentResolver=myActivity.getContentResolver();
    Cursor cursor = contentResolver.query(ACCOUNT_URI, null, null, null, null);

    //iterate over all labels in the account
    if (cursor.moveToFirst()) {
        int unreadColumn = cursor.getColumnIndex(LabelColumns.NUM_UNREAD_CONVERSATIONS);
        int nameColumn = cursor.getColumnIndex(LabelColumns.NAME);
        do {
            String name = cursor.getString(nameColumn);
            String unread = cursor.getString(unreadColumn);//here's the value you need
        } while (cursor.moveToNext());
    }
}
Run Code Online (Sandbox Code Playgroud)

需要许可

<uses-permission android:name="com.google.android.gm.permission.READ_GMAIL"/>
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于Android 2.2或更早版本,不适用于较新版本. (5认同)

Igo*_*mer 5

这就是我在一个简单的小部件中看到它为真棒窗口管理器所做的事情(是的,这就是它的名字:)).原始脚本在这里:gmail.lua.

基本概念是只使用收件箱Feed并获取特殊"未读"标签的所有邮件(您只会获得摘要,而不是整个内容).URL是https://mail.google.com/mail/feed/atom/unread,您只需要获取它(当然是在身份验证之后),然后解析它.您可以使用某种XML解析器,也可以只使用简单的regexp(<fullcount>([%d]+)</fullcount>) - 您要查找的数字位于<fullcount>标记的开头.

所以,这是做到这一点的一种方式,非常简单和"愚蠢",但是嘿,它有效:D它可能不是最好的解决方案,因为它需要你获取整个提要(取决于你的未读消息的数量和类型/连接的质量,它可能不是一样快,只是获取的未读邮件的数量),但像往常一样,现实生活中的测试应该清除了:)