欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android自动填写获取到的验证码,android填写验证码,<uses-permis

来源: javaer 分享于  点击 21981 次 点评:24

Android自动填写获取到的验证码,android填写验证码,
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission><uses-permission android:name="android.permission.READ_SMS"></uses-permission>
package com.dongdongsongcan.app;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.SmsMessage;import com.su.dolphin.utils.LogUtil;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class SMSReceiver extends BroadcastReceiver{    public interface ISMSListener {        public void onSmsReceive(String verifyCode);    }    private static ISMSListener mSMSListener;    public SMSReceiver(ISMSListener ismsListener) {        mSMSListener = ismsListener;    }    public static final String TAG = "ImiChatSMSReceiver";    //android.provider.Telephony.Sms.Intents    public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";    @Override    public void onReceive(Context context, Intent intent)    {        LogUtil.d(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");        if (intent.getAction().equals(SMS_RECEIVED_ACTION))        {            SmsMessage[] messages = getMessagesFromIntent(intent);            for (SmsMessage message : messages)            {//                LogUtil.d(message.getOriginatingAddress() + " : " +////                        message.getDisplayOriginatingAddress() + " : " +////                        message.getDisplayMessageBody() + " : " +////                        message.getTimestampMillis());                String msg = message.getDisplayMessageBody();                LogUtil.d("MSG: " + msg);                String verifyCode = null;                Pattern p = Pattern.compile("\\d{4}");                Matcher m = p.matcher(msg);                while (m.find()) {                    verifyCode = m.group();                    break;                }                LogUtil.d("verifyCode " + verifyCode);                if (mSMSListener != null) {                    mSMSListener.onSmsReceive(verifyCode);                }            }        }    }    public final SmsMessage[] getMessagesFromIntent(Intent intent)    {        Object[] messages = (Object[]) intent.getSerializableExtra("pdus");        byte[][] pduObjs = new byte[messages.length][];        for (int i = 0; i < messages.length; i++)        {            pduObjs[i] = (byte[]) messages[i];        }        byte[][] pdus = new byte[pduObjs.length][];        int pduCount = pdus.length;        SmsMessage[] msgs = new SmsMessage[pduCount];        for (int i = 0; i < pduCount; i++)        {            pdus[i] = pduObjs[i];            msgs[i] = SmsMessage.createFromPdu(pdus[i]);        }        return msgs;    }}

相关栏目:

用户点评