Android接入免费的短信验证SMSSDK的应用

有些时候自己做个人项目需要使用短信验证,但是又不想花钱,就得用我接下来要说的这个良心的第三方了
官网地址:http://www.mob.com/
短信接入的文档:http://wiki.mob.com/api-android/
sdk下载的地址:http://www.mob.com/downloadDetail/SMS/android

接下来说说步骤,其实步骤在官方文档里面已经有了,但是会有很多的坑,我来说说具体的步骤,避免遇坑

1,注册用户,注册应用,拿到appkey和appSecret
拿到后是这样的
Android接入免费的短信验证SMSSDK的应用_第1张图片

2,下载sdk,解压,把下面那4个货复制到libs里面
Android接入免费的短信验证SMSSDK的应用_第2张图片

3,选中jar包右键 ,add as library

4,把下面这些代码复制到你的app下面的build.gradle,记住是app下面的,别搞错了

repositories{
    flatDir{
        dirs 'libs' //就是你放aar的目录地址
    }
}

5,坑要来了,把下面的代码复制到build.gradle依赖里面

compile name:'SMSSDK-2.1.3',ext:'aar'
    compile name:'SMSSDKGUI-2.1.3',ext:'aar'

注意SMSSDK-2.1.3,这个2.1.3是你复制到libs下面的aar文件的版本号,别下的是一个版本,复制进build.gradle又是另外一个,那就日狗了

6,打开您项目的“AndroidManifest.xml”,在其中添加如下的权限:

<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.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

7,在“application”下添加如下activity:

android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>

接下来就可以用了,用的时候有2种用法,
1,一个是用SDK自带的ui界面,几行代码完事,具体代码:

在项目启动的时候初始化SDK

SMSSDK.initSDK(this, "您的appkey", "您的appsecret");

然后在去验证手机号的地方调用下面的代码

//打开注册页面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data) {
// 解析注册结果
if (result == SMSSDK.RESULT_COMPLETE) {
//成功后回调到这个方法

}
registerPage.show(context);

这样就把SDK里面的界面呼起来了,然后你输入手机号,然后收到验证码,然后就输入验证码,然后就验证,
成功就在回调方法:result == SMSSDK.RESULT_COMPLETE,其他就是失败result ==RESULT_ERROR

然后就没有然后了

下面来说说自己定义ui界面怎么操作,毕竟SDK提供的ui太丑了

你可以看看这里:http://wiki.mob.com/sms-android-%E6%97%A0gui%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8/

1.肯定是

SMSSDK.initSDK(this,APPKEY,APPSECRET);

2,获取到手机号后调用这个方法,传入国家,和手机号
getVerificationCode(String country, String phone)
中国传入86,

SMSSDK.getVerificationCode("86", "1338*******");
 SMSSDK.registerEventHandler(new EventHandler() {
            public void afterEvent(int event, int result, Object data) {
                // 解析注册结果
                if (result == SMSSDK.RESULT_COMPLETE) {//成功


                } else {
                    showToast("发送失败,请重试!");
                }
            }
        });

3,成功之后会受到验证码,然后调用
submitVerificationCode(String country, String phone, String code)
提交短信验证码,在监听中返回

传入,国家,手机号,和验证码,具体实现:

 SMSSDK.submitVerificationCode("86", telephoneNum, verificationCode);
        SMSSDK.registerEventHandler(new EventHandler() {
            public void afterEvent(int event, int result, Object data) {
                if (result == SMSSDK.RESULT_COMPLETE) {//成功
                    Log.e("duanyimeng", "testVerificationCode:result== " + result);

                } else {
                    showToast("验证失败,请重试!");
                }
            }
        });

最后为了防止内存泄漏,在销毁的时候调用

@Override
    protected void onDestroy() {
        super.onDestroy();
        SMSSDK.unregisterAllEventHandler();
    }

这就搞定了

你可能感兴趣的:(android,第三方集成)