Я пытался получить количество непрочитанных писем Gmail без удачи.
Я считал Gmail.java и gmail4j обе ссылки, вынутые из этого сайта от этого вопроса: Android - Как я могу узнать, сколько имеет непрочитанная электронная почта пользователь?
Но все еще считав все это и несколько других сайтов, которые говорили об этом конкретном предмете, которым остается мой вопрос:
Q: Как я могу получить Gmail Непрочитанное количество?
Извините, если это немного настойчивые швы, но я ясно испытываю недостаток в знании для обнаружения этого самостоятельно из источника.
PS: Я хотел бы разъяснить, что я хочу сделать это, не имея необходимость просить у пользователя учетные данные.
Всего 2 добавляют, что некоторые цвета к вопросу позволяют мне показать Вам взгляды своего приложения.
Вот фрагмент кода. Не уверен, что это работает, и не могу это проверить. Но я надеюсь, что это поможет вам продолжить расследование.
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());
}
}
Требуется разрешение
<uses-permission android:name="com.google.android.gm.permission.READ_GMAIL"/>
Вот как я видел это в простом виджете для оконного менеджера awesome (да, это его имя :)). Оригинальный скрипт находится здесь: gmail.lua .
Основная идея состоит в том, чтобы просто использовать канал входящей почты и получать все письма (вы будете получать только сводки, а не весь контент) для специального тега «непрочитанные». URL-адрес https://mail.google.com/mail/feed/atom/unread
, вам просто нужно получить его (конечно, после аутентификации), а затем проанализировать его.Вы можете использовать какой-нибудь синтаксический анализатор XML или просто регулярное выражение (
) - число, которое вы ищете, находится в начале, в
тег.
Итак, это один из способов сделать это, довольно простой и «тупой», но эй, он работает: D Это может быть не лучшее решение, так как оно требует, чтобы вы загрузили весь канал (в зависимости от количества ваших непрочитанные сообщения и тип / качество соединения, это может быть не так быстро, как , просто получение количества непрочитанных сообщений), но, как обычно, тестирование в реальной жизни должно прояснить это :)
Возможно, вы можете использовать Gmail ContentProvider, см. http: // www .google.com / codesearch / p? hl = ru # uX1GffpyOZk / core / java / android / provider / Gmail.java & q = Gmail.java & sa = N & cd = 1 & ct = rc
Существует метод getNumUnreadConversations или вы можете использовать Observer .