查询特定联系人的未读短信 Android

Query Unread Texts for Specific Contact Android

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


我在 Google 上搜索过这个,但不幸的是我不明白我会怎么做。



我想知道是否有可能获得特定数字的文本数量(未读),或者,为了在我这边做更多的工作,获取列表中每个 phone 数字的未读文本数量,以及然后做我自己的比较。最终的结果是,例如,我能够获取数字 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();