在Android上将短信标记为已读不起作用

在Android上将短信标记为已读不起作用,android,sms,Android,Sms,我试图在三星Galaxy S6上将消息标记为已读,但它不起作用。我有以下在线教程。我的代码如下: Uri uri = Uri.parse("content://sms/inbox"); Cursor cursor = context.getContentResolver().query(uri, null, "_id=" + id, null, null); try { if (cursor.getCount() != 0) { ContentValues values

我试图在三星Galaxy S6上将消息标记为已读,但它不起作用。我有以下在线教程。我的代码如下:

Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = context.getContentResolver().query(uri, null, "_id=" + id, null, null);
try {
    if (cursor.getCount() != 0) {
        ContentValues values = new ContentValues();
        values.put("read", true);
        context.getContentResolver().update(uri, values, "_id=?", new String[] { id });
    }
} catch (Exception e) {
    Log.e("Mark Read", "Error in Read: " + e.toString());
} finally {
    cursor.close();
}

我做错什么了吗?我将
id
传递给此方法,消息始终标记为未读。为什么其他SMS应用程序可以标记为已读而我不能?

如果您不是默认的SMS客户端,则无法将SMS消息标记为已读。瘸子

如果您不是默认的SMS客户端,则无法将SMS消息标记为已读。瘸子

您确定
id
正确吗?如果
getCount()
返回0,则不会更新任何内容。您确定
id
正确吗?如果
getCount()
返回0,则不会更新任何内容。如果要否决投票,请至少解释一下原因?这是一个合理的问题,因为很多人不知道只有默认应用程序才能修改内容。如果你要否决投票,至少解释一下为什么?这是一个有效的问题,因为许多人不知道只有默认应用程序才能修改内容。