前言
該類庫的實現原理:《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();
}複製程式碼
- 通過單例獲取一個AuthCode物件;
- 提供一個上下文物件給AuthCode,放心,我會妥善處理你的上下文;
- 提供一個你的驗證碼特徵描述;
- 告訴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。