android实现免费短信验证

android实现免费短信验证代码地址如下:http://www.demodashi.com/demo/12541.html前言获取短信验证码的的第三方很多,今天介绍一个获取短信验证码的demo,它有以下优势1.短信到达率

大家好,又见面了,我是你们的朋友全栈君。

代码地址如下:
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();
    }
六.项目结构与运行效果图

项目结构图

<span role="heading" aria-level="2">android实现免费短信验证

运行效果图

<span role="heading" aria-level="2">android实现免费短信验证

android实现免费短信验证

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

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154661.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • oleDbCommand访问Excel

    oleDbCommand访问ExceloleDbCommand访问Excel:_oleCmdSelect=newOleDbCommand(“SELECT*FROM[Sheet1$A2:A5]”,_oleConn);objValue=_oleCmdSelect.ExecuteScalar();usingSystem;usingSystem.Collections.Generic;usingS…

  • MySQL的存储过程_MySQL创建存储过程

    MySQL的存储过程_MySQL创建存储过程mysql存储过程详解

  • matlab 实现二值图像孔洞填充函数imfill()

    matlab 实现二值图像孔洞填充函数imfill()代码如下:function[I2,locations]=imfill(varargin)[I,locations,conn,do_fillholes]=parse_inputs(varargin{:});ifdo_fillholesifislogical(I)mask=uint8(I);elsemask=I;endmask=padarray(mask,ones(1,ndims(mask)),

  • Tomcat配置环境变量

    Tomcat配置环境变量Tomcat是目前比较流行的开源且免费的Web应用服务器,在我的电脑上第一次安装Tomcat,再经过网上教程和自己的摸索后,将这个过程重新记录下来,以便以后如果忘记了可以随时查看。注意:首先要明确一点,Tomcat与Java密切相关,因此安装使用之前要先安装JDK并设置JDK的环境变量,由于机子上已经安装好了JDK,也设置好了JDK环境变量,因此这里不再过多叙述,只说明我设置好的环境变量:JAV…

  • 字符串/数组截取汇总

    字符串/数组截取汇总字符串/数组截取汇总每次都忘记具体的截取方式,还是总结一下加深记忆比较好~一、JS方式1.slice:取得字符串或数组中的一段形式:arrayObject.slice(start,end);返回值:返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。不改变原数组eg:输入var…

  • 配置二层交换机Vlan_华为模拟器交换机配置

    配置二层交换机Vlan_华为模拟器交换机配置二层交换机VLAN基础配置

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号