商城项目实战 | 23.1 如何集成 Android 短信 SDK 实现短信验证

本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。

还记得上篇文章《商城项目实战 | 21.1 自定义带清除功能的 EditText》所涉及到的登录模块吗?先来看下登录的界面如下所示。

登录界面
登录界面

登录的界面大家再熟悉不过了,输入手机号码和密码,然后登录,如果没有账号的话,就要点击左下角的“注册”了,注册方式一般情况下是手机号获取验证码,然后验证成功,设置密码的流程,在商城项目中的注册模块中,采用的也是这种方式,那么如何实现获取到短信验证码实现验证呢?

集成 Mob 短信 SDK

实现短信验证码验证的方式有很多种,这里要介绍的是集成 Mob 官网的短信 SDK,之前的文章《商城项目实战 | 20.1 ShareSDK 实现商品分享》中也介绍了 Mob 官网的分享 SDK 的集成来实现商品分享的功能,Mob 的一些工具也确实是比较好用。

1. Mob 短信 SDK 的优点

为什么商城项目中使用的是 Mob 官方的短信 SDK 呢?主要的原因如下。

(1)流程简单,集成后直接用户输入手机号,然后获取短信验证码,最后校验验证码就搞定了。
(2)功能比较强大,拥有传统的获取验证码方式以及语言验证的方式,同时还可以自定义签名。
(3)速度快,获取到验证码的速度很快,对于用户体验也会提升不少。
(4)配置简单,对于开发者而言不需要太复杂的逻辑。
(5)可以自定义 UI。
(6)全面的数据统计。
(7)完全免费,并且开源。

鉴于 Mob 的短信 SDK 的优势,所以在商城项目就使用配置该短信 SDK 来实现注册短信验证的功能,下面继续看如何进行集成配置。

2. 下载 SDK

进入到 Mob 官网,然后找到 SDK 下载中的 SMS for Android,就可以进入到短信 SDK 的下载页面,有 Android Studio 和 Eclipse 两种,这里我们要的是 Android Studio 版本的。

下载页面
下载页面

下载完成后得到 SDK 的压缩包,解压获取到这些文件。

下载到的文件
下载到的文件

其中 ApiDoc 是包含了 SDK 的相关 API 文档,SMSSDK 文件中则是短信 SDK 相关的 jar 包和 aar 包,其他的就是实例 Demo 、用户指南等 URL 快捷方式。

3. 集成配置短信 SDK

使用 Android Studio 工具时,配置短信 SDK 就是要在 build.gradle 中集成 SDK,当然首先要把下载到本地的 jar 包和 aar 包复制到新建的工程 libs 目录下,先来看下有哪些要使用到的 jar 包和 aar 包。

包列表
包列表

MobCommons.jar 为通用公共库,是必须要的,MobTools.jar 为工具公共库,也是必须的,SMSSDK-2.1.4.aar 则是 SMSSDK 核心库,必须要的,SMSSDKGUI-2.1.4.aar 是 SMSSDK GUI 开源库,没有必要一定要使用,可以自定义 UI。

把需要的包复制到 libs 目录下之后,开始配置 build.gradle 文件。

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    compile files('libs/MobTools-2017.0412.1554.jar')
    compile (name:'SMSSDK-2.1.4',ext:'aar')
    compile (name:'SMSSDKGUI-2.1.4',ext:'aar')
    compile files('libs/MobCommons-2017.0321.1624.jar')
}

添加对包的依赖,但是因为这里还涉及了 aar 的依赖配置,所以还需要在 build.gradle 文件添加对 aar 的配置。

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

4. 添加后台应用

在 Mob 官网上面有个“进入后台”的模块,进入后选择短信 SDK ,然后使用,开始添加自己的应用,填写基本的信息。

添加后台应用
添加后台应用

完成之后,就可以获取到对应的 APP Key 和 APP Secret,这在后面的工程中使用短信功能时需要用到。

获取到 key
获取到 key

到这里短信 SDK 的集成就完成了,下面就要在工程开始使用。

**配置 AndroidManifest.xml **

在工程的 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" />

之后在 AndroidManifest.xml 文件中还要添加对于 Activity 之 MobUIShell 的配置。

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

这是 Mob 公共库中的 UI 界面相关的 Activity。

实现短信验证功能

1. 启动短信 SDK 功能

所谓启动短信 SDK 功能,也就是对短信 SDK 进行初始化。

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

上文中已经介绍了如何获取 App Key 和 App Secret,而在工程中初始化时就要使用到 App Key 和 App Secret。

2. 发送短信验证码

短信 SDK 已经内置了开源的 GUI 功能,可以直接通过调用下面的代码打开短信验证页面。

//打开注册页面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data) {
// 解析注册结果
if (result == SMSSDK.RESULT_COMPLETE) {
@SuppressWarnings("unchecked")
HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
String country = (String) phoneMap.get("country");
String phone = (String) phoneMap.get("phone"); 

// 提交用户信息(此方法可以不调用)
registerUser(country, phone);
}
}
});
registerPage.show(context);

其中 EventHandler 是短信 SDK 的操作回调,对于获取验证码是否成功后的操作处理就写在这里面。

3. 效果图

运行代码,获取效果图。

效果图
效果图

点击下一步获取验证码,然后接收验证码,进行验证就可以了。

如何集成 Android 短信 SDK 实现短信验证就介绍到这里了,更多的可以参考 Mob 官方 Demo

免费学习RxJava2,Dagger2,Retrofit2 ,OkHttp3 等热门课程

关注公众号免费领取"140套优秀开源项目源码"


菜鸟窝-程序猿的黄埔军校。 如需转载,请注明出处(菜鸟窝 , 原文链接:http://www.cniao5.com/forum/thread/8fa6f4e84a5911e7888d00163e0230fa

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容