废话就不说了,新建类继承,然后配置Manifest.xml:如下
<!--需要给一个接收短信的权限 --> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <receiver android:name=".SMSReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>这个action需要自己敲出来,没有提示的,可能是出于某些原因,Google将他移除了。
然后就是在BroadcastReceiver中的onReceiver方法里面写自己需要的逻辑代码了
1 public class SMSReceiver extends BroadcastReceiver { 2 @Override 3 public void onReceive(Context context, Intent intent) { 4 Object objects[] = (Object[])intent.getExtras().get("pdus"); 5 for (Object pdu:objects){ 6 SmsMessage sm = SmsMessage.createFromPdu((byte[]) pdu); 7 String body = sm.getMessageBody(); 8 String address = sm.getOriginatingAddress(); 9 System.out.println(address+" "+body); 10 } 11 } 12 }
上面通过获得一个SmsMessage对象,获得短信的内容和地址。
(Android设备接收到的SMS是以pdu形式的)