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个赞
message[0]是获取message数组中的第一个元素SmsMessage,然后通过SmsMessage对象调用getOriginatingAddress(),获取发送号码
foreach时,message已经初始化了,只不过每个元素的内容没有复制,都是默认初始化为null,然后在foreach中进行赋值
添加回答
举报
0/150
提交
取消