完整的Android手机短信验证源码
短信验证功能我分两个模块来说,短信验证码的后台和代码实现短信验证码的功能。
一、短信验证码的后台
1、注册Mob账号:http://www.mob.com/#/login
2、注册成功之后,点击“头像”,进入“产品中心”,进入如下界面点击第二项添加应用。添加完应用几秒后再次进入第二项。

3、在第二步之后我们会得到两个重要的参数App key和App Secret,用于客户端和服务端的链接,创建好应用之后还会得到两个菜单选项“验证记录”和“短信设置”,“验证记录”是说我们进行短信验证之后后台会形成一个相关的记 录,比如手机类型、运营商、发送的时间以及验证的时间等内容。“短信设置”是说当前的短信是否支持全球运营商、大陆运营商等。

4、下载SDK,具体怎么下载我就不说了,我说说解压缩的SDK的各个文件什么意思吧,解压缩之后,我们打开ApiDoc——>index.html,就可以看这个SDK里的内容了。里边的内容都给了清楚的解释。大家也可以看看SMSSDK文 件夹,里边存放了SDK的源码。里边还有一个SMSSDK_User_Guide,打开之后大家可以按照里面的步骤进行操作。
三、实现短信验证码的功能
1、导入SDK
如果你的SDK是SMSSDK 2.0.1之后就省事儿了,把下载的SDK解压缩之后,我的是Android Studio的SDK,所以下面说的操作都是针对Android Studio进行的。会出现如下目录:

打开SMSSDkmu目录,将里边的MobCommons-2016.0303.1229.jar,MobTools-2016.0303.1229.jar,SMSSDK-2.0.2.aar,SMSSDKGUI-2.0.2.aar放到了项目app的libs目录下。然后在app目录下的build.gradle,加 上红圈中的这几句就行了。

2、配置清单文件信息,配置内容如下:
<--权限-->
<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" /> <!--配置Activity信息-->
<activity android:name="com.mob.tools.MobUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize"> </activity>
3、初始化SDK:SMSSDK.initSDK(this, APPKEY, APPSECRET);
4、注册手机号:RegisterPage registerPage = new RegisterPage();
5、注册回调事件
registerPage.setRegisterCallback(new EventHandler() {
//事件完成后调用
public void afterEvent(int event, int result, Object data) {
// 判断结果是否已经完成
if (result == SMSSDK.RESULT_COMPLETE) {
@SuppressWarnings("unchecked")
//获取数据data
HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
//国家信息
String country = (String) phoneMap.get("country");
//手机号信息
String phone = (String) phoneMap.get("phone");
// 自定义方法提交用户信息
registerUser(country, phone);
}
}
});
6、显示注册界面registerPage.show(MainActivity.this);
7、对registerUser方法进行说明
public void registerUser(String country,String phone){
//在int类型里随机取一个数在转成字符串
Random r=new Random();
String uid= Math.abs(r.nextInt())+"";
String nickName="ct";
SMSSDK.submitUserInfo(uid,nickName,null,country,phone);
}
三、运行结果

上面这个界面是自己搭建的UI界面,点击上面的Button可以出发上面的步骤5和6,就会出现下面的效果,下面的UI都是SMSSDK中自带的,不用我们自己搭建。运行效果如下:

完整的Android手机短信验证源码的更多相关文章
- 【mob】Android短信验证+源码
在很多的应用当中,都涉及到了短信验证的功能,比如在注册或者找回密码的时候,那么我们如何通过第三方的平台来完成这个功能呢? 本面博文就实现短信验证,来做一个小的栗子. 第一步-下载开发包 第二步-将SD ...
- 如何实现php手机短信验证功能
http://www.qdexun.cn/jsp/news/shownews.do?method=GetqtnewsdetailAction&id=1677 下载php源代码 现在网站在建设网 ...
- 用Tasker实现收到Android手机短信自动转发到邮箱
发送短信到邮箱的原理与 <用Tasker实现收到Android手机短信自动转发到邮箱>有些类似. 发送短信到邮箱是利用Ifttt这个服务将短信转发到邮箱中.Ifttt服务的可扩展性很强, ...
- 短信平台软件开发,短信发送平台销售,短信软件源码,G客短信发送平台
一:web短信平台组成 需要短信软件平台源码的联系QQ:290615413 vx:290615413 整套短信系统平台还是由B/S(客户端+后台,取消了以前C/S的管理后台) ,C/S发送服务端和 ...
- ASP.NET MVC 手机短信验证
本文来自于stoneniqiu的文章,原文地址 http://www.cnblogs.com/stoneniqiu/p/6234002.html 1.注册一个应用 得到AppKey 和 App Sec ...
- 利用twilio进行手机短信验证
首先要注册 twilio 账号但是由于twilio人机验证用的是Goole所有注册需要FQ 完成后去免费获取15元使用 然后 pip install twilio 注册完成后会在个人首页显示你的免费金 ...
- Android抢先截获短信(附源码)
之前在写通讯录应用时,将整体的代码写完后,自测时发现非常非常多的问题,其中一个非常重要严重的就是可以发出短信,但收不到任何的短信息,这搞的我好捉鸡啊!后来调试发现是由于没有收到短信的消息导致的,然后将 ...
- android手机短信获取
关于Android中对短信的一些相关操.我看到一个文章下面我就从标题中的三个方面来对Android系统中的短信操作进行一个简单地学习. 短信发送: 由于Android中对短信发送方法的优良封装,之后对 ...
- 第一次发博,发个简单的Java程序发送手机短信验证
最近在准备一个项目,想的登录时候用手机验证,就通过上网查阅了一下手机验证的实现方法,原来超级简单,下面将一步一步介绍. 1.去中国网建注册一个账号密码,首次注册送五条免费短信和3条免费彩信.具体的网址 ...
随机推荐
- SQLite For .Net 已经整合了32位和64位
以前引用SQLite.DLL的时候,如果是winform等桌面程序,还要分32位和64位不一样的DLL,但最近已经整合为一个包了 打开vs的程序包管理器控制器,输入: install-package ...
- Windows系统中使用WMI获取远程服务器的信息
使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...
- 现在输入 n 个数字, 以逗号, 分开; 然后可选择升或者 降序排序;
/* 现在输入 n 个数字, 以逗号, 分开: 然后可选择升或者 降序排序: */ import java.util.*; public class bycomma{ public static St ...
- C++中 指针 与 引用 的区别
四点区别:可否为空,可否修改,使用时是否需要判断,使用场景 非空区别. 引用必须指向某个对象,而指针可以指向空. 可修改区别. 引用总是与初始化时的那个对象绑定,不可变更:指针可以重新赋值,指向另外一 ...
- Android 使用 intent 实现简单登陆页面
前言 第一个 Android 程序,应该有些纪念的意义吧~ 主页面布局 给 Button 添加响应函数:android:onClick="login" public void lo ...
- linux基础命令整理
1 显示当前工作目录 pwd 2 查看目录下的所有内容 ls ls -l 以列方式查看 ls -a 显示所有 ...
- ssma for oracle
SQL Server Migration Assistant (SSMA) for Oracle lets you quickly convert Oracle database schemas to ...
- linux用户管理最常用的三个文件说明(不完整版)
涉及到三个文本文件:/etc/passwd /etc/shadow /etc/group 文件相关: /etc/passwd和用户名相关 /etc/shadow和密码相关 /etc/group和用户所 ...
- javascript Node操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C 根据行来读取文件 字符串的截取
// TestCFile.cpp : Defines the entry point for the console application. // #include "stdafx.h&q ...