Подтвердить что ты не робот

Получить количество непрочитанных смс

Как я могу получить количество непрочитанных смс в android?

4b9b3361

Ответ 1

Необходимо выполнить простой запрос к SMS ContentProvider. Вот рабочий пример:

final Uri SMS_INBOX = Uri.parse("content://sms/inbox");

Cursor c = getContentResolver().query(SMS_INBOX, null, "read = 0", null, null);
int unreadMessagesCount = c.getCount();
c.deactivate();

Вам также потребуется разрешение READ_SMS:

<uses-permission android:name="android.permission.READ_SMS" />

Имейте в виду, что поставщик контента SMS фактически не является частью SDK, и этот код не гарантированно работает на всех прошлых, настоящих и будущих устройствах.

Ответ 2

Самый простой способ узнать:

Cursor c = getContentResolver().query(
    Uri.parse("content://sms/inbox"),
    new String[] {
        "count(_id)",
    },
    "read = 0",
    null,
    null
);
c.moveToFirst();
int unreadMessagesCount = c.getInt(0);