Android開發:使用AutoInputAuthCode快速實現自動填寫驗證碼

MichaelX發表於2017-05-09

前言

該類庫的實現原理:《Android開發:實現APP自動填寫註冊驗證碼功能》。感興趣的可以看下。

專案地址:github.com/xiong-it/Au…,歡迎star/fork,或者issue,pr。

本文原創作者:MichaelX,個人掘金主頁地址:juejin.im/user/56efe6…. 轉載請註明來源

update
2017.07.07 AuthCode版本已更新至v1.0.1,github readme已更新。


AutoInputAuthCode使用介紹

在Android Studio開啟你的app module中的build.gradle,新增依賴:

dependencies {
   ...
   compile 'tech.michaelx.authcode:authcode:1.0.1' // 新增依賴
   ...
}複製程式碼

如果無法下載上述依賴,可以開啟你的專案根目錄下的build.gradle,新增maven倉庫地址

allprojects {
    repositories {
        jcenter()
        maven { url 'https://dl.bintray.com/xiong-it/AndroidRepo'} // 新增這行
    }
}複製程式碼

示範程式碼

AutoInputAuthCode是一個幫助Android開發者快速實現自動填寫驗證碼的類庫,客戶端示例程式碼如下:

CodeConfig config = new CodeConfig.Builder()
                        .codeLength(4) // 設定驗證碼長度
                        .smsFromStart(133) // 設定驗證碼傳送號碼前幾位數字
                        //.smsFrom(1690123456789) // 如果驗證碼傳送號碼固定,則可以設定驗證碼傳送完整號碼
                        .smsBodyStartWith("百度科技") // 設定驗證碼簡訊開頭文字
                        .smsBodyContains("驗證碼") // 設定驗證碼簡訊內容包含文字
                        .build();

AuthCode.getInstance().with(context).config(config).into(EditText);

// 在Activity的onDestroy回撥中呼叫該api手動釋放記憶體
@Override
protected void onDestroy() {
    super.onDestroy();
    // 防止未讀取到驗證碼導致記憶體洩露,手動回收記憶體
    AuthCode.getInstance().onDestroy();
}複製程式碼
  1. 通過單例獲取一個AuthCode物件;
  2. 提供一個上下文物件給AuthCode,放心,我會妥善處理你的上下文;
  3. 提供一個你的驗證碼特徵描述;
  4. 告訴AuthCode你想將驗證碼寫入哪個EditText.

搞定,收工!

效果圖

注意事項

自動填寫驗證碼需要讀取簡訊許可權,請在清單中新增許可權:

<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>複製程式碼

由於讀取簡訊在API 23(Android 6.0)上許可權級別是dangerous。所以還需要動態申請許可權,但是申請許可權需要依賴於Activity或者Fragment中的onRequestPermissionsResult()回撥,所以需要開發者自己實現。

可參考AutoInputAuthCode中sample的程式碼。

另外,因為筆者使用的驗證碼過程中只見過數字驗證碼,所以目前版本只支援數字驗證碼,不支援英文,和英文數字混合驗證碼。如過大家有必要,可以提issue或者留言,筆者考慮加上。

該庫實現原理可閱讀:《Android開發:實現APP自動填寫註冊驗證碼功能》

總結

該庫實際上被完成有一段時間了,一直在試著上傳jcenter,有空把上傳程式碼到jcenter總結下發出來,雖然上傳jcenter在網上教程挺多的,但是很多都不夠細節,容易誤解,我就是被坑的一個。

祝大家擼碼愉快!
專案地址:github.com/xiong-it/Au…,歡迎star/fork,或者issue,pr。

相關文章