大佬教程收集整理的这篇文章主要介绍了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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助。
以上是大佬教程为你收集整理的Android实现自动填写获取验证码功能全部内容,希望文章能够帮你解决Android实现自动填写获取验证码功能所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。