首先声明一个类,此类继承自BroadcastReceiver类,处理Android当中发出的广播事件:  

    public class SMSReceiver extends BroadcastReceiver{

      @Override
      public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.d("MyDebug", "SendMessage");       

        //接收Intent对象当中的数据,获得发送短信的内容
        Bundle bundle = intent.getExtras();
        //在Bundle对象当中有一个属性名为pdus,这个属性的值是一个Object数组
        Object[] myOBJpdus = (Object[])bundle.get("pdus");
        //创建一个SmsMessage类型的数组
        SmsMessage[] messages = new SmsMessage[myOBJpdus.length];
        for(int i =0;i<myOBJpdus.length;i++){
        //使用Object数组当中的对象创建SmsMessage对象
        messages[i] = SmsMessage.createFromPdu((byte[])myOBJpdus[i]);
        Log.d("MyDebug", messages[i].getDisplayMessageBody());
      }

    }

  在AndroidManifest.xml文件中静态定义SMSReceiver类接收Android的接收到短信广播事件:

    <receiver android:name=".SMSReceiver">
      <intent-filter >
        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
      </intent-filter>
    </receiver>

  要想触发短信接收广播事件,应在AndroidManifest.xml中首先声明响应的权限:

    <uses-permission android:name="android.permission.RECEIVE_SMS"/>

  在代码中定义接收到短信广播事件处理:

    private static final String SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED";

    SMSReceiver smsReceiver = new SMSReceiver(); //生成一个BroadCastReceiver对象
    //生成一个IntentFilter对象
    IntentFilter filter = new IntentFilter();
    filter.addAction(SMS_ACTION);
    OtherActivity.this.registerReceiver(smsReceiver, filter);

  在代码中解除对事件的接收到短信广播的绑定:

    OtherActivity.this.unregisterReceiver(smsReceiver);

BroadcastReceiver注册、使用及其权限的更多相关文章

  1. Android BroadcastReceiver 注册和反注册

    说起来这个问题很简单,只要注册和反注册成对出现就行,好像很多教材都是如此介绍.但实际开发中,对广播注册和反注册的时机把握还是很重要的. 关于广BroadcastReceiver注册和反注册时机,主要有 ...

  2. 【Spring Cloud笔记】Eureka注册中心增加权限认证

    在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...

  3. Eureka注册中心增加权限认证

    在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...

  4. win7系统注册表的权限修改

    重装win7系统后,安装软件时提示注册表项拒绝访问 解决方法: 输入“Gpedit.msc”后回车,打开“组策略”.然后,依次展开“用户配置→管理模板→系统”,双击右侧窗口中的“阻止访问注册表编辑工具 ...

  5. 通过 rundll32 创建设置注册表项权限

    [Version]SIGNATURE="$Windows NT$" [DefaultInstall]AddReg=test.reg [test.reg]HKLM,"SOF ...

  6. [2017-08-21]Abp系列——如何使用Abp插件机制(注册权限、菜单、路由)

    本系列目录:Abp介绍和经验分享-目录 Abp的模块系统支持插件机制,可以在指定目录中放置模块程序集,然后应用程序启动时会搜索该目录,加载其中所有程序集中的模块. 如何使用这套机制进行功能插件化开发? ...

  7. BroadcastReceiver的使用,动态注册和注销,优先级和中断控制

    BroadcastReceiver: BroadcastReceiver(广播接收器)是Android中的四大组件之一,用来通知某些事件的相关信息,如下载完成,设置改变等. 默认的BroadcastR ...

  8. Windows删除/修改注册表权限不足的解决方法

    在注册表的某些关键项(譬如:System.Root),连Administrator都没有权限进行修改,因为只有“system”有权限. [警告]切勿企图进行注册表上层权限覆盖低层权限的方式来使Admi ...

  9. Django——13 Auth系统 登陆注册实例 权限的实现

    Django Auth系统中的表 注册登陆实例 权限的实现 登陆权限 操作权限 组操作  Auth系统中的表 从表的名称我们就能看出,auth_user,auth_group,auth_permiss ...

随机推荐

  1. 控制TextField的内容长度

    参考如下代码(下例是控制设置交易密码,控制6位): - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [ ...

  2. ie8 jquery parents() 获取多个的问题

    今天开发的时候碰到了一个奇怪的问题 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3 ...

  3. 导向矢量(Steering Vector)

    导向矢量是阵列天线的所有阵元对具有单位能量窄带信源的响应. 由于阵列响应在不同方向上是不同的,导向矢量与信源的方向是相互关联的,这种关联的独特性依赖于阵列的几何结构.对于同一阵元阵列,导向矢量的每一个 ...

  4. 介绍.NET 开发必备工具 .NET Portability Analyzer

    随着.NET的原来越开放,不仅仅是开源这么简单了,也意味着.NET程序员要关注越来越多的平台,涵盖.NET Mic Framework, Xamarin,Mono,.NET等等,从windows到li ...

  5. 架构之路(七)MVC点滴

    我们目前正在开发中的是任务管理系统,一个前端复杂的项目,所以我们先从MVC讲起吧. WebForm 随着ASP.NET MVC的兴起,WebForm已成昨日黄花,但我其实还很想为WebForm说几句. ...

  6. Net作业调度(二) -CrystalQuartz远程管理

    Source Code-1.6M 介绍 上篇已经了解Quartz.NET的基本使用方法了.但如果想方便的知道某个作业执行情况,需要暂停,启动等操作行为,这时候就需要个Job管理的界面. 本文介绍Qua ...

  7. 用chrome来映射查找样式对应的sass

    较新版本的sass(3.3+)支持source-map功能,可以配合谷歌浏览器或者livestyle来映射查找对应的样式. 要生成source-map可以在grunt中使用 grunt-contrib ...

  8. R in Action 读书笔记(6)基本图形

    MindMapper原文件

  9. CSS效果集锦(持续更新中)

    高亮光弧效果 使用CSS3实现的一个高亮光弧效果,当鼠标hover到某一个元素上时,一道光弧从左向右闪过,效果如下: 代码如下: <!DOCTYPE html> <html lang ...

  10. C语言 · 送分啦

    问题描述 这题想得分吗?想,请输出"yes":不想,请输出"no". 输出格式 输出包括一行,为"yes"或"no". ...