获取未读短信的数量

时间:2010-09-15 14:38:01

标签: android

如何在Android中获取未读短信的数量?

2 个答案:

答案 0 :(得分:40)

需要对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的一部分,并且不保证此代码适用于所有过去,现在和将来的设备。

答案 1 :(得分:1)

我发现最简单的方法:

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