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