Mob短信验证

来源:互联网 发布:java中什么是变量 编辑:程序博客网 时间:2024/05/03 06:41

短信验证的界面

短信验证很简单,在mob官网可以看到提供的开源代码,但是我仔细的看了一下,不太适合初学者,第一步就是先把SDK下载下载下来,第二步就是权限,第三步就是在Application中放一个action(这个可以在官网看是一样的,就是代码不一样)这个可以参考官网我就不一一说明了。
我这个短信验证有两个侧重点,一个是短信验证,一个是点击后的倒计时,下面展示展示mob短信验证代码:
// MOB短信认证

public void mobSMS() {    SMSSDK.initSDK(this, "1a48bccf2bf84", "1fb913e66dd24c21295385b525299148");    EventHandler eh = new EventHandler() {        @Override        public void afterEvent(int event, int result, Object data) {            if (result == SMSSDK.RESULT_COMPLETE) {                // 回调完成                if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {                    // 提交验证码成功                    handler.sendEmptyMessage(1);                } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {                    // 获取验证码成功                    System.out.println("验证码:" + data);                    handler.sendEmptyMessage(2);                } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {                    // 返回支持发送验证码的国家列表                }            } else {                ((Throwable) data).printStackTrace();            }        }    };    SMSSDK.registerEventHandler(eh); // 注册短信回调}

上面代码直接复制 然后导个包就好了 没有别的引用
SMSSDK.initSDK(this, “1a48bccf2bf84”, “1fb913e66dd24c21295385b525299148”);这是是在mob官网你自己的应用生成的,只需要改一改就好了。
mobSMS()这是一个方法,记得一定要在onCreate()方法中初始,不然没有用

    SMSSDK.getVerificationCode("86", userName.getText().toString());     //这是点击获取验证码的地方写的代码    handler.sendEmptyMessage(3);//这是更新获取验证码按钮的代码,不懂看下面    (userName.getText().toString()这个是你前台的手机号)        SMSSDK.submitVerificationCode("86", userName.getText().toString(), phoneGain.getText().toString());//这个是写在下一步按钮上的 这是用来验证验证码的,phoneGain.getText().toString()这是用来获取你输入的验证码的

因为这个在主线程上面,我们需要用到handle来更新界面和提醒

    private int count = 120;//用来展示倒计时的总时数Handler handler = new Handler() {    Runnable runnable = new Runnable() {        @Override        public void run() {            // TODO Auto-generated method stub            count--;//减减是循环用到的            if (count > 0) {                handler.postDelayed(this, 1000);//在次调用 1000是表示延迟多少时间后调用                gain.setText(count + "秒重新发送");//更新获取验证码按钮的提示            } else if (count == 0)//表示为0的时候就不进行循环                gain.setText("重新发送");//更新显示        }    };    public void handleMessage(Message msg) {        if (msg.what == 1) {这个是mobSMS()函数提示用的,看mobSMS函数就知道了,只有验证成功了才能走这一步 所以这里是跳转下一页的代码放置处            Toast.makeText(context, "验证成功!", Toast.LENGTH_LONG).show();            Intent intent1 = new Intent(context, Oblivious_Next.class);            startActivity(intent1);            finish();        } else if (msg.what == 2) {//这是获取验证成功的提示            Toast.makeText(context, "获得验证码成功!", Toast.LENGTH_LONG).show();        } else if (msg.what == 3) {//这是获取验证调用的循环更新主线程            handler.postDelayed(runnable, 1000);//这是handler更新界面的用法之一        }    }};      

这就是我写的mob验证码和UI界面更新,还可以完善,第一次写有什么不足望各位提出宝贵的意见。

0 0