现在的应用在注册登录或者修改密码中都用到了短信验证码,那在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,第二位必定为3或5或8,其他位置的可以为0-9 //Code = 105122 同一天同一用户不能发超过10条验证码(因运营商限制一般情况下不足5条)
//Code = 105122 同一天同一用户不能发超过10条验证码(因运营商限制一般情况下不足5条)