package com.pzq.test.zhuanpan4; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import handler; import android.telephony.SmsMessage; import android.text.TextUtils; import android.util.Log; import java.util.regex.Matcher; import java.util.regex.Pattern;/* * ,* Created by  asus 提醒2016/6/26。 ,*/public class  SMSUtils { private BroadcastReceiver  smsReceiver, codeReceiver; private IntentFilter 过滤,mIntentFilter; private Handler 处理程序; private String  strContent; private String patternCoder =, " (? & lt; ! \ \ d) \ \ d {6} (? ! \ \ d)”; private Activity  mActivity; public static  String MSMCode_CHANGE_BROADCAST =,“com.pzq.test.SMSCode.CHANGE_BROADCAST”; public SMSUtils (Activity mActivity), { Log.d (“mainpzqtest ....”,,“getSMScode .... 444444444444444444444”); 时间=this.mActivity mActivity;//,,getSMScode (“555”); 时间=filter new IntentFilter (); filter.addAction (“android.provider.Telephony.SMS_RECEIVED”); filter.setPriority (Integer.MAX_VALUE); 时间=smsReceiver new BroadcastReceiver (), { @Override public void  onReceive (Context 上下文,Intent 意图),{ 对象[],objs =, (Object []), intent.getExtras () . get (pdu); 时间:for (Object obj obj), { byte [], pdu =, (byte []), obj; SmsMessage sms =, SmsMessage.createFromPdu (pdu);//,短信的内容 String message =, sms.getMessageBody (); Log.d(“商标”,“message ,,,,”, +,消息);//,短息的手机号. . + 86开头吗? String 得到=,sms.getOriginatingAddress (); Log.d(“商标”,“得到,,,,”,+,); if (! TextUtils.isEmpty(从),{ String code =, patternCode(消息); if (! TextUtils.isEmpty(代码),{ 时间=strContent 代码; getSMScode(代码); } } } } }; mActivity.registerReceiver (smsReceiver,过滤器); }/* * ,*匹配短信中间的6个数字(验证码等) ,* ,* @param patternContent ,* @return ,*/private String  patternCode (String patternContent), { if (TextUtils.isEmpty (patternContent)), { return 零; } Pattern p =, Pattern.compile (patternCoder); Matcher Matcher =, p.matcher (patternContent); if (matcher.find ()), { return matcher.group (); } return 零; } public void  getSMScode (String 代码),{ Intent Intent =, new 意图(); intent.putExtra(“代码”,代码); intent.setAction (MSMCode_CHANGE_BROADCAST); mActivity.sendBroadcast(意图); }/* * * ,*使用,,加权限,,,& lt; uses-permission android: name=" android.permission.RECEIVE_SMS ",/比; ,* ,*,,,,,,,,registerReceiver (); ,,,,,,,,,u =, new SMSUtils (MainActivity.this); ,*,private void registerReceiver (), { ,,,,,,,,IntentFilter IntentFilter =, new IntentFilter (); ,,,,,,,,intentFilter.addAction (SMSUtils.MSMCode_CHANGE_BROADCAST); ,,,,,,,,registerReceiver (new SMSBroadcastReceiver (),, intentFilter); ,,} class 才能SMSBroadcastReceiver extends  BroadcastReceiver { ,,,,,,@Override ,,,,,,,public void onReceive (Context 上下文,Intent 意图),{ ,,,,,,,,,,,if (intent.getAction (),==, SMSUtils.MSMCode_CHANGE_BROADCAST), { ,,,,,,,,,,,Bundle Bundle =, intent.getExtras (); ,,,,,,,,,,,smScode =, bundle.getString(“代码”); ,,,,,,,,,,,Log.d (“mainpzqtest ....”,,“mBroadcastReceiver ....”, +, smScode); ,,,,,,,,,,,et.setText (smScode); ,,,,,,,,,,,,,} ,,,,,,,,} ,,}; ,* ,* ,*/}