自己写一个收发短信的程序可以,但是要屏蔽掉系统自带的短信程序估计很难,除非自己改系统,做个rom

解决方案 »

  1.   

    有没有方法能访问SMS的数据库,并对其中记录进行修改啊?
      

  2.   

    1.系统进程的加载方式可能不同于普通进程,可能不能随便替换。
    2.每个程序都有数字签名的,你程序的签名不同于OPhone自己的签名,就是替换了权限也不足。
      

  3.   

    那不替换了。要想实现短信过滤怎么办呢?自己的过滤程序应该在系统SMS程序之前对短信进行处理吧,有什么方法做到吗?
      

  4.   

    我知道在WM当中可以换成自己的COM组件。ANDROID不知道。
      

  5.   

    hanhannina
    告诉你一个解决方法,你可以先拦截到短信,并把短信的和Notification信息到数据库删除掉就可以了!
      

  6.   

    请问zjq545,怎么能在系统SMS应用前对短信进行拦截啊?
      

  7.   

    我也在琢磨这方面的问题。但是没有一个很清晰的解决方案。
    在系统sms应用之前拦截短信很容易,监听系统广播就可以了,貌似系统sms接受广播的优先级最低,所以会之前拦截到短信。
    但是如何屏蔽掉系统sms的声音和Notification就没有解决方法了,至少我还没找到。有人说根据Notification的id删除之,但是声音怎么办?而且这样做可能不会很完美。
    我在想,是不是有什么办法拦截系统广播。就是  我的程序接受到广播后就销毁掉广播。解决方法肯定有,也有人弄出来过,重要是看有没有分享精神和是否论坛中有人知道解决方法。
      

  8.   

    我这两天又看到一个新方法,好像是去监听更改SMS数据库的广播,而不是监听收到短信的广播,这样就可以提前对SMS数据库进行删除等操作,比如说把刚到来的短信删除了,那么系统就不会对这条新短信进行响应了。
    但是还不太清楚什么原理,一起探讨吧。
      

  9.   

    提前删除sms数据库应该是正解了.不过还真不知道sms数据库也有广播,看下去
      

  10.   

    好像用得是ContentObserver,再研究下去
      

  11.   

    在牛人的提示下,知道是用ContentObserver这个了.
    用ContentObserver监听短信数据库的变化然后删除之.效果还不错.
      

  12.   

    请问怎么能删除新来的短信啊?我对Android的SMS存储不太清楚。
      

  13.   

    移动的垃圾OPHONE源代码拿来重新编译下,重新刷机
      

  14.   

    呵呵,学了不少,用到的就是ContentObserver来监听数据库的变化,然后在数据库中删除需要删除的短信,就可以了,下面是一篇很好的文章,介绍了这个方法:
    http://lyp2002924.javaeye.com/blog/491718
    另外下面的链接中介绍了Android SMS的短消息格式和主要字段:
    http://akira82.javaeye.com/blog/417818最后非常感谢大家!
    结贴去了。呵呵