我怎样才能得到在android中未读短信的数量?
需要对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的一部分,并且此代码不能保证适用于所有过去,现在和将来的设备。
我发现最简单的方法:
Cursor c = getContentResolver().query( Uri.parse("content://sms/inbox"), new String[] { "count(_id)", }, "read = 0", null, null ); c.moveToFirst(); int unreadMessagesCount = c.getInt(0);