首页 新闻 会员 周边 捐助

开机启动注册ContentObserver失败

0
悬赏园豆:80 [已关闭问题] 关闭于 2012-08-02 09:24

开机后,注册ContentObserver,通过ContentObserver监听短信。

我现在的问题是,开机后ContentObserver没反应,onchange没响应。

代码如下:

开机广播注册

<receiver android:name="lt.smarthome.service.BootReceiver" android:permission="android.permission.BROADCAST_SMS">
            <intent-filter android:priority="2147483647">
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>         
        </receiver>

--------------------------------------------------------------------------------------------

.BootReceiver开机响应后,里面的ContentObserver注册代码:

Log.d("mdbs", "-------------------开机拦截-------");

SMSObserver smsObserver=new SMSObserver(handler,context);
     context.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, smsObserver);

------------------------------------------------------------------------------------------------

SMSObserver函数:

public class SMSObserver extends ContentObserver{

public SMSObserver(Handler handler,Context context) {
        super(handler);
        this.context=context;
        Log.d("mdbs", "----------SMSObserver--- 初始化");
    }

public void onChange(boolean selfChange) {
        // TODO Auto-generated method stub
        super.onChange(selfChange);
        Log.d("mdbs", "----------onChange--- 进入");

}

}

问题是,只打印到----------SMSObserver--- 初始化,我发送短信,onChange没有进入,没有打印----------onChange--- 进入,各位,请问是什么原因啊。

当我用其他方式注册ContentObserver,onchange有响应

452615625的主页 452615625 | 初学一级 | 园豆:80
提问于:2012-08-01 17:06
< >
分享
所有回答(1)
0

自己解决了,是因为我开机启动的服务被关闭了,后来在程序运行是又重启一次服务就问题了,当然开机的时候如果已经启动,不会第二次开启服务,大家都懂的。奇怪的是,后来我开机启动服务又正常了,所以我上面的代码都是正确的,监听短信数据库,从而达到截获短信的目的。当然大家有什么见解请踊跃发言

452615625 | 园豆:80 (初学一级) | 2012-08-02 09:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册