获取未读短信的数量

Tia*_*sta 17 android

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

Ser*_*tov 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();
Run Code Online (Sandbox Code Playgroud)

您还需要READ_SMS权限:

<uses-permission android:name="android.permission.READ_SMS" />
Run Code Online (Sandbox Code Playgroud)

请记住,SMS内容提供商实际上并不是SDK的一部分,并且不保证此代码适用于所有过去,现在和将来的设备.

  • 注意:这需要READ_SMS权限! (6认同)
  • 必须从现有上下文中调用getContentResolver().对于将来到这里寻求答案的人来说,正确的语法是`Cursor c = context.getContentResolver()` (6认同)