安卓开发如何获取短信验证码怎么获取

现在的应用在注册登录或者修改密码中都用到了短信验证码,那在android中是如何实现获取短信验证码并自动填写的呢?

首先,需要要在manifest中注册接收和读取短信的权限:


在需要填写验证码的Activity中,生产SMSBroadcastReceiver的实例,实现onReceived的回调接口。为了节约系统资源,我们使用动态注册注销广播的方法。

在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据

聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费试用聚合数据API进行移动APP的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。因此我们可以采用聚合数据给我提供好的一套东西来进行短信验证码的功能的添加。

首先我们要做准备工作,使用聚合数据主要分为以下步骤:

进入聚合数据官网()注册一个账号,完成注册后进入,"个人中心"——>“我的数据”点击申请数据如下图所示:

申请后你会得到一个Appkey,此Appkey非常重要。

第四步,创建工程,配置环境

本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason:返回信息 成功或错误原因. result:返回结果,JSON格式.错误或者无返回值时为空.*/

 我们可以看到这个方法所需的参数是①手机号码②手机验证码,我们调用此方法后聚合数据的服务器会进行判断,此验证码是否是刚才发送给这个手机号的验证码,验证后给我返回结果,我们根据返回的结果就可以进行相应的操作。

在上面的界面中我们发现有一个倒计时的功能,我在这里说一下思路,当然这个倒计时方法有很多。在这个Demo中倒计时是放在一个tvCountDown的一个textView中,首先

//这句话就是用time把 html里的%号替换掉 //把用html格式化的字符串设置给倒计时的文本框

 这样我们可以把html格式化的文本填充到tvCountDown中。接下来就是倒计时的方法了

 总结:其实使用聚合数据的短信验证码功能,主要就两个方法,一个是获取验证码的方法sendCaptcha,一个是提交验证码进行验证的方法commitCaptcha。我们在此基础上,可以根据需求对界面进行更改。以上就是对短信验证码的主要逻辑进行的介绍。

好久没更新过博客了。这段时间总算是忙完了,抽点时间出来更新下博客。这次跟大家带来的是一个很简单的短信验证码。相信这个验证码的功能基本上99的项目都需要用到,我这里是用的云之迅平台,为什么要用这个平台,因为原理很简单,用起来也还不错。

1、这里说下云之迅的实现原理,首先得去云之迅平台去申请个开发者账号,然后集成云之迅代码。

2、代码原理其实也很简单,就是自己在本地生成一个多少位的验证码,然后把验证码等参数通过云之迅的接口发给云之迅,再通过云之迅给那台手机发送短信验证码,然后得到验证码之后输入验证码,跟一开始生成的验证码进行对比,如果匹配的话就算是验证通过,当然也可以本地md5,当前demo是没有进行验证码加密的。

首先看下效果动图(由于隐私问题把电话号码挡住了一部分):

好了,下面我们进入正题!!!!

1、下面我们先看目录结构(红线部分就是云之迅的代码集成的部分,我们真正写的只有一个MainActivity)

2、好了,咱们来看看MainActivity这个里面的代码:

 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
 //Code = 105122 同一天同一用户不能发超过10条验证码(因运营商限制一般情况下不足5条)

在代码里面我们可以看到这4个常量参数,然而这4个参数是怎么获取的呢?请往下看我会一一解释!

 

首先是(短信平台 Account sid,短信平台 Auth Token)这2个参数,请看图中红色框框标出的部分,就可以知道咱们的这2个参数怎么获得,当然前提是你必须得有个开发者账号!!:

 

接着就是(短信平台 SMS_APPID)这个参数的获取了,这个参数呢你得先去“应用管理-应用列表”里面去把你的应用给添加起来,然后会出现个你的应用列表,然后点击该应用就能看到该下图:

 

最后这个参数呢(短信模板ID SMS_TEMPLATEID)也是在“应用管理-短信管理”里面有个创建短信模板的,请先创建短信的模板,我这里会跟你提供一个比较大众的模板,当然了如果有不知道模板的规则是怎样可以点击下图红框标记的查看规则说明。

 

当模板创建成功之后就得到咱们需要的(短信模板ID SMS_TEMPLATEID)这个参数啦!请看下图

 

 

这样我们就拿到所有的参数了,然后调用上面代码的这段代码(原理也说了本地生成一个多少位的验证码,然后通过接口传给云之迅平台,由云之迅平台发送短信,收到短信后与本地做验证,当前也可以进行加密之后的验证):

 
 //Code = 105122 同一天同一用户不能发超过10条验证码(因运营商限制一般情况下不足5条)
 

我要回帖

更多关于 短信验证码怎么获取 的文章

 

随机推荐