通过继承BroadcastReceiver,重写onReceive方法,核心代码如下
/* get all unread messages begin */
Bundle bundle = intent.getExtras();
Object[] messages = (Object[]) bundle.get("pdus");
SmsMessage[] smsMessages = new SmsMessage[messages.length];
for (int i = 0; i < smsMessages.length; i++)
{
smsMessages[i] = SmsMessage.createFromPdu((byte[]) messages[i]);
}
/* get all unread messages end */
/* get the first sms and copy to provider member */
GeneralInboxWidgetProvider.setMessageInfo(smsMessages[0].getOriginatingAddress(), smsMessages[0].getMessageBody());
Log.d(TAG,"smsMessages[0].getMessageBody()"+smsMessages[0].getMessageBody());
这是log打印出来的也就是smsMessages[0].getMessageBody()有时会不全,当短信内容长的时候,比如发送11到10086查询,内容不完整了,有谁碰到过这种情况吗?还请赐教,谢谢!
------解决方案--------------------
10086返回来的是多条短信,而你只显示smsMessages[0]的短信,也就是只显示第1条,要用循环显示。