android實現免費短信驗證


代碼地址如下:
http://www.demodashi.com/demo/12541.html

前言

獲取短信驗證碼的的第三方很多,今天介紹一個獲取短信驗證碼的demo,它有以下優勢

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

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

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

實現過程

一.短信平台使用簡介

短信平台地址及此平台發送短信驗證的特點在demo中的
MobSDKHelper類的最上面有詳細解釋,這里就不再贅述了。

二.短信驗證集成配置
2.1 在你的project的build.gradle中添加配置
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中添加配置
// 添加插件
apply plugin: 'com.mob.sdk'

// 在MobSDK的擴展中注冊SMSSDK的相關信息
MobSDK {
    appKey "244e915baae1a"
    appSecret "b5eb7df4657dbde9b36b673cef463a3e"

    SMSSDK {
//        gui false
    }
}

短信驗證的獲取有兩種方式,分為有界面集成和無界面集成,上面代碼中的“gui false”即為禁用有界面集成的代碼,也就是設置為false后,只能使用無界面集成方法進行獲取驗證碼

三.短信驗證代碼封裝

短信驗證碼的獲取及驗證,我封裝到了MobSDKHelper類中,下面對MobSDKHelper中涉及要用到的方法做以解釋

請求獲取短信驗證碼,你可以這樣,其中phone為你的設置的手機號碼,如"18507123357":

 MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() {
                    @Override
                    public void success(String phone) {
                        //請求驗證碼成功的處理邏輯
                        //......
                    }

                    @Override
                    public void failed() {
                        //請求驗證碼失敗的處理邏輯
                        //......
                    }
                });

手機收到驗證碼並填入editText中,點擊注冊來驗證驗證碼是否正確,你可以這樣,其中phone為電話號碼,code為收到的驗證碼:

  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實現免費短信驗證

代碼地址如下:
http://www.demodashi.com/demo/12541.html

注:本文著作權歸作者,由demo大師代發,拒絕轉載,轉載需要作者授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM