短信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"));
注:
- 当同时使用秒验和短信时,默认支持本机号验证能力,不需要也不能通过开关来打开(否则会有类冲突)
- 只有单独使用短信时,才需要通过开关来打开本机号验证能力
相关文章
暂无评论...