國際驗證碼接口發(fā)布驗證碼有哪些好處?
2020-10-20 00:00:00
來源:http://www.yzdtdq.net.cn/
點擊:3269
喜歡:0
國際驗證碼接口開發(fā):短信驗證碼如何自動填寫?項目中提高體驗一般在短信驗證的時候會自動填充驗證碼,接下來我們就實現(xiàn)一把,界面就是這樣主要以實現(xiàn)邏輯為主。首先點擊驗證碼發(fā)一個定時器。這里用到CountDownTimer這個類完成定時器,點擊發(fā)送驗證碼隨機生成一個Radom數(shù)Math.Radom()*9000+1000;

在這里花費我大量時間,但是對知識的渴求還是摸爬滾打讓我明白了問題,java和kotlit交互起來還是有問題嘛,表示踩坑很苦逼 /*thread{Runnable{ SystemClock.sleep(4000) mCountDownTimer!!.ancleTimers() }}.start()*/這里是調用的Kotlin的thread導致我想要的效果實現(xiàn)不了 Thread(Runnable{ SystemClock.sleep(4000) mCountDownTimer!!.ancleTimers() }).start() 寫到這里把倒計時的效果寫出來了,然后們看自動填寫短信內容是怎么回事,我們再梳理下邏輯 1.寫布局 2.用CountDownTImer做個定時器,里面兩個方法一個onTick,一個onFinish()我是用接口回調自己封裝了當點擊開始,返回,取消,銷毀的操作,可以參考我寫的 3.真實項目時會用到網(wǎng)絡請求,把Radom的隨機數(shù)發(fā)到服務器,服務器做操作,最終發(fā)一個短信 4.最后就是我們要操作的短信內容里的數(shù)字信息了 我們用到內容觀察者來觀察數(shù)據(jù)發(fā)生變化,用內容提供都讀取信息填到TextView上 //自動獲取驗證碼實現(xiàn)步驟 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()); //截取短信中的數(shù)字個數(shù)為3 smsContent=m.replaceAll("").trim().toString().substring(0,4); verifyText.setText(smsContent); } } } } 在方法中調用剛寫的 //自動獲取驗證碼,需要時調用下面兩行 content=new SmsContent(this,new Handler(),verifyCodeEForget); //注冊短信變化監(jiān)聽 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"/>
上一篇:短信群發(fā):為什么手機接收不到京東驗證碼?
下一篇:106短信群發(fā)平臺代理嘉之元科技