代碼地址以下:<br>http://www.demodashi.com/demo/12541.htmlhtml
###前言 獲取短信驗證碼的的第三方不少,今天介紹一個獲取短信驗證碼的demo,它有如下優點android
- 短信到達率幾乎100%
- 代碼通過我封裝,集成簡單
- 獲取短信驗證碼免費
下面對此demo的講解涉及如下內容:app
- 短信平臺使用簡介
- 短信驗證集成配置
- 短信驗證代碼封裝
- 倒計時類簡單講解
- 短信驗證在代碼中的使用
- 項目結構與效果圖
###實現過程 #####一.短信平臺使用簡介 短信平臺地址及此平臺發送短信驗證的特色在demo中的 MobSDKHelper類的最上面有詳細解釋,這裏就再也不贅述了。maven
#####二.短信驗證集成配置 ######2.1 在你的project的build.gradle中添加配置ide
buildscript { repositories { google() jcenter() //添加MobSDK的maven地址 maven { url "http://mvn.mob.com/android" } } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' // 註冊MobSDK classpath 'com.mob.sdk:MobSDK:+' } }
######2.2 在你的app moduel的build.gradle中添加配置gradle
// 添加插件 apply plugin: 'com.mob.sdk' // 在MobSDK的擴展中註冊SMSSDK的相關信息 MobSDK { appKey "244e915baae1a" appSecret "b5eb7df4657dbde9b36b673cef463a3e" SMSSDK { // gui false } }
短信驗證的獲取有兩種方式,分爲有界面集成和無界面集成,上面代碼中的「gui false」即爲禁用有界面集成的代碼,也就是設置爲false後,只能使用無界面集成方法進行獲取驗證碼ui
#####三.短信驗證代碼封裝 短信驗證碼的獲取及驗證,我封裝到了MobSDKHelper類中,下面對MobSDKHelper中涉及要用到的方法作以解釋this
請求獲取短信驗證碼,你能夠這樣,其中phone爲你的設置的手機號碼,如"18507123357":google
MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() { @Override public void success(String phone) { //請求驗證碼成功的處理邏輯 //...... } @Override public void failed() { //請求驗證碼失敗的處理邏輯 //...... } });
手機收到驗證碼並填入editText中,點擊註冊來驗證驗證碼是否正確,你能夠這樣,其中phone爲電話號碼,code爲收到的驗證碼:url
MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() { @Override public void success(String phone) { //驗證成功,作註冊邏輯 //...... } @Override public void failed() { //驗證失敗,作失敗處理邏輯 //...... } });
註銷短信驗證服務,通常在activity的onDestroy()方法中進行,註銷你能夠相似這樣處理:
@Override protected void onDestroy(){ MobSDKHelper.getInstance().unRegistSMSS(); super.onDestroy(); }
#####四.倒計時類簡單講解 短信驗證涉及到倒計時的問題,我封裝了一個倒計時類CountDownTimerHelper,下面對其使用作講解
CountDownTimerHelper繼承於CountDownTimer類,初始化的話,你能夠這樣:
//初始化 mCountDownTimerHelper=new CountDownTimerHelper(context,button,millisInFuture,countDownInterval); //解釋:context爲上下文 //button 爲點擊獲取驗證碼的Button對象 //millisInFuture 爲總共須要倒計時的時間,單位爲毫秒 //countDownInterval 爲倒計時時間間隔,單位毫秒
開啓倒計時,你能夠以下處理:
mCountDownTimerHelper.startTimer();
取消倒計時,通常在activity的onDestroy()方法中進行,你能夠相似以下處理
@Override protected void onDestroy(){ if(mCountDownTimerHelper!=null){ mCountDownTimerHelper.cancelTimer(); } super.onDestroy(); }
#####五.短信驗證在代碼中的使用 下面簡單貼出在MainActivity中代碼的使用範例:
public class MainActivity extends BaseActivity{ private EditText mEdtPhone; private EditText mEdtCode; private Button mBtnGet; private Button mBtnConfirm; private CountDownTimerHelper mCountDownTimerHelper; @Override protected int getContentViewId() { return R.layout.activity_main; } @Override protected void initView() { mEdtPhone=findViewById(R.id.edt_phone); mEdtCode=findViewById(R.id.edt_code); mBtnGet=findViewById(R.id.btn_get); mBtnConfirm=findViewById(R.id.btn_confirm); } @Override protected void initData() { mCountDownTimerHelper=new CountDownTimerHelper(MainActivity.this,mBtnGet,60000,1000); } @Override protected void setListener() { mBtnGet.setOnClickListener(this); mBtnConfirm.setOnClickListener(this); } @Override public void onClick(View v) { String phone=mEdtPhone.getText().toString().trim(); String code=mEdtCode.getText().toString().trim(); switch (v.getId()) { case R.id.btn_get://發送 mCountDownTimerHelper.startTimer(); MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() { @Override public void success(String phone) { //請求驗證碼成功的處理邏輯 //...... LogUtil.e(MainActivity.class,"===phone="+phone); } @Override public void failed() { //請求驗證碼失敗的處理邏輯 //...... LogUtil.e(MainActivity.class,"===發送失敗了====="); } }); break; case R.id.btn_confirm://提交 MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() { @Override public void success(String phone) { ToastUtil.showShortToast(MainActivity.this,"====驗證成功==="); LogUtil.e(MainActivity.class,"===驗證成功===="); //驗證成功,作註冊邏輯 //...... } @Override public void failed() { ToastUtil.showShortToast(MainActivity.this,"====驗證失敗==="); LogUtil.e(MainActivity.class,"===驗證失敗====="); } }); break; default: break; } } @Override protected void onDestroy(){ MobSDKHelper.getInstance().unRegistSMSS(); if(mCountDownTimerHelper!=null){ mCountDownTimerHelper.cancelTimer(); } super.onDestroy(); }
#####六.項目結構與運行效果圖
項目結構圖
運行效果圖
android實現免費短信驗證
代碼地址以下:<br>http://www.demodashi.com/demo/12541.html
注:本文著做權歸做者,由demo大師代發,拒絕轉載,轉載須要做者受權