android實現免費短信驗證

代碼地址以下:<br>http://www.demodashi.com/demo/12541.htmlhtml

###前言 獲取短信驗證碼的的第三方不少,今天介紹一個獲取短信驗證碼的demo,它有如下優點android

  1. 短信到達率幾乎100%
  2. 代碼通過我封裝,集成簡單
  3. 獲取短信驗證碼免費

下面對此demo的講解涉及如下內容:app

  1. 短信平臺使用簡介
  2. 短信驗證集成配置
  3. 短信驗證代碼封裝
  4. 倒計時類簡單講解
  5. 短信驗證在代碼中的使用
  6. 項目結構與效果圖

###實現過程 #####一.短信平臺使用簡介 短信平臺地址及此平臺發送短信驗證的特色在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大師代發,拒絕轉載,轉載須要做者受權

相關文章
相關標籤/搜索