Android實(shí)現(xiàn)自動提取短信驗(yàn)證碼功能
本文實(shí)例講解了Android自動提取短信驗(yàn)證碼解決方案,分享給大家供大家參考,具體內(nèi)容如下
主要功能及優(yōu)點(diǎn)
1.收到驗(yàn)證碼短信后,自動提取短信中的驗(yàn)證碼填寫到相應(yīng)輸入框
2.可指定一個號碼,只讀取與他有關(guān)短信,避免提取來源錯誤
3.利用正則表達(dá)式,可匹配各種類型驗(yàn)證碼
模塊集成關(guān)鍵步驟
將auto_getcode_demo中src包里的SMSContentObserver類復(fù)制到你的項(xiàng)目src包中
在SMSContentObserver中:
修改正則表達(dá)式內(nèi)容來匹配自己想要獲取的字符串
private String patternCoder = "\\d{4}"; //正則表達(dá)式
指定一個號碼,只讀取與他有關(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)鍵字符串,用來確認(rèn)短信內(nèi)容是我們想要去提取的
private boolean checkString(String message){ if(TextUtils.isEmpty(message)) return false; Pattern p = Pattern.compile("FinalShares"); //這個關(guān)鍵字符串可以自定義 Matcher matcher = p.matcher(message); if(matcher.find()) return true; return false; }
在MainActivity中:
注冊內(nèi)容觀察者,用來監(jiān)聽手機(jī)短信的變動
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); smsContentObserver = new SMSContentObserver(this, mHandler); // 創(chuàng)建1個對象 registerContentObservers() ; //注冊內(nèi)容觀察者 } private void registerContentObservers() { // ”表“內(nèi)容觀察者 ,通過測試我發(fā)現(xiàn)只能監(jiān)聽此Uri -----> content://sms // 監(jiān)聽不到其他的Uri 比如說 content://sms/outbox Uri smsUri = Uri.parse("content://sms"); getContentResolver().registerContentObserver(smsUri, true,smsContentObserver); }
創(chuàng)建一個handler來接收觀察者監(jiān)聽傳來的信息,當(dāng)接收到指定號碼短信時,自動獲得相應(yīng)驗(yàn)證碼并填寫到對應(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)
開發(fā)平臺:Android
語言: java
開發(fā)工具: eclipse
效果展示
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
- Android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊功能
- Android開發(fā)中通過手機(jī)號+短信驗(yàn)證碼登錄的實(shí)例代碼
- Android開發(fā)工程中集成mob短信驗(yàn)證碼功能的方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼獲取自動填寫功能(詳細(xì)版)
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動填寫功能
- Android獲取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)常見的驗(yàn)證碼輸入框?qū)嵗a
- Android自定義控件通用驗(yàn)證碼輸入框的實(shí)現(xiàn)
- Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼
相關(guān)文章
Android Studio 3.6安裝全過程及AVD安裝運(yùn)行步驟詳解
這篇文章主要介紹了Android Studio 3.6安裝全過程及AVD安裝運(yùn)行步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Android 應(yīng)用中插入廣告詳解及簡單實(shí)例
這篇文章主要介紹了Android 應(yīng)用中插入廣告詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10Android高級xml布局之輸入框EditText設(shè)計
這篇文章主要為大家詳細(xì)介紹了Android高級xml布局之輸入框EditText設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android 顯示和隱藏輸入法實(shí)現(xiàn)代碼
本文所要介紹的這個方法可以轉(zhuǎn)換軟件輸入法在窗體中的顯示狀態(tài),具體實(shí)現(xiàn)代碼如下,感興趣的你可以參考下哈,希望可以幫助到你2013-03-03Android 下載網(wǎng)絡(luò)圖片并顯示到本地
本文主要介紹了Android實(shí)現(xiàn)下載網(wǎng)絡(luò)圖片并顯示到本地功能的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧2017-03-03Android實(shí)現(xiàn)手勢滑動和簡單動畫效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手勢滑動和簡單動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05Android筆記之:深入ViewStub的應(yīng)用
本篇文章是對Android中ViewStub的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android 對手機(jī)網(wǎng)絡(luò)的檢測和監(jiān)聽的方法示例
本篇文章主要介紹了Android 對手機(jī)網(wǎng)絡(luò)的檢測和監(jiān)聽的方法示例,主要使用BroadcastReceiver廣播接收器來接收網(wǎng)絡(luò)狀態(tài),現(xiàn)在分享給大家,也給大家做個參考,有興趣的一起來了解一下2018-03-03