完整的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条免费彩信.具体的网址 ...
随机推荐
- C++基础知识梳理--C++的6个默认函数
C++有六个默认函数:分别是 1.default构造函数; 2.默认拷贝构造函数; 3.默认析构函数; 4.赋值运算符; 5.取值运算符; 6.取值运算符const; // 这两个类的效果相同 cla ...
- JavaSE_ 集合框架 总目录(15~18)
JavaSE学习总结第15天_集合框架1 15.01 对象数组的概述和使用15.02 对象数组的内存图解15.03 集合的由来及与数组的区别15.04 集合的继承体系图解15.05 Collectio ...
- 关于Python的self指向性
Python的self是指向类的实例化对像,而不是类本身,每次调用类的实例化即self指向此实例化对像,如下代码: class Person: def __init__(self,name): sel ...
- PowerShell Remove all user defined variable in PowerShell
When PS scripts executes, it is possibly create much user defined variables. So, sometimes these var ...
- C# Convert an enum to other type of enum
Sometimes, if we want to do convert between two enums, firstly, we may think about one way: var myGe ...
- Select specified items from Tuple List
#Select specified items from Tuple List ##Select one item to form list `tupleList.Select(element =&g ...
- [转]IE和Firefox兼容性问题及解决方法
今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错.IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下: 1.兼容firefox的 outerHTML,FF中 ...
- HighCharts学习
http://www.stepday.com/topic/?369 http://www.helloweba.com/view-blog-156.html
- protel99_拼板详细图解
首先打开PCB文档.如图所示,在PCB左下角放置一個坐標為X=0,Y=0的焊盤. 从下图看,为了方便电路板生产厂家的加工和焊接工厂的加工,拼版的方向是向上Y轴方向拼版. 接着为了在拼版过程中好对齐板边 ...
- 双网卡绑定(suse)
网卡绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能,Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,就是两块网卡具有相同的IP ...