該類庫的實現原理:《Android開發:實現APP自動填寫註冊驗證碼功能》。感興趣的能夠看下。 java
項目地址:github.com/xiong-it/Au…,歡迎star/fork,或者issue,pr。android
本文原創做者:MichaelX,我的掘金主頁地址:juejin.im/user/56efe6…. 轉載請註明來源git
update
2017.07.07 AuthCode版本已更新至v1.0.1,github readme已更新。github
在Android Studio打開你的app module中的build.gradle,添加依賴:api
dependencies {
...
compile 'tech.michaelx.authcode:authcode:1.0.1' // 添加依賴
...
}複製代碼
若是沒法下載上述依賴,能夠打開你的項目根目錄下的build.gradle,添加maven倉庫地址app
allprojects {
repositories {
jcenter()
maven { url 'https://dl.bintray.com/xiong-it/AndroidRepo'} // 添加這行
}
}複製代碼
AutoInputAuthCode是一個幫助Android開發者快速實現自動填寫驗證碼的類庫,客戶端示例代碼以下:maven
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();
}複製代碼
搞定,收工! ide
自動填寫驗證碼須要讀取短信權限,請在清單中添加權限:gradle
<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()回調,因此須要開發者本身實現。 ui
可參考AutoInputAuthCode中sample的代碼。
另外,由於筆者使用的驗證碼過程當中只見過數字驗證碼,因此目前版本只支持數字驗證碼,不支持英文,和英文數字混合驗證碼。如過你們有必要,能夠提issue或者留言,筆者考慮加上。
該庫實現原理可閱讀:《Android開發:實現APP自動填寫註冊驗證碼功能》
該庫實際上被完成有一段時間了,一直在試着上傳jcenter,有空把上傳代碼到jcenter總結下發出來,雖然上傳jcenter在網上教程挺多的,可是不少都不夠細節,容易誤解,我就是被坑的一個。
祝你們擼碼愉快!
項目地址:github.com/xiong-it/Au…,歡迎star/fork,或者issue,pr。