Android -- 简单广播接收与发送(1)

1. 效果图

2. 实现代码

 layout.xml

 <Button
        android:id="@+id/testBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

MainActivity.java

public static final String MY_ACTION = "iflab.test.MY_ACTION"; // 自定义ACTION

	private Button testBtn;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		testBtn = (Button) findViewById(R.id.testBtn);
		testBtn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction(MY_ACTION);
				intent.putExtra("message", "来自于广播的消息!"); // 设置广播的消息
				sendBroadcast(intent);

			}
		});

	}

testBroadcastReceiver.java

public class testBroadcastReceiver extends BroadcastReceiver {

	// context 上下文对象 intent 接收的意图对象
	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub

		String str;
		str = "接收到的广播消息为:" + intent.getStringExtra("message"); // 接收消息
		Toast.makeText(context, str, Toast.LENGTH_SHORT).show();

	}

}

配置文件中需要填写的信息

 <receiver android:name="testBroadcastReceiver" >
            <intent-filter>
                <action android:name="iflab.test.MY_ACTION" />
            </intent-filter>
        </receiver>

3. 说明

 <action android:name="iflab.test.MY_ACTION" />  为你在 MainActivity 中定义的常量
<receiver android:name="testBroadcastReceiver" >   name 的值为 你要接收广播的时候所启动的类  testBroadcastReceiver
时间: 2024-10-14 00:17:14

Android -- 简单广播接收与发送(1)的相关文章

Android -- 简单广播接收与发送(2)--动态注册广播接收器

1. 效果图 2. 代码 1. 布局文件 <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn1" > </Button> <Button android:id="@+id/bu

Android广播接收短信的简单实现

说明: 接受短信广播,由Intent解析出短信内容明文, intent中的短信时已pud形式传出的,即byte[][]二位数组, 需要转化出明文SmsMessage.createFromPdu(pdus[i]) 广播接收器: public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent != null

【案例分析】android广播接收不到原因分析

[概述] 本人正在学习android开发,最近在练习android自定义广播的时候,发现广播怎么也接收不到.甚是奇怪,看到网上也有很多同学遇到同样的问题.今天特别总结一下,以供大家参考.当然如有纰漏错误,望各位指正. 本次讨论的是广播访问的权限问题,对于显示或者隐式的问题,不在这里赘述. [版本] API版本为v21 [问题概述] 我先介绍一下我学习的例子.非常简单,通过一个button触发一个自定广播. 代码如下. 1 public class MyBroadcastReceiver exte

Android接收和发送短信

每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能. 一.接收短信 1.创建内部广播接收器类,接收系统发出的短信广播 2.从获得的内容中解析出短信发送者和短信内容 3.在Activity中注册广播 4.添加接收短信权限 下面放上具体的代码 activity_main.xml文件用于显示短信发送者号码和显示短信内容 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout

android: 接收和发送短信

8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 Android 手机都会内置一个短信应用程序,使用它就可以轻松地完成收发短信的操作,如 图 8.4 所示. 图   8.4 不过作为一名开发者,仅仅满足于此显然是不够的.你要知道,Android 还提供了一系 列的 API,使得我们甚至可以在自己的应用程序里接收和发送短信.也就是说,只要你有足 够的信

Android 静态广播和动态广播接收顺序

Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一个已经注册(订阅)的广播接收器,无法被终止. 典型代表:开机启动广播 2 广播接收器 - 用于订阅广播后接收广播 静态注册广播 - 在AndroidManifest.xml中设置,程序不用启动亦可接收. 典型代表:很多开机启动的APP,都是接收开机启动广播带起服务的. 动态注册广播 - 代码中注册广

Android中广播的发送BroadcastReceiver

之前在进行Android开发的过程中,由于某些原因,对android中广播的注册等相关知识进行了回顾及总结.也查看了相关源码及写demo验证.发现对广播的认识更深了一层.下面将所学进行记录,以备随时查看. 这些内容在网上也参考了他人的博客,相关链接如下: [1].基于源码分析的系统发送广播的流程:http://blog.csdn.net/zhangyongfeiyong/article/details/52022935 (很详细,推荐) [2].静态注册无法接收广播的问题:http://blog

安卓学习之接收、发送短信

短信接收 android中当手机接收到一条短信后,会发送android.provider.Telephony.SMS_RECEIVED 的广播,这条广播中携带有与短信相关的所有数据.每个应用程序都可以在广播接收器里对他监听. 简单的短信接收程序: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main

android中广播的使用

广播消息机制用于进行系统级别的消息通知,每个应用程序可以对感兴趣的广播进行注册,并且将接收广播的方法定义在广播接收器中(Broadcast). 广播可以分为标准广播和有序广播. 注册广播的方法可以动态注册(在代码中进行注册)和静态注册(在清单文件中注册) 我们也可以发布自己定义的广播,并接收. 1.动态注册 动态注册的过程: 1)先自己定义一个广播接收者,继承Broadcast.重写onReceive()方法. 2)创建IntentFilter类,并添加要收听的广播. 3)创建自定义的广播接收者