Android Studio Mob短信验证
参考博客地址:
短信验证平台——Mob.com
1.注册开发者
2.创建名为Haoji的Android应用
3.进入后台——设置,获取创建应用成功后的APP Key和 APP Secret
4.下载 SMS For Android短信验证码SDK
解压后打开
MobCommons.jar:Mob 通用公共库(必须)
MobTools.jar:Mob 工具公共库(必须)
SMSSDK-<version>.aar:SMSSDK 核心(必须)
SMSSDKGUI-<version>.aar:SMSSDK GUI 开源库(非必须)
HowToUse.txt:使用说明
有分自带GUI和无GUI的
我们用自己的GUI所以选择这三个包就好
5.三个包拷贝到项目中,放在Module所在的Libs里面,在build.gradle中进行配置添加依赖
6.添加以下权限:
<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.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
添加以下Activity:
<activity
android:name="com.mob.tools.MobUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
在Application节点下添加以下属性:
android:name="com.mob.MobApplication"
在Application节点下添加以下meta-data——配置AppKey和AppSecret(步骤三获得)
<meta-data android:name="Mob-AppKey"
android:value="224aff414d8cc" />
<meta-data android:name="Mob-AppSecret"
android:value="3b6bb2fa97de9bba2183f18c59e1b1c9" />
7.以上是准备活动,选择来看一下短信验证码的工作流程
SDK与MOB的服务器有两次交互过程
手机app请求MOB服务器发送验证码,参数为phoneNumber
接收到验证码短信之后,手机app向MOB服务器回传(phoneNumber,varifyCode)以验证其正确性。
8.往SMSSDK中注册一个事件接收器
创建EventHandler对象(EventHandler是SDK注册过程的回调接口,其中分别有对各个验证状态和过程的响应状态)
注册SDK回调
//注册回调监听接口
SMSSDK.registerEventHandler(eventHandler);
注册和注销是配套的
SMSSDK.unregisterAllEventHandler();
回传验证码以确定输入的验证码是否正确
SMSSDK.submitVerificationCode("86", phoneNum, edit_code.getText().toString());
请求验证码
SMSSDK.getVerificationCode("86", phoneNum);
9.使用过程:
- 初始化SMSSDK(步骤六里面“添加meta-data”已完成)
- 初始化registerEventHandler()
- 编写请求验证码和回传验证码方法
- 在EventHandler里相应的状态中处理发送后的事件
10.子线程进行UI操作
- 在主线程里面创建一个Handler对象,重写handlerMessage()方法,
- 当子线程需要UI操作时,就创建一个Message对象,通过Handler将这条消息发出
- 消息被添加到MessageQueue中等待被处理
- Looper一直尝试从MessageQueue取出待处理消息
- 取出后,分发回handlerMessage()方法,处理消息