OUTPUT:
SmsReceiver.processReceivedSms:来自+ 1650815xxxx的短信
SmsReceiver.processReceivedSms:SMS正文测试4
/ ** *由uki于11/22/14创建。 * /
公共类SmsReceiver扩展BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) { final String tag = TAG + ".onReceive"; Bundle bundle = intent.getExtras(); if (bundle == null) { Log.w(tag, "BroadcastReceiver failed, no intent data to process."); return; } if (intent.getAction().equals(SMS_RECEIVED)) { Log.d(tag, "SMS_RECEIVED"); String smsOriginatingAddress, smsDisplayMessage; // You have to CHOOSE which code snippet to use NEW (KitKat+), or legacy // Please comment out the for{} you don't want to use. // API level 19 (KitKat 4.4) getMessagesFromIntent for (SmsMessage message : Telephony.Sms.Intents. getMessagesFromIntent(intent)) { Log.d(tag, "KitKat or newer"); if (message == null) { Log.e(tag, "SMS message is null -- ABORT"); break; } smsOriginatingAddress = message.getDisplayOriginatingAddress(); //see getMessageBody(); smsDisplayMessage = message.getDisplayMessageBody(); processReceivedSms(smsOriginatingAddress, smsDisplayMessage); } // Processing SMS messages the OLD way, before KitKat, // this WILL work on KitKat or newer Android // PDU is a “protocol data unit”, which is the industry // format for an SMS message Object[] data = (Object[]) bundle.get("pdus"); for (Object pdu : data) { Log.d(tag, "legacy SMS implementation (before KitKat)"); SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu); if (message == null) { Log.e(tag, "SMS message is null -- ABORT"); break; } smsOriginatingAddress = message.getDisplayOriginatingAddress(); // see getMessageBody(); smsDisplayMessage = message.getDisplayMessageBody(); processReceivedSms(smsOriginatingAddress, smsDisplayMessage); } } // onReceive method