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

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

1,注册用户,注册应用,拿到appkey和appSecret
拿到后是这样的

2,下载sdk,解压,把下面那4个货复制到libs里面

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();    }

这就搞定了

更多相关文章

  1. android:沉浸式状态栏(状态栏一体化)
  2. 从一篇Blog看两个并发编程错误
  3. Android(安卓)Studio查看Android(安卓)5.x源码的步骤详解
  4. Android(安卓)高手进阶教程(十四)之----Android(安卓)Location的
  5. Android单元测试之Robolectric
  6. 修正AppCompatSpinner弹出框位置问题
  7. Android内容提供者使用及创建
  8. Android网络请求框架AsyncHttpClient (android-async-http)介绍
  9. 【Android】实现登录、注册、数据库操作(极简洁)

随机推荐

  1. 刺激!一行代码即可导出所有浏览记录
  2. 如何用Python快速优雅的批量修改Word文档
  3. 爬虫遇到头疼的验证码?Python实战讲解弹窗
  4. 提高内存使用效能的技巧
  5. 爬取B站20万+条弹幕,我学会了如何成为B站
  6. 原理+代码|手把手教你使用Python实战反欺
  7. 用Python打造一款文件搜索工具,所有功能自
  8. 老板让我从几百个Excel中查找数据,我用Pyt
  9. 可视化工具不知道怎么选?深度评测5大Pytho
  10. 原理+代码|Python实战多元线性回归模型