接收短信

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"/>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值