我想使用以下内容更新短信会话线程的“message_count”列和“snippet”列:“content:// mms-sms / conversations”。因为从会话线程中删除SMS时不会更新代码段和消息计数。 但我收到此错误消息:“MmsSmsProvider不支持此URI的删除,插入或更新” 以下是我的代码:
ContentValues values = new ContentValues();
values.put("message_count", ent.getValue().getCount());
values.put("snippet", ent.getValue().getSnip());
Uri conUri = Uri.parse("content://mms-sms/conversations");
getContentResolver().update(conUri, values, null, null);
我也尝试这样:
Uri conUri = Uri.parse("content://mms-sms/conversations" + "/" + threadid);
getContentResolver().update(conUri, values, null, null);
但我得到的是另一条错误消息:没有这样的列:message_count :,编译时:UPDATE pdu SET message_count = ?, snippet =? WHERE thread_id = 334
感谢您的帮助
答案 0 :(得分:4)
无法直接更新线程的count,snippet等。但我可以帮助你解决实际问题。 android代码中确实存在一个错误,它是您问题的根源。当您尝试以下列方式删除时 -
getContentResolver().delete("content://sms/", "_id=?", new String[] {id});
Android不会更新与该短信相关联的线程。
解决方案就是这样做
getContentResolver().delete("content://sms/" + id, null, null);
对于那些好奇的人来说,错误是什么 - 当您使用方法1 -
删除时,Android代码会像这样做一些愚蠢的事情希望这有帮助。