写点什么

MobTech 短信验证 Android 端 API

  • 2022 年 8 月 31 日
    上海
  • 本文字数:2717 字

    阅读完需:约 9 分钟

短信 SDK 回调 (afterEvent)

/** * cn.smssdk.EventHandler.class * 短信SDK回调 * @param event    事件code * @param result   结果code * @param data     回调的数据对象 */  public void afterEvent(int event, int result, Object data)
复制代码

示例代码

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); //注册短信回调
复制代码

注销监听 (unregisterEventHandler)

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

/** * cn.smssdk.SMSSDK.class * 注销监听 * @param eventHandler     监听回调 */  public static void unregisterEventHandler(EventHandler eventHandler)
复制代码

示例代码

// 使用完EventHandler需注销,否则可能出现内存泄漏 SMSSDK.unregisterEventHandler(eventHandler);
复制代码

自带 UI 页面 (show)

/** * cn.smssdk.gui.RegisterPage.class * 自带UI页面 * @param context     上下文 */  public void show(Context context)
复制代码

示例代码

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<String,Object> phoneMap = (HashMap<String, Object>) data;                    // 国家代码,如“86”                    String country = (String) phoneMap.get("country");                    // 手机号码,如“13800138000”                    String phone = (String) phoneMap.get("phone");                    // TODO 利用国家代码和手机号码进行后续的操作                } else{                    // TODO 处理错误的结果                }            }        });        page.show(context);
复制代码

获取短信目前支持的国家列表 (getSupportedCountries)

/** * cn.smssdk.SMSSDK.class * 获取短信目前支持的国家列表,在监听中返回 */  public static void getSupportedCountries()
复制代码

示例代码

SMSSDK.getSupportedCountries();
复制代码

请求文本验证码 (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)
复制代码

示例代码

SMSSDK.getVerificationCode("86","18516641950");SMSSDK.getVerificationCode("1234","86","18516641950");
复制代码

请求语音验证码 (getVoiceVerifyCode)

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

/** * cn.smssdk.SMSSDK.class * 请求语音验证码 * @param country   国家代码 * @param phone     手机号 */  public static void getVoiceVerifyCode(String country,String phone)
复制代码

示例代码

SMSSDK.getVoiceVerifyCode("86", "18516641950");
复制代码

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

提交验证码 (submitVerificationCode)

/** * cn.smssdk.SMSSDK.class * 提交验证码 * @param country   国家区号 * @param phone     手机号 * @param code      验证码 */  public static void submitVerificationCode(String country, String phone, String code)
复制代码

示例代码

SMSSDK.submitVerificationCode("86", "18516641950","1234");
复制代码

本机号码验证功能 (login)

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

相关接口:

/** * cn.smssdk.SMSSDK.class * 获取登录所需token相关信息 */  public static void getToken()
复制代码

示例代码

SMSSDK.getToken();
复制代码


/** * cn.smssdk.SMSSDK.class * 验证本机号码 * @param phone   手机号 * @param verifyResult  上一步getToken接口调用成功后返回的对象 */  public static void login(String phone, TokenVerifyResult verifyResult)
复制代码

示例代码

SMSSDK.login("18516641950",new TokenVerifyResult("opToken","token","operator"));
复制代码

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

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

用户头像

还未添加个人签名 2019.05.08 加入

还未添加个人简介

评论

发布
暂无评论
MobTech 短信验证Android端 API_android_MobTech袤博科技_InfoQ写作社区