package com.xypower.mpapp; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.util.Log; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /** * 短信监听的广播 * * @author jingjing */ public class SmsReceiver extends BroadcastReceiver { private Context mContext; public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; public static final String SMS_DELIVER_ACTION = "android.provider.Telephony.SMS_DELIVER"; @Override public void onReceive(Context context, Intent intent) { this.mContext = context; Log.e("日志:onReceive...", "-接收短信执行了" + intent.getStringExtra("sele")); String action = intent.getAction(); if (SMS_RECEIVED_ACTION.equals(action) || SMS_DELIVER_ACTION.equals(action)) { Log.e("日志:onReceive。。。", "开始接收短信....."); Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus != null && pdus.length > 0) { SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { byte[] pdu = (byte[]) pdus[i]; messages[i] = SmsMessage.createFromPdu(pdu); } for (SmsMessage message : messages) { String content = message.getMessageBody();// 得到短信内容 String sender = message.getOriginatingAddress();// 得到发信息的号码 Date date = new Date(message.getTimestampMillis()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); String dateContent = format.format(date); // this.abortBroadcast();// 中止 } } } } } }