基于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" />
效果图:
原创文章,转载请注明地址: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" />
效果图:
相关文章推荐
- Android实战简易教程-第十八枪(ViewPager组件详解)
- C#对图片的操作
- java pgAdmin数据库连接
- 黑马程序员-IO(二)
- 避免Android中Context引起的内存泄露
- onTouch与onTouchEvent方法介绍
- 博客园还有人看吗?
- ORACLE 索引、视图、游标、存储过程和触发器
- rownum
- 关于几道SQL经典题详解
- Roman to Integer
- zabbix监控进程的CPU和内存占用量,进程数量
- codeforces 551C
- 一些发布所需的代码记录
- 自动化解决方案
- 技术方案
- 压缩文本、字节或者文件的压缩辅助类-GZipHelper
- SASS基础——十个常见的Mixins
- 黑马程序员-网络编程
- linux-修改hostname