• MobTech 短信验证Android端 API


    短信SDK回调 (afterEvent)
    /**
     * cn.smssdk.EventHandler.class
     * 短信SDK回调
     * @param event    事件code
     * @param result   结果code
     * @param data     回调的数据对象
     */  
    public void afterEvent(int event, int result, Object data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    示例代码

    EventHandler eh = new EventHandler() {
        @Override
        public void afterEvent(int event, int result, Object data) {
            // TODO 此处为子线程!不可直接处理UI线程!处理后续操作需传到主线程中操作!
            if (result == SMSSDK.RESULT_COMPLETE) {
                    //成功回调
                    if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                        //提交短信、语音验证码成功
                    } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                        //获取短信验证码成功
                    } else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE) {
                        //获取语音验证码成功
                    } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
                        //返回支持发送验证码的国家列表
                    }else if (event == SMSSDK.EVENT_GET_VERIFY_TOKEN_CODE) {
                        //本机验证获取token成功
                        TokenVerifyResult tokenVerifyResult = (TokenVerifyResult) data;
                        //SMSSDK.login(phoneNum,tokenVerifyResult);
                    }else if (event == SMSSDK.EVENT_VERIFY_LOGIN) {
                        //本机验证登陆成功
                    }
                } else if (result == SMSSDK.RESULT_ERROR) {
                    //失败回调
                } else {
                    //其他失败回调
                    ((Throwable) data).printStackTrace();
                }
        }
    };
    SMSSDK.registerEventHandler(eh); //注册短信回调
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    注销监听 (unregisterEventHandler)

    避免内存泄露,可以在Activity的onDestroy()方法执行

    /**
     * cn.smssdk.SMSSDK.class
     * 注销监听
     * @param eventHandler     监听回调
     */  
    public static void unregisterEventHandler(EventHandler eventHandler)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例代码

    // 使用完EventHandler需注销,否则可能出现内存泄漏
     SMSSDK.unregisterEventHandler(eventHandler);
    自带UI页面 (show)
    /**
     * cn.smssdk.gui.RegisterPage.class
     * 自带UI页面
     * @param context     上下文
     */  
    public void show(Context context)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    示例代码

    RegisterPage page = new RegisterPage();
            //如果使用我们的ui,没有申请模板编号的情况下需传null
            page.setTempCode(null);
            page.setRegisterCallback(new EventHandler() {
                public void afterEvent(int event, int result, Object data) {
                    if (result == SMSSDK.RESULT_COMPLETE) {
                        // 处理成功的结果
                        HashMap phoneMap = (HashMap) data;
                        // 国家代码,如“86”
                        String country = (String) phoneMap.get("country");
                        // 手机号码,如“13800138000”
                        String phone = (String) phoneMap.get("phone");
                        // TODO 利用国家代码和手机号码进行后续的操作
                    } else{
                        // TODO 处理错误的结果
                    }
                }
            });
            page.show(context);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    获取短信目前支持的国家列表 (getSupportedCountries)
    /**
     * cn.smssdk.SMSSDK.class
     * 获取短信目前支持的国家列表,在监听中返回
     */  
    public static void getSupportedCountries()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例代码

    SMSSDK.getSupportedCountries();
    
    • 1
    请求文本验证码 (getVerificationCode)
    /**
     * cn.smssdk.SMSSDK.class
     * 请求文本验证码
     * @param country   国家区号
     * @param phone     手机号
     */  
    public static void getVerificationCode(String country, String phone)
    
    /**
     * 请求验证码
     * @param tempCode  模板编号
     * @param country   国家区号
     * @param phone     手机号
     */  
    public static void getVerificationCode(String tempCode,String country, String phone)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    示例代码

    SMSSDK.getVerificationCode("86","18516641950");
    SMSSDK.getVerificationCode("1234","86","18516641950");
    
    • 1
    • 2
    请求语音验证码 (getVoiceVerifyCode)

    短信验证不仅为大家提供了文字短信验证的方式,还为大家提供了了语言验证的方式,getVoiceVerifyCode方法主要用于在短信接收比较慢的情况下的第二种选择,用户如果收不到短信,可以给用户第二个选择,语音验证的方式,需要传递国家代号和接收验证码的手机号码,并且会通过电话的方式来获取。实现的展示效果可以参考官方demo,下面是方法以及参数的说明;

    /**
     * cn.smssdk.SMSSDK.class
     * 请求语音验证码
     * @param country   国家代码
     * @param phone     手机号
     */  
    public static void getVoiceVerifyCode(String country,String phone)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    示例代码

    SMSSDK.getVoiceVerifyCode("86", "18516641950");
    
    • 1

    注意:需要先发送完验证码之后再调用语言验证哦,否则没有验证码无法验证会报错的哦;

    提交验证码 (submitVerificationCode)
    /**
     * cn.smssdk.SMSSDK.class
     * 提交验证码
     * @param country   国家区号
     * @param phone     手机号
     * @param code      验证码
     */  
    public static void submitVerificationCode(String country, String phone, String code)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    示例代码

    SMSSDK.submitVerificationCode("86", "18516641950","1234");
    
    • 1
    本机号码验证功能 (login)

    在3.7.0版本加入了本机号验证功能,该功能默认不开启,如需使用该功能,需在gradle文件SMSSDK标签中添加 mobileAuth true

    相关接口:

    /**
     * cn.smssdk.SMSSDK.class
     * 获取登录所需token相关信息
     */  
    public static void getToken()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例代码

    SMSSDK.getToken();
    
    • 1
    /**
     * cn.smssdk.SMSSDK.class
     * 验证本机号码
     * @param phone   手机号
     * @param verifyResult  上一步getToken接口调用成功后返回的对象
     */  
    public static void login(String phone, TokenVerifyResult verifyResult)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    示例代码

    SMSSDK.login("18516641950",new TokenVerifyResult("opToken","token","operator"));
    
    • 1

    注:

    • 当同时使用秒验和短信时,默认支持本机号验证能力,不需要也不能通过开关来打开(否则会有类冲突)

    • 只有单独使用短信时,才需要通过开关来打开本机号验证能力

  • 相关阅读:
    什么是shell?模拟实现shell(深刻理解shell的内建命令)
    Scratch软件编程等级考试一级——20200319
    vim,emacs,verilog-mode这几个到底是啥关系?
    Mybatis-Plus的使用
    leetcode:1579. 保证图可完全遍历【并查集思路】
    03- LSTM 的从零开始实现
    Day661.分析定位Java问题工具① -Java业务开发常见错误
    npm常用命令详解
    阿里云/腾讯云幻兽帕鲁服务器为什么更新/重启之后,服务器存档没了?
    Python计算机二级中常考函数
  • 原文地址:https://blog.csdn.net/apkkkk/article/details/126620521