博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[android] 短信的广播接收者
阅读量:7157 次
发布时间:2019-06-29

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

比较重要的一个广播事件,短信

 

界面布局,比如播放视频,默认是横屏全屏的,清单文件中进行设置,

<activity/>节点设置屏幕朝向属性,android:screenOrientation=”landscape”

设置主题android:theme=”@android:style/Theme.NoTitleBar.FullScreen”

 

设置清单文件

添加<Receiver/>节点,添加<intent-filter>节点

添加<action/>节点,设置关心的动作名称,

android:name=”android.provider.Telephony.SMS_RECEIVED

添加权限,android.permission.RECEIVE_SMS

 

新建一个SmsReceiver类继承BroadcastReceiver

onReceive(Context context,Intent intent)方法中进行处理

调用Intent对象的getExtras()方法,拿到数据,得到Bundle对象

调用Bundle对象的get(key)方法,得到byte[],参数:key这里填 “pdus”,pdu是短信的数据格式,强转成Object[]数组

循环byte[]数组 for(Object pdu:pdus)

每一个循环里面调用SmsMessage类的createFromPdu(pdu),强转Objectbyte[],此时会得到SmsMessage对象

调用SmsMessage对象的getMessageBody()方法,得到短信内容

调用SmsMessage对象的getOriginatingAddress()方法,得到发件人

调用abortBroadcast()方法,直接终止掉这条广播

 

清单文件中intent-filter节点上,可以设置优先级属性,android:priority=”1000”

广播接收者的优先级,-1000优先级最低,1000优先级最高

 

转载于:https://www.cnblogs.com/taoshihan/p/5327030.html

你可能感兴趣的文章
对自组织的实验
查看>>
微软宣布Azure Migrate和Site Recovery服务增强功能
查看>>
Nexus指南已经发布
查看>>
Scrapy入门程序点评
查看>>
MYSQL修改存储过程的访问权限
查看>>
# iOS 使用 InjectionIII 注入动态库实现快速调试
查看>>
Apache 基金会宣布 Apache Airflow 毕业成为顶级项目
查看>>
从Web后端(Java)转到游戏服务端的感受
查看>>
设计模式(六)_观察者模式
查看>>
如何优雅地过滤敏感词
查看>>
SELinux初学者指南
查看>>
ECCV 2018 | 旷视科技包揽COCO+Mapillary四项世界第一,中国公司成最大赢家
查看>>
Shiro Ajax请求没有权限返回JSON,没有登录返回JSON
查看>>
classList属性详解
查看>>
MYSQL-锁机制
查看>>
寻找List之和的最近素数
查看>>
程序员必知必会的那些邪恶的脚本
查看>>
Go 程序的基本结构和要素
查看>>
深入理解Java中的反射机制
查看>>
Git命令速查
查看>>