首先声明一个类,此类继承自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. Your awesome titleHH

    Welcome to Jekyll! Your awesome titleHH About Blogging Like a Hacker Welcome to Jekyll! Jan 9, 2016 ...

  2. Hadoop 2.6.0 Namenode HA,ResourceManager HA

    先启动所有的zookeeper zkServer.sh start 在所有节点上启动JournalNode: sbin/hadoop-daemon.sh start journalnode 格式化第一 ...

  3. shell脚本删除指定mobileprovision

    由于某种原因,xcode帮我按照了几千个开发和上线证书,需要删除这部分证书: #dir="/Users/Ethan/Library/MobileDevice/Provisioning Pro ...

  4. 【Hello CC.NET】CC.NET 实现自动化集成

    一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...

  5. mono 3.10.0 正式发布:性能进一步改进

    Mono是Xamarin资助的一个项目,是微软的.NET框架的开源实现.它使得使用C#.F#和其他.NET语言进行跨平台开发成为可能.Xamarin在Mono之上构建了跨平台开发工具以及像Xamari ...

  6. UITableView(一)

    #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITableViewDataSource, ...

  7. 大白话讲解Promise(一)

    去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本 ...

  8. 配置NHibernate将枚举保存为Oracle数据库中的字符串

    假设有这样一个枚举: /// <summary> /// 字典项类型 /// </summary> public enum DicItemType { [EnumDescrip ...

  9. ASP.NET MVC 从零开始 - 请求处理

    这篇文章是从我的 github 博客 lxconan.github.io 导入的. 这是这个系列的第三篇了.前两篇文章请参见: ASP.NET MVC 从零开始 - Create and Run AS ...

  10. C# MVC 项目下的路由配置-RouteConfig

    1. 设置备份全局路径下的路由 目的,我们在网站中域名后面输入参数,可以跳转到相应的controller,例如:www.innovsys.cn/dd.直后端直接跳转到controller,获取dd参数 ...