Android广播机制(两种注册方法)
在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)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
分享到:
相关推荐
用两个工程展示了,广播的两种注册方式以及区别。其中一个工程负责用两种方式注册广播,另一个工程则发起广播,注意在应用还没启动前,无论是以哪种形式注册的广播,都是接受不到的
注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 10. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。 11. AIDL的全称是什么?如何工作?能处理哪些类型...
注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 答:两种,一种是xml注册,一种是代码注册 xml注册的优点:方便、易读 缺点:当手机处于关机状态时,仍然可以监听到广播,不...
Android 解决监听home键的几种方法 前言: 以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键)。 一、使用注册广播监听home键、多任务键 演示图 创建一个广播代码如下: class InnerRecevier ...
分组教学功能可将学生分为几个小组,有每个小组自行进行教学,有学生组长主动代替教师,对学生组成员进行广播教学、语音教学等各项功能。 语音讨论功能可以将全班学生分成同一个组或分成几个组进行课堂上的讨论,每...
8)广播的两种注册方式有什么区别? 9)广播发送和接收的原理? 10)Android Binder机制是做什么的,为什么选用Binder? 参考: (一)Android基础 1)四大组件? Activity【活动】:用于表现功能。 Service
十几种DIY模块(不断更新),快捷快速的打造属于自己的个性移动互联网产品 2种社区模式,可通过管理插件便捷切换TAB样式、普通列表样式 模版采用全局图片延时加载功能,可大大降低服务器负担,提升网站速度 支持向下...
五、联系方式 在学习过程中,有任何疑问,都可以按照如下几种方式进行联系。 1. 河南电大在线论坛 2. 呼喊中心 3. 责任教师联系方式 任红霞 邮箱: 电话:0393-8176300 ----------------------- 2022年计算机应用...
Modbus Poll pro 3.6版本汉化,单文件免注册 Modbus Poll是非常流行的Modbus主站模拟器为你的奴隶设备的测试和调试。支持Modbus RTU / ASCII和Modbus TCP / IP协议。 Modbus从站是模拟多达32个从站设备在32位...
10.手机后台:系统配置加自定义ID注册,会员注册审核/反审核,留言审核/反审核,修复广播管理,修复友链系统不能添加分类的bug。 11.电脑后台:系统配置加自定义ID注册,网站关键词SEO设置,会员注册声明。社区币种...
信息广播功能可以对所有的用户或特定用户发送信息, 系统所有的用户都可以通过内部短信进行交流。 高度的兼容性 本系统与百威软件老版本有高度的兼容性,系统自带智能升级程序,免去了手工升级的繁琐。 开放式的...
飞鹰校园广播,又称飞鹰定时打铃程序或飞鹰定时播放器,本软件是一款专业的现代中小学校园广播系统软件,只要您的单位有电,有一台电脑(旧的也行,才几百元),有一个功放(扩大机)就全部搞定。只要您安装了本...
起始ID设置 设置注册会员的起始ID ,有两种方法第二种比较危险 会清空所有的注册用户与用户相关的信息,如 信息,空间,社区帖子,等等 =============================================================== 我记得的...
还有一种简易的安装方式,是使用编译命令为 “ant clean debug install” 直接将插件apk安装到系统中,PluginMain工程会监听系统的应用安装广播,监听到插件apk安装广播后, 再自动调用PluginLoader.installPlugin...
一般是"*.ini"格式,然后,使用Winsock的广播消息给整个局域网发送一个数据包,这时候,如果其他电脑已经运行了飞鸽传书,那么他收到这个包后,会将包的信息读取出来,当然,这个包里有用户的IP,用户名,性别等等。...
千千静听的那个字体转换功能还蛮有实用性的如果你有时候想聊天或者注册什么的想用繁体字的话但你不想用繁体的输入法,觉得那样麻烦那你可以这样子:在千千歌词秀里面-编辑歌词,然后输入你想要的繁体字的简体字...
电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务...
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...