短信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"));
注:
- 当同时应用秒验和短信时,默认反对本机号验证能力,不须要也不能通过开关来关上(否则会有类抵触)
- 只有独自应用短信时,才须要通过开关来关上本机号验证能力