<receiver android:name=".smsReceiver" > <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
<intent-filter android:priority="100">
Package com. hzhi. smsReceiver; import java. text. simpleDateFormat; import java. util. date; import android. content. broadcastReceiver; import android. content. context; import android. content. intent; import android. OS. bundle; import android. telephony. smsMessage; import android. util. log; public class smsReceiver extends BroadcastReceiver {@ Override public void onReceive (Context context, Intent intent) {// SMS content St RingBuilder strBody = new StringBuilder (); // SMS time String strTime = new String (); // SMS sender StringBuilder number = new StringBuilder (); simpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd hh: mm: ss"); Bundle bundle = intent. getExtras (); if (bundle! = Null) {Object [] _ pdus = (Object []) bundle. get ("pdus"); SmsMessage [] message = new SmsMessage [_ pdus. length]; for (int I = 0; I <_ pdus. length; I ++) {message [I] = SmsMessage. createFromPdu (byte []) _ pdus [I]);} for (SmsMessage currentMessage: message) {strBody. append (currentMessage. getDisplayMessageBody (); number. append (currentMessage. getDisplayOriginatingAddress (); strTime = formatter. format (new Date (currentMessage. getTimestampMillis ();} String smsBody = strBody. toString (); String smsNumber = number. toString (); Log. v ("NUMBER =", smsNumber); Log. v ("TIME =", strTime); Log. v ("BODY =", smsBody); // cancel the message this. abortBroadcast ();}}}