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)證碼填寫到相應(yīng)輸入框
2.可指定一個(gè)號(hào)碼,只讀取與他有關(guān)短信,避免提取來(lái)源錯(cuò)誤
3.利用正則表達(dá)式,可匹配各種類型驗(yàn)證碼
模塊集成關(guān)鍵步驟
將auto_getcode_demo中src包里的SMSContentObserver類復(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)證碼并填寫到對(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)填寫功能(詳細(xì)版)
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)填寫功能
- 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 Studio 3.6安裝全過(guò)程及AVD安裝運(yùn)行步驟詳解
這篇文章主要介紹了Android Studio 3.6安裝全過(guò)程及AVD安裝運(yùn)行步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Android 應(yīng)用中插入廣告詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android 應(yīng)用中插入廣告詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10Android高級(jí)xml布局之輸入框EditText設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了Android高級(jí)xml布局之輸入框EditText設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android 顯示和隱藏輸入法實(shí)現(xiàn)代碼
本文所要介紹的這個(gè)方法可以轉(zhuǎn)換軟件輸入法在窗體中的顯示狀態(tài),具體實(shí)現(xiàn)代碼如下,感興趣的你可以參考下哈,希望可以幫助到你2013-03-03Android 下載網(wǎng)絡(luò)圖片并顯示到本地
本文主要介紹了Android實(shí)現(xiàn)下載網(wǎng)絡(luò)圖片并顯示到本地功能的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-03-03Android實(shí)現(xiàn)手勢(shì)滑動(dòng)和簡(jiǎn)單動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手勢(shì)滑動(dòng)和簡(jiǎn)單動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Android筆記之:深入ViewStub的應(yīng)用
本篇文章是對(duì)Android中ViewStub的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android 對(duì)手機(jī)網(wǎng)絡(luò)的檢測(cè)和監(jiān)聽(tīng)的方法示例
本篇文章主要介紹了Android 對(duì)手機(jī)網(wǎng)絡(luò)的檢測(cè)和監(jiān)聽(tīng)的方法示例,主要使用BroadcastReceiver廣播接收器來(lái)接收網(wǎng)絡(luò)狀態(tài),現(xiàn)在分享給大家,也給大家做個(gè)參考,有興趣的一起來(lái)了解一下2018-03-03