设为首页 加入收藏

TOP

Android四大组件之广播接收者
2014-11-24 12:23:40 来源: 作者: 【 】 浏览:0
Tags:Android 四大 组件 广播 接收者

介绍如何创建广播、如何发送一个无序广播和有序广播、以及监听短信以及监听呼出电话(当我们发短信和打电话,系统就会发一个广播,我们可以拦截此广播进行监听短信以及监听呼出电话)。


定义广播接收者


1.定义类继承BroadcastReceiver,重写onReceive方法


2.当接收到匹配广播之后就会执行onReceive方法


3.清单文件中声明,需要在其中配置指定接收广播的动作和类型


4.BroadcastReceiver除了在清单文件中声明,也可以在代码中声明,使用registerReceiver方法注册Receiver


发送广播


无序广播


1.使用sendBroadcast方法发送


2.被所有广播接收者接收,无序,不可中断


3.广播时可设置接收者权限,仅当接收者含有权限才能接收


4.接收者的也可设置发送方权限,只接收含有权限应用的广播


有序广播


1.使用sendOrderedBroadcast方法发送


3.被各个广播接收者逐个接收,中途可以中断或者添加数据


abortBroadcast() //中断广播


getResultExtras(true).putString("data", "新增数据"); //添加数据


getResultExtras(true).getString("data") //接收数据


监听短信接收


1.Android系统在收到短信的时候会发送一条有序广播,我们如果定义一个接收者接收这个广播,就可以得到短信内容,也可以拦截短信


2.定义广播接收者接收广播android.provider.Telephony.SMS_RECEIVED


3.在onReceive方法内部调用Intent的getExtras()获取其中pdus字段,得到一个Object[],其中每一个元素都是一个byte[]


4. 通过SmsMessage类的createFromPdu方法创建SmsMessage对象


5.从SmsMessage对象中即可获取发送者号码、短信内容、发送时间等信息


6.需要接收短信权限:


7.Android系统中收到短信的通知是一个有序通知,我们如需拦截垃圾短信,可以配置较高的priority,收到信息进行判断是否abortBroadcast()


示例:


清单


监听短信广播:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux设备驱动工程师之路——plat.. 下一篇Android关于Bitmap内存溢出的一点..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)