2013-08-16 81 views
1

我想獲得設備帳戶中未讀電子郵件數量的int。 我已經看到,有一種新的方式來做到這一點使用「Gmail標籤公共API」獲取未讀對話gmail

http://android-developers.blogspot.in/2012/04/gmail-public-labels-api.html

我已經閱讀文檔並下載示例應用程序,它確實有效。 但我有兩個問題:(

我的目的是讓有未讀會話數的INT,我試試這個:

String unread = GmailContract.Labels.NUM_UNREAD_CONVERSATIONS.toString(); 

但不工作,總是返回"numUnreadConversations"

如何我可以得到一個int值到這個值嗎?

我的第二個問題是:代碼與我的設備的默認計數正常工作,但我想獲得所有設備Gmail帳戶的所有未讀對話的值

被真正得到任何幫助

感謝和問候

+0

如果你想獲得一個int爲什麼你要創建一個字符串變量並傳遞數字tostring? – TheHamstring

回答

1

隨着GmailContract.Labels.NUM_UNREAD_CONVERSATIONS.toString();你枚舉只是轉換爲字符串。

需要使用遊標對象,通過標籤進行迭代,然後用cursor.getInt(GmailContract.Labels.NUM_UNREAD_CONVERSATIONS)

選中此code收購數量,通過賬戶和標籤迭代。

+0

我使用此代碼作爲參考,我也使用cursor.getInt(GmailContract.Labels.NUM_UNREAD_CONVERSATIONS)但沒有成功,始終指示0.權限是正確的。這是我的代碼的鏈接。我不知道我做錯了http://ul.to/u5gplc7n – Sergio76

+0

不錯,我知道它的工作原理,唯一的問題是我沒有'CANONICAL_NAME_INBOX'中的未讀郵件。如果您設置了'labelCanonical = GmailContract.Labels.LabelCanonicalNames.CANONICAL_NAME_ALL_MAIL;',您將收到所有未讀郵件。使用logcat來查看你有什麼標籤,打印類似'Log.d(「GMAIL」,cursor.getString(LabelsQuery.CANONICAL_NAME)+「unread:」+ cursor.getInt(LabelsQuery.NUM_UNREAD_CONVERSATIONS));'in'while cursor.moveToNext())''循環。 – headsvk

+0

它的工作!謝謝:) – Sergio76