转自http://www.cnblogs.com/zhongyinghe/p/5316123.html
1、如果想使用广播接受者接收短信,必须先启动activity;如果不启动activit的话在4.0以上的版本是无效的,这是为了安全考虑
2、清单文件
<receiver android:name="com.examplezyh.getsmsmsg.SmsReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
3、权限清单设置
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
4、java代码
package com.examplezyh.getsmsmsg;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("收到短信了");
//pdus是获取短信的内容的键
Object[] pdus = (Object[])intent.getExtras().get("pdus");
for(Object pdu : pdus){
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])pdu);
String body = smsMessage.getMessageBody();
String sender = smsMessage.getOriginatingAddress();
System.out.println("body=" + body);
System.out.println("sender=" + sender);
}
}
}