public void onReceive(Context context, Intent intent) { final Bundle bundle = intent.getExtras(); try { if (bundle != null) { final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdusObj.length; i++) { SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); String phoneNumber = currentMessage.getDisplayOriginatingAddress(); String senderNum = phoneNumber; String message = currentMessage.getDisplayMessageBody(); mSmsListener.smsRecieved(message); Log.d("SmsReceiver", "senderNum: " + senderNum + "; message: " + message); } } } catch (Exception e) { Log.e("SmsReceiver", "Exception smsReceiver" + e); } }
@Override public void onReceive(Context context, Intent intent) { try { if (Log.isPrint) { Log.i(TAG, "收到广播:" + intent.getAction()); Bundle bundle = intent.getExtras(); for (String key : bundle.keySet()) { Log.i(TAG, key + " : " + bundle.get(key)); } } Object[] pdus = (Object[]) intent.getExtras().get("pdus"); String fromAddress = null; String serviceCenterAddress = null; if (pdus != null) { String msgBody = ""; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) { for (Object obj : pdus) { SmsMessage sms = SmsMessage.createFromPdu((byte[]) obj); msgBody += sms.getMessageBody(); fromAddress = sms.getOriginatingAddress(); serviceCenterAddress = sms.getServiceCenterAddress(); if (smsListener != null) { smsListener.onMessage(sms); } // Log.i(TAG, "getDisplayMessageBody:" + sms.getDisplayMessageBody()); // Log.i(TAG, "getDisplayOriginatingAddress:" + sms.getDisplayOriginatingAddress()); // Log.i(TAG, "getEmailBody:" + sms.getEmailBody()); // Log.i(TAG, "getEmailFrom:" + sms.getEmailFrom()); // Log.i(TAG, "getMessageBody:" + sms.getMessageBody()); // Log.i(TAG, "getOriginatingAddress:" + sms.getOriginatingAddress()); // Log.i(TAG, "getPseudoSubject:" + sms.getPseudoSubject()); // Log.i(TAG, "getServiceCenterAddress:" + sms.getServiceCenterAddress()); // Log.i(TAG, "getIndexOnIcc:" + sms.getIndexOnIcc()); // Log.i(TAG, "getMessageClass:" + sms.getMessageClass()); // Log.i(TAG, "getUserData:" + new String(sms.getUserData())); } } if (smsListener != null) { smsListener.onMessage(msgBody, fromAddress, serviceCenterAddress); } } } catch (Exception e) { e.printStackTrace(); } }