其实这个问题已经困扰我好久了,也提问过好N次了,可是一直也没得到解决~
我现在所做的软件可以用来同步短信~
可是在短信的删除时,出现了问题,(当短信是以会话形式整个删除的时候)我这边不能同步删除
我不知道该怎么改~~~so 请教大家,望知道能帮忙解答~谢谢了

解决方案 »

  1.   

    我做过BREW平台的短信,能交流一下不?
      

  2.   

    你能获得删除的 threadId不?
    系统删除之后会处理下draftcache
    其他的应该不需要额外处理了
      

  3.   

    看下这个,发现很全
    http://blog.csdn.net/kome2000/archive/2010/06/12/5666231.aspx
    主要是这个:String strUriConversations= "content://sms/conversations";//you can delete one conversation by thread_id 
      

  4.   

    不知道你的同步是什么逻辑,主动查询还是被动监听?
    threadId 这个应该能知道吧
      

  5.   


    你可以取到一条条的thread_id么?可以就好办,先按thread_id删,剩下的全部忽略。
      

  6.   

    Cursor smscur = CR.query(SMS_CONTENT_URI, sms_porjection, null, null,
    "date");
    Cursor cur = CR.query(CONTENT_URI, local_projection, "EvFlag = ?",
    new String[] { String.valueOf(3) }, "EvTime");
    if (smscur.getCount() > cur.getCount()) {
    // Add a new record to SMS.
    }
    else if (smscur.getCount() < cur.getCount()) {
                    delete a message?//如果短信是一条条的删除,这个if循环里面的内容可被执行~~~
                                      //如果按会话删除的话,执行不到这个if循环里面去~
    }
      

  7.   

    你要分开创建删除一条短信的cursor和删除会话的cursor,这两个游标来分别操作,不能用一个来做了。
    会话的cursor直接去取对应的thread_id,然后做删除。
      

  8.   


    可是会话的cursor要怎么和我的程序里面的cur相比较呢?
      

  9.   

    URI = "content://sms"里面有_id和thread_id,每条短信的_id不同,但是同一个会话里的短信的thread_id都是一样的
      

  10.   

    比如现在用户操作短信会话,删除一个会话,那你程序监控到了短信数据库有变化,肯定知道是哪个thread_id被删除了,这样你程序就直接删除对应的thread_id就行了啊