在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相关推荐

  1. Android广播机制:Broadcast

    转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...

  2. Android广播(Broadcast)

    Android广播(Broadcast) 一.Broadcast简介 Broadcast是android中的四大组件之一,是在组件之间传播数据(Intent)的一种机制.广播的发送者和接收者事先是不需 ...

  3. Android怎么保证广播安全,Android 广播机制安全性研究.PDF

    Android 广播机制安全性研究 电信 科 学 2016 年第 10 期 专题 :基 于 Android 系统 的终端安全 Android 广播机制安全性研究 卿 斯汉 1, 2, 3 (1. 中国 ...

  4. Android 广播机制详解

    一.广播的简介 首先,当我们一听到广播这个词时.就可以想到小学是教室的广播.不错Android中的广播机制与我们生活中的广播是有异曲同工之妙的.Android中的发送广播也就像广播室播广播,可以让很多 ...

  5. android 广播观察者,作业三——观察者模式在Android广播机制上的应用

    观察者模式在Android广播机制上的应用 点击跳转项目git地址:https://github.com/Arfer-ustc/practice-Android.git 一.观察者模式在Android ...

  6. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

  7. 图解 Android 广播机制

    从现实生活中理解广播机制 一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的.收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同. ...

  8. android+广播+讲解,Android广播机制

    主要内容: (1)广播机制介绍 (2)BroadcastReceiver实现 (3)BroadcastReceiver操作 (4)BroadcastReceiver生命周期 (5)注册Broadcas ...

  9. Android详细教程(基础篇):二十八、Android 广播机制BroadcastReceiver

    广播机制(BroadcastReceiver) 11.1. BroadcastReceiver简介 在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向.而这种等 ...

最新文章

  1. 正则表达式。部分实例及说明(摘)
  2. PHPStorm的命令行配置成为Git bash的
  3. javascript中构造StringBuffer实例
  4. Leetcode刷题、常用算法汇总(Java版本)
  5. linux进入终端tty3,Linux中终端界面与图形界面之间的切换关系
  6. QAV250四轴穿越机安装全程详解(多图)
  7. Vue 接入firebase验证、Google登陆、Facebook登陆完整流程
  8. .lnk文件格式解析
  9. C程序设计(谭浩强)的几处错误
  10. arduino使用oled代码_【教程】在ESP32上使用E32433T LoRa模块
  11. BLE协议栈 – L2CAP
  12. 深度学习实现安全帽佩戴的检测
  13. 《Python程序设计》python常用的格式转换
  14. python人民币金额转汉字大写
  15. 数据字典模板_C++ 模板元编程:一种屠龙之技
  16. vivo便签批量导出为excel/记事本/word
  17. 银联云计算平台 金融科技创新典范
  18. 基于fpga的fir滤波器设计,通过matlab代码设计滤波器参数,最终通过fpga实现
  19. [JavaScript]_[初级]_[关于forof或者for...of循环语句的用法]
  20. vue项目中打印数据或表格(使用第三方依赖print-js)

热门文章

  1. 漫漫运维路——基于CentOS6平台软件包管理2
  2. 2012-08-17
  3. Elasticearch 查询详解 (二)
  4. python简历数据提取_如何使用pyPDF2从PDF格式的多页简历中提取文本数据?
  5. 桩身弹性压缩计算公式_基于非线性应力应变关系的桩身压缩量计算
  6. adobe premiere elements 2019中文版
  7. .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)...
  8. matlab从工作区读取一维数组和结构体
  9. IDEA实现到JSTL
  10. 温故而知新-面向对象的PHP