关于短信验证:MobTech-短信验证Android端-API

42次阅读

共计 3539 个字符,预计需要花费 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"));

注:

  • 当同时应用秒验和短信时,默认反对本机号验证能力,不须要也不能通过开关来关上(否则会有类抵触)
  • 只有独自应用短信时,才须要通过开关来关上本机号验证能力

正文完
 0