当前位置: 首页 > news >正文

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)

示例代码

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"));

注:

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

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

相关文章:

  • kafka学习总结
  • 政策汇总 | 川渝发布若干政策支持双城经济圈健康发展、岷山行动计划第三批项目申报解答......近期16个政策汇总
  • Vue3.0中使用路由进行跳转和传参以及取值
  • 迷茫了3年:做完这个测试项目,我终于决定辞职
  • 时间相关模块
  • LINU下登录脚本的执行顺序
  • MySQL 文本函数和窗口函数
  • springboot+cloud实战派PDF让开发和微服务架构像喝水一样简单
  • QML自定义的日历控件
  • Hive的 mapreduce 计算例子
  • 代码演示傅里叶合成演示
  • 【实用工具】magic-api接口快速开发框架
  • 在线客服功能介绍-了解常见在线客服系统的功能点
  • 基于安卓/Android/微信小程序的学生作业管理系统
  • 数据库读写分离和分库分表
  • hexo+github搭建个人博客
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • AWS实战 - 利用IAM对S3做访问控制
  • Bytom交易说明(账户管理模式)
  • Elasticsearch 参考指南(升级前重新索引)
  • Java IO学习笔记一
  • maven工程打包jar以及java jar命令的classpath使用
  • Puppeteer:浏览器控制器
  • Ruby 2.x 源代码分析:扩展 概述
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 微信支付JSAPI,实测!终极方案
  • 我的面试准备过程--容器(更新中)
  • 无服务器化是企业 IT 架构的未来吗?
  • 延迟脚本的方式
  • 优秀架构师必须掌握的架构思维
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​iOS安全加固方法及实现
  • ​Linux·i2c驱动架构​
  • ​Spring Boot 分片上传文件
  • #### go map 底层结构 ####
  • (42)STM32——LCD显示屏实验笔记
  • (八十八)VFL语言初步 - 实现布局
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 命令行参数包含应用程序路径吗?
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET性能优化(文摘)
  • .net中应用SQL缓存(实例使用)
  • .sdf和.msp文件读取
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • ::什么意思
  • [@Controller]4 详解@ModelAttribute
  • [AR]Vumark(下一代条形码)
  • [BZOJ] 2006: [NOI2010]超级钢琴