笔记系列"/>
Android笔记系列
public class MainActivity extends Activity {private BroadcastReceiver smsReceiver;private IntentFilter filter2;private Handler handler;private EditText et;private String strContent;private String patternCoder = "(?<!\\d)\\d{6}(?!\\d)";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et = (EditText) findViewById(R.id.et);handler = new Handler() {public void handleMessage(android.os.Message msg) {et.setText(strContent);};};filter2 = new IntentFilter();filter2.addAction("android.provider.Telephony.SMS_RECEIVED");filter2.setPriority(Integer.MAX_VALUE);smsReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {Object[] objs = (Object[]) intent.getExtras().get("pdus");for (Object obj : objs) {byte[] pdu = (byte[]) obj;SmsMessage sms = SmsMessage.createFromPdu(pdu);// 短信的内容String message = sms.getMessageBody();Log.d("logo", "message " + message);// 短息的手机号。。+86开头?String from = sms.getOriginatingAddress();Log.d("logo", "from " + from);// Time time = new Time();// time.set(sms.getTimestampMillis());// String time2 = time.format3339(true);// Log.d("logo", from + " " + message + " " + time2);// strContent = from + " " + message;// handler.sendEmptyMessage(1);if (!TextUtils.isEmpty(from)) {String code = patternCode(message);if (!TextUtils.isEmpty(code)) {strContent = code;handler.sendEmptyMessage(1);}}}}};registerReceiver(smsReceiver, filter2);}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(smsReceiver);}/*** 匹配短信中间的6个数字(验证码等)** @param patternContent* @return*/private String patternCode(String patternContent) {if (TextUtils.isEmpty(patternContent)) {return null;}Pattern p = Patternpile(patternCoder);Matcher matcher = p.matcher(patternContent);if (matcher.find()) {return matcher.group();}return null;}
}
更多推荐
Android笔记系列
发布评论