欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自動(dòng)獲取輸入短信驗(yàn)證碼庫(kù)AutoVerifyCode詳解

 更新時(shí)間:2017年07月24日 11:42:18   作者:tpnet  
這篇文章主要為大家詳細(xì)介紹了Android自動(dòng)獲取輸入短信驗(yàn)證碼庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、簡(jiǎn)介

Android的短信驗(yàn)證碼自動(dòng)輸入庫(kù),內(nèi)嵌自動(dòng)申請(qǐng)權(quán)限,兼容性高,支持多項(xiàng)配置。

短信驗(yàn)證碼長(zhǎng)度
驗(yàn)證碼類(lèi)型(大寫(xiě)字母、小寫(xiě)字母、大小寫(xiě)字母、數(shù)字、數(shù)字字母)
短信內(nèi)容過(guò)濾
發(fā)送者號(hào)碼過(guò)濾
短信權(quán)限回調(diào),失敗重新操作等等
消息回調(diào),可自行處理

Github地址: https://github.com/tpnet/AutoVerifyCode

二、使用

2.1 最簡(jiǎn)單的使用

適用在驗(yàn)證碼為數(shù)字,而且驗(yàn)證碼為4-6位。

AutoVerifyCode.getInstance()
    .with(MainActivity.this)
    .into(R.id.et_code) //要輸入的編輯框
    .start();  //開(kāi)始

2.2 多種屬性配置

/**
  * 多種屬性設(shè)置
  * @param v
  */
 public void complex(View v){
  AutoVerifyCodeConfig config = new AutoVerifyCodeConfig.Builder()
    .codeLength(6) // 驗(yàn)證碼長(zhǎng)度
    .smsCodeType(AutoVerifyCodeConfig.CODE_TYPE_NUMBER) //驗(yàn)證碼類(lèi)型
    .smsSenderStart("650") // 驗(yàn)證碼發(fā)送者號(hào)碼的前幾位數(shù)字
    .smsSender("6505551212") // 驗(yàn)證碼發(fā)送者的號(hào)碼
    .smsBodyStartWith("【守護(hù)APP】") // 設(shè)置驗(yàn)證碼短信開(kāi)頭文字,固定可以設(shè)置
    .smsBodyContains("重置") // 設(shè)置驗(yàn)證碼短信內(nèi)容包含文字,每個(gè)功能包含不一樣,例如注冊(cè)、重置密碼
    .build();

  AutoVerifyCode.getInstance()
    .with(MainActivity.this)
    .config(config) //驗(yàn)證碼選項(xiàng)配置
    .smsCallback(new MessageCallBack()) //短信內(nèi)容回調(diào)
    .permissionCallback(new PerCallBack()) //短信短信回調(diào)
    .inputCompleteCallback(new OnInputCompleteListener() {
     @Override
     public void onInputComplete(String text) {
      //自動(dòng)輸入完畢,可以進(jìn)行登錄等等操作
      Log.e("@@","自動(dòng)輸入驗(yàn)證碼完成"+text);

     }
    })
    .into((EditText) findViewById(R.id.et_code)) //要輸入的View
    .start();  //開(kāi)始
 }



 /**
  * 獲取短信回調(diào)接口
  * 
  */
 class MessageCallBack extends SmsCallBack{
  @Override
  public void onGetCode(String code) {
   Log.e("@@","驗(yàn)證碼為:"+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() {
   //獲取短信權(quán)限成功
   Log.e("@@","獲取短信權(quán)限成功:");
  }

  @Override
  public boolean onFail() {
   //獲取短信權(quán)限失敗
   Toast.makeText(MainActivity.this,"拒絕獲取短信權(quán)限",Toast.LENGTH_SHORT).show();
   Log.e("@@","獲取短信權(quán)限失敗,返回真則重試獲取權(quán)限,或者你自己手動(dòng)獲取了之后再返回真也行");

   return false;
  }
 }

2.3 釋放

因?yàn)橐话阒挥靡淮?所以在頁(yè)面銷(xiāo)毀的地方釋放內(nèi)存。

@Override
 protected void onDestroy() {
  super.onDestroy();
  //因?yàn)橐话阒挥靡淮?,所以?yè)面銷(xiāo)毀就釋放。
  AutoVerifyCode.getInstance().release();
 }


三、原理

主要利用兩種方法獲取短信

短信數(shù)據(jù)庫(kù)監(jiān)聽(tīng): 見(jiàn)SmsObserver
短信廣播監(jiān)聽(tīng): 見(jiàn)SmsReceiver

然后利用Service實(shí)現(xiàn)這兩種方法。注釋都在代碼上面了,挺簡(jiǎn)單的。 就不詳細(xì)講了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論