zl程序教程

您现在的位置是:首页 >  APP

当前栏目

[android] 短信的广播接收者

2023-02-18 15:50:04 时间

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

 

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

<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优先级最高