編輯:關於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
效果展示

以上就是本文的全部內容,希望對大家的學習有所幫助。
Android初級教程以動畫的形式彈出窗體
這一篇集合動畫知識和彈出窗體知識,綜合起來以動畫的形式彈出窗體。動畫的知識前幾篇已經做過詳細的介紹,可翻閱前面寫的有關動畫博文。先簡單介紹一下彈出窗體效果的方法:首先,需
Android JSON解析庫Gson和Fast-json的使用對比和圖書列表小案例
繼上篇json解析,我用了原生的json解析,但是在有些情況下我們不得不承認,一些優秀的json解析框架確實十分的好用,今天我們為了博客的保質保量,也就不分開寫,我們直接
Android人臉識別技術
Android人臉識別技術用到的底層庫:android/external/neven/,framework 層:frameworks/base/media/java/an
Android性能優化之路(一)
引言什麼是APP性能優化?一言以蔽之,就是使APP運行的更高,更快,更強,更穩定。在代碼不夠壯健的時候,APP裡的問題是出於熵增狀態,當熵增到達一個臨界點時,就會引發OO