編輯:關於Android編程
本文實例講解了Android自動提取短信驗證碼解決方案,分享給大家供大家參考,具體內容如下
主要功能及優點
1.收到驗證碼短信後,自動提取短信中的驗證碼填寫到相應輸入框
2.可指定一個號碼,只讀取與他有關短信,避免提取來源錯誤
3.利用正則表達式,可匹配各種類型驗證碼
模塊集成關鍵步驟
將auto_getcode_demo中src包裡的SMSContentObserver類復制到你的項目src包中
在SMSContentObserver中:
修改正則表達式內容來匹配自己想要獲取的字符串
private String patternCoder = "\\d{4}"; //正則表達式
指定一個號碼,只讀取與他有關的新消息。
private boolean checkPhone(String phone) { // TODO Auto-generated method stub String c_phone = "10690032980066"; if(c_phone.equals(phone) ) return true; return false; }
指定一關鍵字符串,用來確認短信內容是我們想要去提取的
private boolean checkString(String message){ if(TextUtils.isEmpty(message)) return false; Pattern p = Pattern.compile("FinalShares"); //這個關鍵字符串可以自定義 Matcher matcher = p.matcher(message); if(matcher.find()) return true; return false; }
在MainActivity中:
注冊內容觀察者,用來監聽手機短信的變動
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); smsContentObserver = new SMSContentObserver(this, mHandler); // 創建1個對象 registerContentObservers() ; //注冊內容觀察者 } private void registerContentObservers() { // ”表“內容觀察者 ,通過測試我發現只能監聽此Uri -----> content://sms // 監聽不到其他的Uri 比如說 content://sms/outbox Uri smsUri = Uri.parse("content://sms"); getContentResolver().registerContentObserver(smsUri, true,smsContentObserver); }
創建一個handler來接收觀察者監聽傳來的信息,當接收到指定號碼短信時,自動獲得相應驗證碼並填寫到對應控件
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中添加相應權限
<uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/>
環境相關
開發平台:Android
語言: java
開發工具: eclipse
效果展示
以上就是本文的全部內容,希望對大家的學習有所幫助。
這一篇集合動畫知識和彈出窗體知識,綜合起來以動畫的形式彈出窗體。動畫的知識前幾篇已經做過詳細的介紹,可翻閱前面寫的有關動畫博文。先簡單介紹一下彈出窗體效果的方法:首先,需
繼上篇json解析,我用了原生的json解析,但是在有些情況下我們不得不承認,一些優秀的json解析框架確實十分的好用,今天我們為了博客的保質保量,也就不分開寫,我們直接
Android人臉識別技術用到的底層庫:android/external/neven/,framework 層:frameworks/base/media/java/an
引言什麼是APP性能優化?一言以蔽之,就是使APP運行的更高,更快,更強,更穩定。在代碼不夠壯健的時候,APP裡的問題是出於熵增狀態,當熵增到達一個臨界點時,就會引發OO