1.广播接收器类接收短信,并写到显示的textview中
2.在onResume()中注册广播,并加入过滤条件
3.在onDestroy()中取消注册
4.在AndroidManifest.xml中添加允许获取接收消息
具体如下
广播器类填写接收的短信的具体实现
//广播接收器类
class MessageReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle=intent.getExtras();//获取bundle对象
Object[] pdus=(Object[])bundle.get("pdus");//获取pdus的信息
SmsMessage[] messages=new SmsMessage[pdus.length];//新建SMSMessage数组
for(int i=0;i< messages.length;i++){
messages[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
}
String address=messages[0].getOriginatingAddress();
String fullMessage="";
for(SmsMessage message:messages){
fullMessage+=message.getMessageBody();
}
sender.setText(address);
content.setText(fullMessage);
}
}
在onResume中注册广播,并添加过滤行为
receiveFilter=new IntentFilter();
receiveFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
messageReceiver=new MessageReceiver();
registerReceiver(messageReceiver,receiveFilter);//注册广播
销毁
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(messageReceiver);//取消注册
}
在AndroidManifest.xml中添加允许获取接收消息
<uses-permission android:name="android.permission.RECEIVE_SMS"/>