Android 广播机制---BroadCast
在android下,要想接受广播信息,那么这个广播接收器就得我们自己来实现了,我们可以继承BroadcastReceiver,就可以有一个广播接受器了。有个接受器还不够,我们还得重写BroadcastReceiver里面的onReceiver方法,当来广播的时候我们要干什么,这就要我们自己来实现,不过我们可以搞一个信息防火墙。具体的代码:
public class SmsBroadCastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Object[] object = (Object[])bundle.get("pdus"); SmsMessage sms[]=new SmsMessage[object.length]; for(int i=0;i<object.length;i++) { sms[0] = SmsMessage.createFromPdu((byte[])object[i]); Toast.makeText(context, "来自"+sms[i].getDisplayOriginatingAddress()+" 的消息是:"+sms[i].getDisplayMessageBody(), Toast.LENGTH_SHORT).show(); } //终止广播,在这里我们可以稍微处理,根据用户输入的号码可以实现短信防火墙。 abortBroadcast(); } }
当实现了广播接收器,还要设置广播接收器接收广播信息的类型,这里是信息:android.provider.Telephony.SMS_RECEIVED
我们就可以把广播接收器注册到系统里面,可以让系统知道我们有个广播接收器。这里有两种,一种是代码动态注册:
//生成广播处理 smsBroadCastReceiver = new SmsBroadCastReceiver(); //实例化过滤器并设置要过滤的广播 IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); //注册广播 BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver, intentFilter);
一种是在AndroidManifest.xml中配置广播
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="spl.broadCastReceiver" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".BroadCastReceiverActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!--广播注册--> <receiver android:name=".SmsBroadCastReceiver"> <intent-filter android:priority="20"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver> </application> <uses-sdk android:minSdkVersion="7" /> <!-- 权限申请 --> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> </manifest>
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
转载于:https://www.cnblogs.com/622698abc/archive/2013/03/12/2956493.html
Android 广播机制---BroadCast相关推荐
- Android广播机制:Broadcast
转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...
- Android广播(Broadcast)
Android广播(Broadcast) 一.Broadcast简介 Broadcast是android中的四大组件之一,是在组件之间传播数据(Intent)的一种机制.广播的发送者和接收者事先是不需 ...
- Android怎么保证广播安全,Android 广播机制安全性研究.PDF
Android 广播机制安全性研究 电信 科 学 2016 年第 10 期 专题 :基 于 Android 系统 的终端安全 Android 广播机制安全性研究 卿 斯汉 1, 2, 3 (1. 中国 ...
- Android 广播机制详解
一.广播的简介 首先,当我们一听到广播这个词时.就可以想到小学是教室的广播.不错Android中的广播机制与我们生活中的广播是有异曲同工之妙的.Android中的发送广播也就像广播室播广播,可以让很多 ...
- android 广播观察者,作业三——观察者模式在Android广播机制上的应用
观察者模式在Android广播机制上的应用 点击跳转项目git地址:https://github.com/Arfer-ustc/practice-Android.git 一.观察者模式在Android ...
- 【Python学习记录】Numpy广播机制(broadcast)
✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...
- 图解 Android 广播机制
从现实生活中理解广播机制 一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的.收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同. ...
- android+广播+讲解,Android广播机制
主要内容: (1)广播机制介绍 (2)BroadcastReceiver实现 (3)BroadcastReceiver操作 (4)BroadcastReceiver生命周期 (5)注册Broadcas ...
- Android详细教程(基础篇):二十八、Android 广播机制BroadcastReceiver
广播机制(BroadcastReceiver) 11.1. BroadcastReceiver简介 在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向.而这种等 ...
最新文章
- 正则表达式。部分实例及说明(摘)
- PHPStorm的命令行配置成为Git bash的
- javascript中构造StringBuffer实例
- Leetcode刷题、常用算法汇总(Java版本)
- linux进入终端tty3,Linux中终端界面与图形界面之间的切换关系
- QAV250四轴穿越机安装全程详解(多图)
- Vue 接入firebase验证、Google登陆、Facebook登陆完整流程
- .lnk文件格式解析
- C程序设计(谭浩强)的几处错误
- arduino使用oled代码_【教程】在ESP32上使用E32433T LoRa模块
- BLE协议栈 – L2CAP
- 深度学习实现安全帽佩戴的检测
- 《Python程序设计》python常用的格式转换
- python人民币金额转汉字大写
- 数据字典模板_C++ 模板元编程:一种屠龙之技
- vivo便签批量导出为excel/记事本/word
- 银联云计算平台 金融科技创新典范
- 基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现
- [JavaScript]_[初级]_[关于forof或者for...of循环语句的用法]
- vue项目中打印数据或表格(使用第三方依赖print-js)
热门文章
- 漫漫运维路——基于CentOS6平台软件包管理2
- 2012-08-17
- Elasticearch 查询详解 (二)
- python简历数据提取_如何使用pyPDF2从PDF格式的多页简历中提取文本数据?
- 桩身弹性压缩计算公式_基于非线性应力应变关系的桩身压缩量计算
- adobe premiere elements 2019中文版
- .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)...
- matlab从工作区读取一维数组和结构体
- IDEA实现到JSTL
- 温故而知新-面向对象的PHP