一、簡介
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了尋甸免費建站歡迎大家使用!
Android的短信驗證碼自動輸入庫,內(nèi)嵌自動申請權限,兼容性高,支持多項配置。
短信驗證碼長度
驗證碼類型(大寫字母、小寫字母、大小寫字母、數(shù)字、數(shù)字字母)
短信內(nèi)容過濾
發(fā)送者號碼過濾
短信權限回調(diào),失敗重新操作等等
消息回調(diào),可自行處理
Github地址: https://github.com/tpnet/AutoVerifyCode
二、使用
2.1 最簡單的使用
適用在驗證碼為數(shù)字,而且驗證碼為4-6位。
AutoVerifyCode.getInstance() .with(MainActivity.this) .into(R.id.et_code) //要輸入的編輯框 .start(); //開始
2.2 多種屬性配置
/** * 多種屬性設置 * @param v */ public void complex(View v){ AutoVerifyCodeConfig config = new AutoVerifyCodeConfig.Builder() .codeLength(6) // 驗證碼長度 .smsCodeType(AutoVerifyCodeConfig.CODE_TYPE_NUMBER) //驗證碼類型 .smsSenderStart("650") // 驗證碼發(fā)送者號碼的前幾位數(shù)字 .smsSender("6505551212") // 驗證碼發(fā)送者的號碼 .smsBodyStartWith("【守護APP】") // 設置驗證碼短信開頭文字,固定可以設置 .smsBodyContains("重置") // 設置驗證碼短信內(nèi)容包含文字,每個功能包含不一樣,例如注冊、重置密碼 .build(); AutoVerifyCode.getInstance() .with(MainActivity.this) .config(config) //驗證碼選項配置 .smsCallback(new MessageCallBack()) //短信內(nèi)容回調(diào) .permissionCallback(new PerCallBack()) //短信短信回調(diào) .inputCompleteCallback(new OnInputCompleteListener() { @Override public void onInputComplete(String text) { //自動輸入完畢,可以進行登錄等等操作 Log.e("@@","自動輸入驗證碼完成"+text); } }) .into((EditText) findViewById(R.id.et_code)) //要輸入的View .start(); //開始 } /** * 獲取短信回調(diào)接口 * */ class MessageCallBack extends SmsCallBack{ @Override public void onGetCode(String code) { Log.e("@@","驗證碼為:"+code); } @Override public void onGetMessage(String mess) { Log.e("@@","短信內(nèi)容為:"+mess); } @Override public void onGetSender(@Nullable String phoneNumber) { Log.e("@@","發(fā)送者為:"+phoneNumber); } } class PerCallBack implements PermissionCallBack{ @Override public void onSuccess() { //獲取短信權限成功 Log.e("@@","獲取短信權限成功:"); } @Override public boolean onFail() { //獲取短信權限失敗 Toast.makeText(MainActivity.this,"拒絕獲取短信權限",Toast.LENGTH_SHORT).show(); Log.e("@@","獲取短信權限失敗,返回真則重試獲取權限,或者你自己手動獲取了之后再返回真也行"); return false; } }
2.3 釋放
因為一般只用一次,所以在頁面銷毀的地方釋放內(nèi)存。
@Override protected void onDestroy() { super.onDestroy(); //因為一般只用一次,所以頁面銷毀就釋放。 AutoVerifyCode.getInstance().release(); }
三、原理
主要利用兩種方法獲取短信
短信數(shù)據(jù)庫監(jiān)聽: 見SmsObserver
短信廣播監(jiān)聽: 見SmsReceiver
然后利用Service實現(xiàn)這兩種方法。注釋都在代碼上面了,挺簡單的。 就不詳細講了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。