成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在Android中實(shí)現(xiàn)自動(dòng)填寫短信驗(yàn)證碼

本篇文章為大家展示了怎么在Android中實(shí)現(xiàn)自動(dòng)填寫短信驗(yàn)證碼,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都效果圖設(shè)計(jì)等,在重慶網(wǎng)站建設(shè)、全網(wǎng)整合營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

1.布局的xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 >

 <EditText 
 android:id="@+id/ed_smsVaild"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:hint="輸入驗(yàn)證碼"/>
</LinearLayout>

2.MainActivity中主要就是注冊(cè)和撤銷內(nèi)容觀察者

public class MainActivity extends Activity {

 public static final int SMSCODE = 1 ;

 SmsObserver smsObserver;

 private EditText editText;
 /**
 * 一個(gè)handle用于更新主ui中的Edittext
 */
 private Handler mHandler = new Handler(){
 public void handleMessage(android.os.Message msg) {

  if (msg.what == SMSCODE) {
  String codeString = (String)msg.obj;
  editText.setText(codeString);
  }

 };
 };

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 editText = (EditText) findViewById(R.id.ed_smsVaild);
 //創(chuàng)建內(nèi)容觀察者的對(duì)象
 smsObserver = new SmsObserver(MainActivity.this, mHandler);
 //短信的uri為content://sms
 Uri uri = Uri.parse("content://sms");
 //注冊(cè)內(nèi)容觀察者
 this.getContentResolver().registerContentObserver(uri, true, smsObserver);
 }
 /**
 * 不用的時(shí)候?qū)?nèi)容觀察者手動(dòng)撤銷
 */
 @Override
 protected void onPause() {
 getContentResolver().unregisterContentObserver(smsObserver);
 }


}

3.最關(guān)鍵的內(nèi)容觀察者

public class SmsObserver extends ContentObserver{

 private Context mContext;
 private Handler mHandler;

 /**
 * 實(shí)現(xiàn)構(gòu)造方法,context用于獲得上下文,handle用于發(fā)送消息,便于更新ui
 * @param context
 * @param handler
 */
 public SmsObserver(Context context,Handler handler){
 super(handler);
 this.mContext = context;
 this.mHandler = handler;
 }

 /**
 * 重寫onchange()方法
 */
 @Override
 public void onChange(boolean selfChange, Uri uri) {

 String code = "";

 Log.i("Info", "sms has changed");
 Log.i("Info", uri.toString());
 /**
  * 當(dāng)uri的內(nèi)容為content://sms/raw時(shí),這個(gè)短信是不存在數(shù)據(jù)庫中的,
  * 只有第二次的時(shí)候才寫入數(shù)據(jù)庫
  */
 if (uri.toString().equals("content://sms/raw")) {
  return;
 }
 //收件箱的uri
 Uri inboxUri = Uri.parse("content://sms/inbox");
 //查詢短信,按時(shí)間降序進(jìn)行排序
 Cursor cursor = mContext.getContentResolver().query(inboxUri, null, null, null, "date desc");
 if (cursor != null) {
  if (cursor.moveToFirst()) {
  //讀出發(fā)件人和短信內(nèi)容
  String address = cursor.getString(cursor.getColumnIndex("address"));
  String body = cursor.getString(cursor.getColumnIndex("body"));
  Log.i("info", "發(fā)件人為:"+address +""+"短信內(nèi)容為"+body);
  //正則表達(dá)式d{6}的意思是連續(xù)6位是數(shù)字的就提取出來
  Pattern pattern = Pattern.compile("(\\d{6})");
  //對(duì)短信的內(nèi)容進(jìn)行匹配
  Matcher matcher = pattern.matcher(body);
  if (matcher.find()) {
   code = matcher.group(0);
   Log.i("Info", code);
   //將code發(fā)送到主線程
   Message msMessage = new Message();
   msMessage.what = MainActivity.SMSCODE;
   msMessage.obj = code;
   mHandler.sendMessage(msMessage);
  }
  }
  cursor.close();

 }
 }

}

可以在正則表達(dá)式之前加入一句判斷,這樣只有特定的號(hào)碼發(fā)送過來的短信才會(huì)進(jìn)行讀取。

if(!address.equals("XXXXXXXXXXXX")){
 return;
}

Android是什么

Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。

上述內(nèi)容就是怎么在Android中實(shí)現(xiàn)自動(dòng)填寫短信驗(yàn)證碼,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁標(biāo)題:怎么在Android中實(shí)現(xiàn)自動(dòng)填寫短信驗(yàn)證碼
分享鏈接:http://jinyejixie.com/article8/ghhcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、虛擬主機(jī)網(wǎng)站導(dǎo)航、微信小程序服務(wù)器托管、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
乌审旗| 太仆寺旗| 普陀区| 兴化市| 东安县| 黔西县| 揭东县| 江门市| 抚顺县| 绥德县| 定南县| 东城区| 寿光市| 武山县| 汝州市| 志丹县| 句容市| 阳江市| 临潭县| 武夷山市| 宝山区| 昌乐县| 刚察县| 永和县| 宁津县| 咸丰县| 德钦县| 大同市| 微博| 和顺县| 涿州市| 山西省| 白朗县| 盐津县| 义马市| 阿尔山市| 定州市| 临洮县| 彭阳县| 邵东县| 晋中市|