MainActivity is as follows:
Package cc. testsmsbroadcastreceiver; import cc. testsmsbroadcastreceiver. SMSBroadcastReceiver. messageListener; import android. OS. bundle; import android. widget. textView; import android. app. activity;/*** Demo Description: * use BroadcastReceiver to listen to text messages. ** Note :*
** Details: * http://blog.csdn.net/lfdfhl/article/details/8195400 **/public class MainActivity extends Activity {private TextView mTextView; private SMSBroadcastReceiver mSMSBroadcastReceiver; @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main); init ();} private void init () {mTextView = (TextView) findViewById (R. id. textView); mSMSBroadcastReceiver = new SMSBroadcastReceiver (); mSMSBroadcastReceiver. setOnReceivedMessageListener (new MessageListener () {@ Overridepublic void OnReceived (String message) {mTextView. setText (message );}});}}
SMSBroadcastReceiver:
Package cc. testsmsbroadcastreceiver; import java. text. simpleDateFormat; import java. util. date; import android. content. broadcastReceiver; import android. content. context; import android. content. intent; import android. telephony. smsMessage;/*** configure the broadcast receiver :*
*
**
*
** Note :*
Indicates that * sets the broadcast receiver level to the highest */public class SMSBroadcastReceiver extends BroadcastReceiver {private static MessageListener mMessageListener; public SMSBroadcastReceiver () {super ();} @ Overridepublic void onReceive (Context context, Intent intent) {Object [] pdus = (Object []) intent. getExtras (). get ("pdus"); for (Object pdu: pdus) {SmsMessage smsmsmessage = smsMessage. createFromPdu (byte []) pdu); String sender = smsMessage. getDisplayOriginatingAddress (); String content = smsMessage. getMessageBody (); long date = smsMessage. getTimestampMillis (); Date timeDate = new Date (date); SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyy-MM-dd HH: mm: ss"); String time = simpleDateFormat. format (timeDate); System. out. println ("SMS from:" + sender); System. out. println ("SMS content:" + content); System. out. println ("SMS time:" + time); mMessageListener. onReceived (content); // if the text message comes from 5556, if ("5556 ". equals (sender) {System. out. println ("abort"); abortBroadcast () ;}}// callback interface public interface MessageListener {public void OnReceived (String message);} public void setOnReceivedMessageListener (MessageListener messageListener) {this. mMessageListener = messageListener ;}}
Main. xml is as follows:
AndroidManifest. xml is as follows: