亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android實(shí)現(xiàn)自動(dòng)提取短信驗(yàn)證碼功能

 更新時(shí)間:2021年08月26日 11:18:50   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)自動(dòng)提取短信驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(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í)有所幫助。

相關(guān)文章

最新評(píng)論