废话就不说了,新建类继承,然后配置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方法里面写自己需要的逻辑代码了
public class SMSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Object objects[] = (Object[])intent.getExtras().get("pdus"); for (Object pdu:objects){ SmsMessage sm = SmsMessage.createFromPdu((byte[]) pdu); String body = sm.getMessageBody(); String address = sm.getOriginatingAddress(); System.out.println(address+" "+body); } } }
上面通过获得一个SmsMessage对象,获得短信的内容和地址。
(Android设备接收到的SMS是以pdu形式的)