将MMS标记为以编程方式读取

时间:2011-08-05 08:17:21

标签: android mms

是否有更新MMS / SMS数据库以将消息从读取标记为未读取,反之亦然?我尝试过使用URI,但它们对我不起作用。

1 个答案:

答案 0 :(得分:4)

以下代码可用于更新MMS消息是否已标记为已查看。

要将此消息用于SMS消息,只需将以下“content:// mms /”替换为“content:// sms /”。

/**
 * Mark a single SMS/MMS message as being read or not.
 * 
 * @param context - The current context of this Activity.
 * @param messageID - The Message ID that we want to alter.
 * 
 * @return boolean - Returns true if the message was updated successfully.
 */
public static boolean setMessageRead(Context context, long messageID, boolean isViewed){
    try{
        if(messageID == 0){
            return false;
        }
        ContentValues contentValues = new ContentValues();
        if(isViewed){
            contentValues.put("READ", 1);
        }else{
            contentValues.put("READ", 0);
        }
        String selection = null;
        String[] selectionArgs = null;          
        _context.getContentResolver().update(
                Uri.parse("content://mms/" + messageID), 
                contentValues, 
                selection, 
                selectionArgs);
        return true;
    }catch(Exception ex){
        return false;
    }
}

此外,您可能需要在Android清单文件中拥有一个SMS权限。

快乐编码:)