最近做个关于短信以及WapPush短信的小东西玩,我通过代码getContentResolver().insert(Uri.parse("content://sms"), values);往数据库内插入一条短信,结果成功;但是当我把协议改为"content://mms"时,WapPush短信数据虽然插入数据库,但是机器内看不到该短信,重启也不行。经过检查,发现插入sms数据的时候,系统会自动先在threads表内插入相关数据再在sms表内插入数据,但是在mms的时候,系统没有帮我在threads表内插入数据,只在pdu表内插入数据,因此系统读不到WapPush短信。既然系统没有自动帮我插入数据,那我就自己来,但是发现没有相关协议是可以操作threads表的啊,有什么办法能让我去操作threads表吗?

解决方案 »

  1.   

    Threads.getOrCreateThreadId这个方法写入threadthread表能通过uri读 但是不能通过uri写(非暴力方法)
      

  2.   

    Threads?没找到这个类,我的SDK版本是1.5
      

  3.   


    需要源代码下编译,sdk中找不到的
      

  4.   

    而且在源代码下编译的话,这个功能岂不是只能在特定的系统下运行了?放到别的没有改过源代码的Android上还能运行不?
      

  5.   

    我想到一个思路,就是在执行getContentResolver().(uri, projection, selection, selectionArgs, sortOrder)这个函数的时候,有没有什么办法通过它的参数,让其在执行查询的时候执行一句insert语句?我想,Android的sqlite数据库没有防止注入漏洞吧,是否可反过来利用这种漏洞呢?希望有爱人士提供一些帮助。
      

  6.   

    找到threads对应的uri不就可以了吗
      

  7.   

    lz这个是写不进去,但我怎么能从threads表中读数据啊?uri是什么?