【问题标题】:How to mark all text messages as read on Android?如何在Android上将所有短信标记为已读?
【发布时间】:2015-11-12 17:52:22
【问题描述】:

当用户打开我的收件箱时,我正在尝试将所有短信标记为已读。我将一些在线教程中的代码拼凑在一起,最终得到了这个:

 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() 函数中将所有短信标记为已读。我的代码可能是一堆废话,就像我说它是从几个地方捣碎在一起的。对我的代码的更正或替代将不胜感激。用5.1的sdk编译代码,在4.4上测试,我的应用是默认的短信应用。

【问题讨论】:

    标签: java android sms inbox


    【解决方案1】:

    如果您想将所有邮件标记为已读,您可以一次性完成。

    ContentValues values = new ContentValues();
    values.put(Telephony.Sms.READ, 1);
    getContentResolver().update(Telephony.Sms.Inbox.CONTENT_URI, 
        values, Telephony.Sms.READ + "=0", null);
    

    【讨论】:

    • @DoğanKılıç 作为默认应用程序与更新消息阅读状态的查询有什么关系?这是从 KK 及以后进行所有数据库修改的先决条件,而不是针对此查询。
    猜你喜欢
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2019-10-18
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多