当我打开收件箱时,我正在尝试将所有短信标记为已读。我已经将一些教程中的代码拼凑在一起,最后得到了这个:
Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
while (cursor.moveToNext()) {
if ((cursor.getInt(cursor.getColumnIndex("read")) == 0)) {
String SmsMessageId = cursor.getString(cursor.getColumnIndex("_id"));
ContentValues values = new ContentValues();
values.put("read", true);
getContentResolver().update(Uri.parse("content://sms/inbox"), values, "read=0", null);
}
我只想在此活动的onResume()函数中将所有文本消息标记为已读。我的代码可能是一堆废话,就像我说它从几个地方捣碎在一起。我的代码的更正或替代将非常感激。使用sdk for 5.1编译代码,在4.4上测试,我的应用程序是默认的SMS应用程序。
答案 0 :(得分:-1)
如果您想将所有邮件标记为已读,则可以一次性完成。
ContentValues values = new ContentValues();
values.put(Telephony.Sms.READ, 1);
getContentResolver().update(Telephony.Sms.Inbox.CONTENT_URI,
values, Telephony.Sms.READ + "=0", null);