如何将所有短信标记为已读 Android?
How to mark all text messages as read on Android?
我试图在用户打开我的收件箱时将所有短信标记为已读。我从一些在线教程中拼凑了代码,最后得到了这个:
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);
}
我只想在 activity 上的 onResume() 函数中将所有短信标记为已读。我的代码可能是一堆废话,就像我说的那样,它是从几个地方混在一起的。非常感谢对我的代码进行更正或替代。用5.1的sdk编译代码,在4.4上测试,我的应用是默认的短信应用。
如果您想将所有消息标记为已读,您可以一次性完成。
ContentValues values = new ContentValues();
values.put(Telephony.Sms.READ, 1);
getContentResolver().update(Telephony.Sms.Inbox.CONTENT_URI,
values, Telephony.Sms.READ + "=0", null);
我试图在用户打开我的收件箱时将所有短信标记为已读。我从一些在线教程中拼凑了代码,最后得到了这个:
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);
}
我只想在 activity 上的 onResume() 函数中将所有短信标记为已读。我的代码可能是一堆废话,就像我说的那样,它是从几个地方混在一起的。非常感谢对我的代码进行更正或替代。用5.1的sdk编译代码,在4.4上测试,我的应用是默认的短信应用。
如果您想将所有消息标记为已读,您可以一次性完成。
ContentValues values = new ContentValues();
values.put(Telephony.Sms.READ, 1);
getContentResolver().update(Telephony.Sms.Inbox.CONTENT_URI,
values, Telephony.Sms.READ + "=0", null);