Android實(shí)現(xiàn)自動(dòng)提取短信驗(yàn)證碼功能
本文實(shí)例講解了Android自動(dòng)提取短信驗(yàn)證碼解決方案,分享給大家供大家參考,具體內(nèi)容如下
主要功能及優(yōu)點(diǎn)
1.收到驗(yàn)證碼短信后,自動(dòng)提取短信中的驗(yàn)證碼填寫(xiě)到相應(yīng)輸入框
2.可指定一個(gè)號(hào)碼,只讀取與他有關(guān)短信,避免提取來(lái)源錯(cuò)誤
3.利用正則表達(dá)式,可匹配各種類(lèi)型驗(yàn)證碼
模塊集成關(guān)鍵步驟
將auto_getcode_demo中src包里的SMSContentObserver類(lèi)復(fù)制到你的項(xiàng)目src包中

在SMSContentObserver中:
修改正則表達(dá)式內(nèi)容來(lái)匹配自己想要獲取的字符串
private String patternCoder = "\\d{4}"; //正則表達(dá)式
指定一個(gè)號(hào)碼,只讀取與他有關(guān)的新消息。
private boolean checkPhone(String phone) {
// TODO Auto-generated method stub
String c_phone = "10690032980066";
if(c_phone.equals(phone) )
return true;
return false;
}
指定一關(guān)鍵字符串,用來(lái)確認(rèn)短信內(nèi)容是我們想要去提取的
private boolean checkString(String message){
if(TextUtils.isEmpty(message))
return false;
Pattern p = Pattern.compile("FinalShares"); //這個(gè)關(guān)鍵字符串可以自定義
Matcher matcher = p.matcher(message);
if(matcher.find())
return true;
return false;
}
在MainActivity中:
注冊(cè)內(nèi)容觀察者,用來(lái)監(jiān)聽(tīng)手機(jī)短信的變動(dòng)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
smsContentObserver = new SMSContentObserver(this, mHandler); // 創(chuàng)建1個(gè)對(duì)象
registerContentObservers() ; //注冊(cè)內(nèi)容觀察者
}
private void registerContentObservers() {
// ”表“內(nèi)容觀察者 ,通過(guò)測(cè)試我發(fā)現(xiàn)只能監(jiān)聽(tīng)此Uri -----> content://sms
// 監(jiān)聽(tīng)不到其他的Uri 比如說(shuō) content://sms/outbox
Uri smsUri = Uri.parse("content://sms");
getContentResolver().registerContentObserver(smsUri, true,smsContentObserver);
}
創(chuàng)建一個(gè)handler來(lái)接收觀察者監(jiān)聽(tīng)傳來(lái)的信息,當(dāng)接收到指定號(hào)碼短信時(shí),自動(dòng)獲得相應(yīng)驗(yàn)證碼并填寫(xiě)到對(duì)應(yīng)控件
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_OUTBOXCONTENT:
String outbox = smsContentObserver.getstrContent();
etSmsoutbox.setText(outbox);
break;
default:
break;
}
}
};
在AndroidManifest中添加相應(yīng)權(quán)限
<uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/>
環(huán)境相關(guān)
開(kāi)發(fā)平臺(tái):Android
語(yǔ)言: java
開(kāi)發(fā)工具: eclipse
效果展示

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- Android如何通過(guò)手機(jī)獲取驗(yàn)證碼來(lái)完成注冊(cè)功能
- Android開(kāi)發(fā)中通過(guò)手機(jī)號(hào)+短信驗(yàn)證碼登錄的實(shí)例代碼
- Android開(kāi)發(fā)工程中集成mob短信驗(yàn)證碼功能的方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼獲取自動(dòng)填寫(xiě)功能(詳細(xì)版)
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)填寫(xiě)功能
- Android獲取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)常見(jiàn)的驗(yàn)證碼輸入框?qū)嵗a
- Android自定義控件通用驗(yàn)證碼輸入框的實(shí)現(xiàn)
- Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼
相關(guān)文章
Android實(shí)現(xiàn)圖片輪播效果的兩種方法
android圖片輪播效果非常漂亮,在程序開(kāi)發(fā)中也經(jīng)常用到,本文給大家分享android實(shí)現(xiàn)圖片輪播效果的幾種方法,對(duì)android實(shí)現(xiàn)圖片輪播相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12
Android.mk文件中添加第三方j(luò)ar文件的方法
這篇文章主要介紹了Android.mk文件中添加第三方j(luò)ar文件及引用第三方j(luò)ar包的方法,需要的朋友可以參考下2018-01-01
Android自定義View控件實(shí)現(xiàn)多種水波紋漣漪擴(kuò)散效果
這篇文章主要給大家介紹了關(guān)于Android自定義View控件實(shí)現(xiàn)多種水波紋漣漪擴(kuò)散效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
Android自定義view實(shí)現(xiàn)車(chē)載可調(diào)整軌跡線(xiàn)
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)車(chē)載可調(diào)整軌跡線(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
Android長(zhǎng)按imageview把圖片保存到本地的實(shí)例代碼
本文通過(guò)代碼給大家介紹了Android長(zhǎng)按imageview把圖片保存到本地的實(shí)現(xiàn)方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-12-12
實(shí)例講解Android多線(xiàn)程應(yīng)用開(kāi)發(fā)中Handler的使用
這篇文章主要介紹了Android多線(xiàn)程應(yīng)用開(kāi)發(fā)中Handler的使用,Handle主要被用來(lái)更新UI和處理消息,需要的朋友可以參考下2016-01-01
淺談Android應(yīng)用安全防護(hù)和逆向分析之a(chǎn)pk反編譯
我們有時(shí)候在某個(gè)app上見(jiàn)到某個(gè)功能,某個(gè)效果蠻不錯(cuò)的,我們想看看對(duì)方的思路怎么走的,這時(shí)候,我們就可以通過(guò)反編譯來(lái)編譯該apk,拿到代碼,進(jìn)行分析。2021-06-06

