从这个问题,我可以看到如何获得未读总数:Get number of unread sms

我已经在Google上搜索了此内容,但不幸的是,我不知道该如何处理。


我想知道是否有可能获取特定号码的文本数(未读),或者,为我做更多的工作,获取列表中每个电话号码的未读文本数,然后自行制作比较。最终结果将是,例如,我能够采用数字111并查看他们有多少未读测试,或者简单地获取一个包含数字和未读文本的ArrayList或类似构造,从而循环遍历和与数字111进行比较。

最佳答案

在ContentResolver查询中使用android.provider.Telephony.TextBasedSmsColumns中的列来查找来自特定地址但未读取的SMS消息:

使用以下列竞争者:

Telephony.TextBasedSmsColumns.ADDRESS

Telephony.TextBasedSmsColumns.READ

像这样:

ContentResolver resolver = context.getContentResolver();
Cursor cursor = resolver.query(Telephony.Sms.CONTENT_URI,
                null,
                "WHERE " + Telephony.TextBasedSmsColumns.READ + " = ? and "
                + Telephony.TextBaseSmsColumns.ADDRESS + "= ?"   ,
                new String[]{"false", "+1 555 555 1212"},
                Telephony.Sms.Conversations.DEFAULT_SORT_ORDER);


int unreadCount = cursor.getCount();

09-16 04:02