您的位置:首页 > 其它

基于mob平台,手机短信验证码实现登录功能

2015-06-15 14:14 1301 查看
最新项目中要用到手机短信验证码验证登录,在网上找了一个mob平台,以下是基于mob平台实现的验证码登录。

原创文章,转载请注明地址:http://blog.csdn.net/lcm0811 谢谢配合。

首先去mob官网上下载sdk,注册个账号获取秘钥(和百度地图差不多),mob每天可以免费使用200条。下面贴代码:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.register);

SMSSDK.initSDK(this, "7fa1429f4188", "d56891772459be15a3bc542a401a030d");

EventHandler eventHandler = new EventHandler() {

@Override

public void afterEvent(int event, int result, Object data) {

Message msg = new Message();

msg.arg1 = event;

msg.arg2 = result;

msg.obj = data;

handler.sendMessage(msg);

}

};

SMSSDK.registerEventHandler(eventHandler);

}

下面贴一个重新发送60s计时:

new Thread(new Runnable() {

@Override

public void run() {

for (; i > 0; i--) {

handler.sendEmptyMessage(-9);

if (i <= 0) {

break;

}

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

handler.sendEmptyMessage(-8);

}

}).start();

Handler 处理:

Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

if (msg.what == -9) {

getSMSTextView.setText("重新发送(" + i + ")");

} else if (msg.what == -8) {

getSMSTextView.setText("获取验证码");

getSMSTextView.setClickable(true);

i = 60;

} else {

int event = msg.arg1;

int result = msg.arg2;

Object data = msg.obj;

if (result == SMSSDK.RESULT_COMPLETE) {

if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {// 提交验证码成功

handleUserAction(telephone);

toastShort("提交验证码成功");

} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {

toastShort("验证码已经发送");

}

} else {

((Throwable) data).printStackTrace();

toastShort("验证码错误");

}

}

}

};

最后在配置文件中加权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.RECEIVE_SMS" />

<uses-permission android:name="android.permission.GET_TASKS" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然后打“application”下添加如下activity:

<activity

android:name="com.mob.tools.MobUIShell"

android:configChanges="keyboardHidden|orientation|screenSize"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:windowSoftInputMode="stateHidden|adjustResize" />

效果图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: