博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 广播学习
阅读量:6708 次
发布时间:2019-06-25

本文共 1572 字,大约阅读时间需要 5 分钟。

在android中广播分为2种,一种常驻型广播,另一种就是非常驻型广播。二者的区别就在于程序关闭后广播是否还存在。

常驻型广播在android程序中的AndroidManifest.xml中进行注册

声明了一个针对收到短信的常驻型广播,如

<receiver android:name=".TestReceiver">

  <intent-filter>

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

非常驻型广播一般都在代码中注册,使用registerReceiver进行注册,使用unregisterReceiver进行销毁

注册

SMSReceiver smsReceiver = new SMSReceiver();

IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
logo.this.registerReceiver(smsReceiver, filter);

销毁

SMSReceiver smsReceiver = new SMSReceiver();

logo.this.unregisterReceiver(smsReceiver);

广播代码

public class SMSReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("receive message");
Bundle bundle = intent.getExtras();
Object[] myOBJpdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[myOBJpdus.length];
System.out.println(messages.length);
for (int i = 0; i<myOBJpdus.length; i++)
{
  messages[i] = SmsMessage.createFromPdu((byte[]) myOBJpdus[i]);
  Date date = new Date(messages[i].getTimestampMillis());
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String mobile = messages[i].getOriginatingAddress();//发送短信的手机号码
  String time = format.format(date); //得到发送时间
  String content = messages[i].getDisplayMessageBody();
  System.out.println("手机号码=" + mobile + "发送时间 =" + time + "发送内容=" + content);
}
}

}

转载于:https://www.cnblogs.com/lublog/archive/2013/04/11/3014450.html

你可能感兴趣的文章
深蓝词库转换2.2发布,支持手心输入法和Win10微软拼音
查看>>
转载:uIP之ARP:地址解析协议
查看>>
Visio2010绘制上下文数据流图
查看>>
CSS3魔法堂:背景渐变(Gradient)
查看>>
七个C#编程的小技巧
查看>>
Android中的AutoCompleteTextView的使用
查看>>
Windows下编译Enigmail源代码
查看>>
《基于MFC的OpenGL编程》Part 11 Blending, Antialiasing and Fog
查看>>
classpath 和 classpath*的 区别:
查看>>
Git~GitLab当它是一个CI工具时
查看>>
RPi 2B 中文语言包
查看>>
7.6. 数值函数
查看>>
OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建
查看>>
【Android错误集锦】AppBarLayout is overlapping the RecyclerView in one of my xml files.
查看>>
Mybatis入门例子
查看>>
C#进阶系列——DDD领域驱动设计初探(一):聚合
查看>>
4.3. CMD
查看>>
第 16 章 Apache Hbase
查看>>
Linux Autotools
查看>>
【批处理学习笔记】第十三课:常用dos命令(3)
查看>>