Как я могу получить количество непрочитанных смс в android?
Получить количество непрочитанных смс
Ответ 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);