Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現自動提取短信驗證碼功能

Android實現自動提取短信驗證碼功能

編輯:關於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

效果展示

以上就是本文的全部內容,希望對大家的學習有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved