为了账号安全,请及时绑定邮箱和手机立即绑定

接受系统短信广播问题

接受系统短信广播问题

道可道非常道 2016-10-31 19:52:50
 class MessageReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            Bundle bundle = intent.getExtras();            Object[] pdus = (Object[]) bundle.get("pdus");            SmsMessage[] messages = new SmsMessage[pdus.length];            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);        }有几个问题不太明白:1、messages[0].getOriginatingAddress()是默认数组第一个数存放发送方号码吗?2、foreach语句中的message对象是已经实例化了吗?
查看完整描述

1 回答

?
极客丶D

TA贡献3条经验 获得超0个赞

  1. message[0]是获取message数组中的第一个元素SmsMessage,然后通过SmsMessage对象调用getOriginatingAddress(),获取发送号码

  2. foreach时,message已经初始化了,只不过每个元素的内容没有复制,都是默认初始化为null,然后在foreach中进行赋值

查看完整回答
反对 回复 2016-11-12
  • 1 回答
  • 0 关注
  • 1199 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信