国际验证码接口发布验证码有哪些好处?
2020-10-20 00:00:00
来源:http://www.jzyyun.com/
点击:2673
喜欢:0
国际验证码接口开发:短信验证码如何自动填写?项目中提高体验一般在短信验证的时候会自动填充验证码,接下来我们就实现一把,界面就是这样主要以实现逻辑为主。首先点击验证码发一个定时器。这里用到CountDownTimer这个类完成定时器,点击发送验证码随机生成一个Radom数Math.Radom()*9000+1000;
在这里花费我大量时间,但是对知识的渴求还是摸爬滚打让我明白了问题,java和kotlit交互起来还是有问题嘛,表示踩坑很苦逼 /*thread{Runnable{ SystemClock.sleep(4000) mCountDownTimer!!.ancleTimers() }}.start()*/这里是调用的Kotlin的thread导致我想要的效果实现不了 Thread(Runnable{ SystemClock.sleep(4000) mCountDownTimer!!.ancleTimers() }).start() 写到这里把倒计时的效果写出来了,然后们看自动填写短信内容是怎么回事,我们再梳理下逻辑 1.写布局 2.用CountDownTImer做个定时器,里面两个方法一个onTick,一个onFinish()我是用接口回调自己封装了当点击开始,返回,取消,销毁的操作,可以参考我写的 3.真实项目时会用到网络请求,把Radom的随机数发到服务器,服务器做操作,最终发一个短信 4.最后就是我们要操作的短信内容里的数字信息了 我们用到内容观察者来观察数据发生变化,用内容提供都读取信息填到TextView上 //自动获取验证码实现步骤 public class SmsContent extends ContentObserver{ public static final String SMS_URI_INBOX="content://sms/inbox"; private Activity activity=null; private String smsContent=""; private EditText verifyText=null; public SmsContent(Activity activity,Handler handler,EditText verifyText){ super(handler); this.activity=activity; this.verifyText=verifyText; } SuppressWarnings("deprecation") Override public void onChange(boolean selfChange){ super.onChange(selfChange); Cursor cursor=null; //读取收件箱中指定号码的未读短信,按id排序,防止手机更改时间后读取短信混乱 cursor=activity.managedQuery(Uri.parse(SMS_URI_INBOX), new String[]{"_id","address","body","read"}, "address=?and read=?",new String[]{"10690278071714","0"}, "_id desc"); if(cursor!=null){//如果短信为未读模式 cursor.moveToFirst(); if(cursor.moveToFirst()){ //将未读改为已读模式 ContentValues values=new ContentValues(); values.put("read","1"); String smsbody=cursor.getString(cursor.getColumnIndex("body")); System.out.println("smsbody======================="+smsbody); String regEx="[^0-9]"; Pattern p=Pattern.compile(regEx); Matcher m=p.matcher(smsbody.toString()); //截取短信中的数字个数为3 smsContent=m.replaceAll("").trim().toString().substring(0,4); verifyText.setText(smsContent); } } } } 在方法中调用刚写的 //自动获取验证码,需要时调用下面两行 content=new SmsContent(this,new Handler(),verifyCodeEForget); //注册短信变化监听 this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"),true,content); 最后取消消毁内容提供者 Override protected void onDestroy(){ super.onDestroy(); this.getContentResolver().unregisterContentObserver(content); } 记的加权限,必要时配置清单文件 <!--读取短信--> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS"/>
上一篇:短信群发:为什么手机接收不到京东验证码?
下一篇:106短信群发平台代理嘉之元科技