Chinaunix首页 | 论坛 | 博客

Go

  • 博客访问: 226473
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 783
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 16:29
文章分类

全部博文(67)

文章存档

2015年(1)

2014年(47)

2013年(19)

我的朋友

分类: Android平台

2014-08-21 15:32:18

原创: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
        
  
   
阅读(599) | 评论(0) | 转发(0) |
0

上一篇:android 广播机制一

下一篇:kernel oops

给主人留下些什么吧!~~