最近在练习一个关于短信监听的小例子,遇到 如题 问题:
在android 2.2 以前的版本中,当有短信进入时,均可用以下代码实现 sms 数据库变动监听,并且在DBObserver方法中,改变read字段为1,让手机不显示通知信息。
        Uri myUri = Uri.parse("content://sms");
        ContentResolver contentResolver = SmsServices.this.getContentResolver();
        contentResolver.registerContentObserver(myUri, true, new DBObserver(new Handler()));
但是 在android 2.2中 则无法正确实现数据库监听,系统依然发出通知,并且在手动点击清除通知后,才会监听到数据库的变动,这是为什么?哪里没做对?

解决方案 »

  1.   

    你这是在监听数据库,试试直接监听短信操作的广播消息,而不是你这样监听数据库,你这样很可能是通知发送时并没有真正的删除数据库,只是发个消息通知而已,当你点击了才是真正删除。
    http://iame.iteye.com/blog/375441
      

  2.   

      dinjay 谢谢你的回答,用广播接收器是可以实现功能,我也实现过,现在是想研究下这个 监听者。
    而且在2.2上 也监听不到 自己创建的 contentprovider。
      

  3.   

       主要就是想探究下  同样的 代码,在2.2以前的版本上 没问题,再2.2上出现了偏差,没弄明白 2.2上改动了些啥,查了下API 也没发现。不知是不是我太粗心了才没发现。