如何在Android中获取未读短信的数量?
答案 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);