//解析 pdu
Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
for (int i = 0; i < messages.length; i++) {
byte[] pud = (byte[]) messages[i];
SmsMessage sms = SmsMessage.createFromPdu(pud);
//获取短信内容
String body = sms.getMessageBody();
//获取短信号码
String address = sms.getOriginatingAddress();
System.out.println("号码:"+address+"\t短信内容:"+body);
}
//获取短信内容
SmsMessage[] messages = getMessagesFromIntent(intent);
for (SmsMessage sms : messages) {
String body = sms.getMessageBody();
String address = sms.getOriginatingAddress();
System.out.println(body+address);
}
//系统自带的 PUD解析
public static SmsMessage[] getMessagesFromIntent(
Intent intent) {
Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
String format = intent.getStringExtra("format");
byte[][] pduObjs = new byte[messages.length][];
for (int i = 0; i < messages.length; i++) {
pduObjs[i] = (byte[]) messages[i];
}
byte[][] pdus = new byte[pduObjs.length][];
int pduCount = pdus.length;
SmsMessage[] msgs = new SmsMessage[pduCount];
for (int i = 0; i < pduCount; i++) {
pdus[i] = pduObjs[i];
msgs[i] = SmsMessage.createFromPdu(pdus[i]);
}
return msgs;
}