短信验证是现在很流行的一种验证身份的技术。用户输入手机号,短信验证平台发送验证码至用户手机,用户输入正确的收到的验证码即可验证手机身份。本文引用第三方mob网站的sdk添加进入app实现短信验证功能。
首先在MOB网站注册账户,在后台为你的app注册获得appkey和appsecret。然后下载网站的短信验证SDK,这里我下载的AS版本的,下载完成后将SDK导入AS,引入SDK在网站上已经有很详细的描述。
在oncreate方法中添加以下语句:
SMSSDK.initSDK(this, "你的appkey", "你的appsecret");
安卓对于网络的访问需要放在进程中实现,安卓实现的是一套异步消息处理机制,使用handler发送和处理消息。发送消息一般是使用handler的sendMessage()方法,而发出的消息经过一系列地辗转处理最终会传递到handler的handleMessage()方法。
此处声明一个eventHandler作为消息处理者,为获取验证码的按钮添加监听,先判断输入号码是否正确,在验证号码正确性后使用下列语句调用SDK发送短信:
SMSSDK.getVerificationCode("86", phoneNums);
此时建一个进程,利用进程休眠实现倒计时的功能,这里设置的时间为30秒。在30秒后恢复按钮的可点击性,可再次点击发送短信。在输入验证码后点击提交即可调用SDK验证输入验证码的正确性。
给出全部代码,页面UI可自行设计:
package com.example.exp;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget