原创:kylin_zeng http://blog.chinaunix.net/uid/23795897.html
再此感谢mars 老师的帮助。
1、BroadcastReceiver 用于监听被广播的事件,这个必须注册到系统中,有两种方式:
1)在AndroidManifest.xml 中注册,这种方法只要运行一次,那么即使关闭了程序也同样能监测到。这种方法在上一节就说过了。
2)在应用程序的代码中注册。
注册BroadcastReceiver -> registerReceiver(receiver,filter);
取消注册BroadcastReceiver -> unregisterReceiver(receiver,filter);
一般在activity启动时注册,不可见时取消注册。
总结:======>系统产生了一个广播,那么怎么接收到呢:
先注册到系统中,用registerReceiver
smsReceiver = new SMSReceiver();
IntentFilter filter = new IntentFilter(); //生成一个IntentFilter对象
filter.addAction("android.provider.Telephony.SMS_RECEIVED"); //为IntentFilter添加一个Action
TestBC2Activity.this.registerReceiver(smsReceiver, filter);//将BroadcastReceiver对象注册到系统当中。
-->系统一旦有消息肯定是通过intent方式的,那么就建立一个IntentFilter filter,里面添加消息过滤,只得到你想要的事件,如android.provider.Telephony.SMS_RECEIVED,那么收到了肯定要通知是吧,就是用
smsReceiver = new SMSReceiver();类,通知这个类接收啦。
接收类:
public class SMSReceiver extends BroadcastReceiver{ //要继承BroadcastReceiver
public void onReceive(Context context, Intent intent) {
...接收到了实现你要的功能。
}
}
测试,点击注册就注册到系统中了。然后用DDMS 里面有个发短信功能。就可以截取到了,
TestBC2.rar
阅读(605) | 评论(0) | 转发(0) |