`

android 广播机制 Broadcast

 
阅读更多

 

 

Broadcast(一)

         同一个广播可由不同的BroadcastReceiver来接受,实现不同的功能如接收短消息。

        继承BroadcastReceiver,就需要重写BroadcastReceiver里面的onReceiver方法。同时需要早Manifest.xml中注册。

 

1简单小例子

    a. TestBCActivity extends Activity{}中

    

Intent intent=new Intent(); 
intent.setAction(intent.ACTION_EDIT); TestBCActivity.this.sendBroadcast(intent); 

 

 b.接收器

public class TestReceiver extends BroadcastReceiver { 
@Override public void onReceive(Context context, Intent intent) { System.out.println("ddddddddd");
 } 
} 

  

 c.Manifest.xml中

 

<!--广播注册--> 
<receiver android:name=".TestReceiver"> 
<intent-filter > 
<action android:name="android.intent.action.EDIT"/>
 </intent-filter> 
</receiver> 

 

 当activity发送广播时,配置文件会从多个RECEIVER 中寻找匹配的action来执行相应的操作。

 

 

Broadcast(二)

   BroadcastReceiver注册方法有两种,

 1.在程序代码中注册

 2.在Manifest.xml中注册,如上例。特点是即使应用程序被关闭后,仍可接收广播。如监听电池电量。

 

这次着重在代码中注册,

 

  a.注册BroadcastReceiver

      

registerReceiver(smsReceiver, filter); 

 

 

  b.取消注册

       

unregisterReceiver(smsReceiver);

 

  一个接收短消息的例子

  a.在activity中定义一个常量

 

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

 

 b. 注册监听

 

 

//生成一个BroiadcastReceiver对象
            smsReceiver = new SMSReceiver();
            //生成一个IntentFilter对象  //和Manifest中intent-filter标签的作用一样  
            //它是一个过滤器 它规定本receiver能够对哪些action发出的广播进行相应
            IntentFilter filter = new IntentFilter();
            //为IntentFilter添加一个Action
            filter.addAction(SMS_ACTION);
            //将BroadcastReceiver对象注册到系统当中
            TestBCActivity.this.registerReceiver(smsReceiver, filter);

 

 c 取消注册

//解除BroadcastReceiver对象的注册
            TestBCActivity.this.unregisterReceiver(smsReceiver);

 

 d receiver接收消息并解析

 

public class SMSReceiver extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		 System.out.println("receive message");
	        
	        //接受Intent对象当中的数据
	        //Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值
	        //Bundle的内部实际上是使用了HashMap<String, Object>类型
	        //它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt()
	        Bundle bundle = intent.getExtras();
	        
	        
	        //在Bundle对象当中有一个属性名为pdus,这个属性的值是一个Object数组
	        Object[] myOBJpdus = (Object[]) bundle.get("pdus"); 
	        //创建一个SmsMessage类型的数组
	        SmsMessage[] messages = new SmsMessage[myOBJpdus.length];  
	        System.out.println(messages.length);
	        for (int i = 0; i<myOBJpdus.length; i++) 
	        {  
	          //使用Object数组当中的对象创建SmsMessage对象
	          messages[i] = SmsMessage.createFromPdu((byte[]) myOBJpdus[i]);  
	          //调用SmsMessage对象的getDisppalyMessageBody()方法,就可以得到消息的内容
	          System.out.println(messages[i].getDisplayMessageBody());
	        }
	       
	    }
	}

 

 

e.同时不要忘了在配置文件中添加权限

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

 

 

当我们在ddms中发送消息的时候,

 

 

 

 

 

 

 

 logcat里面就会打印出解析的信息

  

 

 

  • 大小: 6.9 KB
  • 大小: 4.6 KB
分享到:
评论

相关推荐

    broadcast_Android 广播机制broadcast用法实例.rar

    在这个“broadcast_Android 广播机制broadcast用法实例.rar”压缩包中,我们很可能会找到关于如何使用BroadcastReceiver的示例代码和教程。 首先,广播分为两种类型:显式广播和隐式广播。显式广播是直接指定接收者...

    Android 广播机制broadcast用法实例

    这个例子主要研究Android broadcast广播机制的实现,以一个电池监测及广播通知为例,介绍了实现broadcast的过程:大致的思路是:注册一个系统 BroadcastReceiver,作为访问电池计量之用,如果捕捉到的action是ACTION...

    Android Broadcast 广播机制 实例

    Broadcast广播是Android系统中的一种全局通知机制,用于在整个系统中传播事件。当一个Broadcast被发送时,所有注册了与该Broadcast匹配的BroadcastReceiver(广播接收器)都会收到这个消息,并可以执行相应的处理...

    Android系统中的广播(Broadcast)机制简要介绍和学习计划

    广播机制在Android中之所以不可或缺,是因为它实现了发送者和接收者的松耦合。发送广播的应用不需要知道哪些应用或组件会接收到广播,而接收广播的组件也不需要预先知道广播的来源。这种设计使得系统能够动态响应...

    Android广播机制详解

    本文将详细解析Android广播机制的核心概念、工作原理以及如何使用。 一、广播基本概念 1. 广播Intent:广播Intent是Android系统中用于发送和接收广播消息的对象。它包含一个动作(Action)、数据(Data)、类型...

    Android broadcast广播机制的使用

    本文将深入探讨Android广播机制的使用,包括动态注册与静态注册两种方式。 首先,我们要理解广播的基本概念。Android广播是系统用于在整个应用环境中发送全局通知的方式。这些通知可以是系统级别的,如设备启动、...

    android-关于广播机制的使用

    总结,Android广播机制是实现系统事件通知和跨应用通信的重要手段。理解并熟练运用广播,可以提升应用的功能性和响应性。在实际开发中,根据需求选择合适的注册方式,合理设计IntentFilter,以及适时使用...

    Android利用广播BroadCast监听网络的变化

    在Android开发中,广播Broadcast是一种重要的组件,它允许应用程序接收并响应系统或应用程序发送的全局事件。...通过实践这个Demo,开发者可以深入学习Android的广播机制,提高应对网络状态变化的能力。

    Android 广播机制实例

    Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发周期。而作为应用开发者,就需要数练掌握Android系统提供的一个开发利器,...

    android广播机制

    Android 广播机制是Android系统中一种用于组件间通信的重要机制。BroadcastReceiver,即广播接收器,是Android四大组件之一,它允许应用程序在不互相依赖的情况下接收和响应系统或应用程序发出的广播事件。这些事件...

    android 广播机制

    本教程将深入探讨Android广播机制的核心概念、工作原理以及如何在实践中运用。 **广播的概念** 广播在Android中扮演着一个通知的角色,当系统或某个应用产生了一个广播事件(例如设备开机、网络状态改变等),这个...

    Android广播机制安全性研究.pdf

    【Android 广播机制概述】 Android 广播机制是 Android 操作系统中一个核心的组件交互方式,它允许应用程序在不直接互相通信的情况下共享信息。广播接收器(Broadcast Receiver)作为四大组件(Activity、Service、...

    Android学习之Broadcast练习_dlc

    Broadcast Receiver(广播接收者)是Android系统中用于在应用程序之间传递消息的一种机制。它允许应用在后台接收和响应系统或其它应用发送的广播事件,即使应用并未运行。本实践项目"Android学习之Broadcast练习_dlc...

    Android中的广播(BroadCast)详细介绍

    在Android系统中,广播(Broadcast)是一种至关重要的组件,它允许应用程序之间进行异步通信,无需...总之,理解并合理使用广播机制是Android开发中必不可少的技能,它能够帮助开发者构建更加灵活、健壮的应用程序。

    Android 广播机制

    广播机制是Android系统事件分发的核心,能够处理系统级别的通知(如设备开机、网络状态变化)以及应用程序自定义的事件。本文将深入探讨Android广播的工作原理、类型、注册方式以及如何创建和接收广播。 首先,...

    android广播机制(二)

    本文将深入探讨Android的广播机制,主要关注标准广播和有序广播的实现和区别。 首先,我们来理解什么是广播。在Android中,BroadcastReceiver是用于接收和响应系统或应用程序发送的广播消息的组件。广播可以是系统...

    android的广播机制演示

    在这个名为“android的广播机制演示”的项目中,我们将深入探讨Android广播的工作原理和使用方法。 首先,广播分为两种类型:系统广播和自定义广播。系统广播是由系统发起的,例如设备启动、网络状态变化等;自定义...

    Android之Broadcast, BroadcastReceiver(广播)

    1. Android广播机制: - 广播分为有序广播和无序广播。有序广播(Ordered Broadcast)按照优先级进行接收,接收者可以拦截并修改广播数据;无序广播(Broadcast)则无法被拦截,所有匹配的接收者都会接收到广播,但...

    第八章_Android广播事件处理Broadcast_Receiver

    ### 第八章 Android广播事件处理Broadcast Receiver #### 知识点一:理解Broadcast Receiver的作用与意义 在Android应用开发过程中,Broadcast Receiver是一种重要的组件,它主要用于接收来自系统或其他应用程序...

    android学习教程--广播机制

    在Android开发中,广播机制(Broadcast Mechanism)是系统中的一种重要组件,它允许应用程序接收并响应系统或其它应用发出的事件。广播接收器(BroadcastReceiver)是这一机制的核心,它能够监听特定的Intent(意图...

Global site tag (gtag.js) - Google Analytics