Android 短信验证 SDK 接入(Mob SMSSDK)

博主声明:

转载请在开头附加本文链接及作者信息,并标记为转载。本文由博主 威威喵 原创,请多支持与指教。

本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/smile_running

短信验证接口有很多,绝大部分是收费的,一般一条就几分钱。由于国内的系统软件一般都是按手机号来注册的,所以短信验证成了一种重要的手段。

博主这里使用的是MobTech公司的免费短信sdk,MobTech官网:http://www.mob.com/

第一步:

首先,需要自己注册一下。然后,我们用的是:SMSSDK,如下图

 这里进去自己创建一个应用,然后会给你两个 key

 这样算完成了第一步。

第二步:

进入项目的 build 下,加入以下红框中的代码,这样就引入了 SMSSDK 依赖了。如下图所示:

 代码:

buildscript {repositories {google()jcenter()maven{url "http://mvn.mob.com/android" }}dependencies {classpath 'com.android.tools.build:gradle:3.2.0'classpath 'com.mob.sdk:MobSDK:+'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}

其次,到 app 的 build 里面添加如下代码:

 代码如下,其中 appkey 和 appSecret 就是你在 Mobtech 官网创建应用所给的两个 key 。

apply plugin: 'com.mob.sdk'
// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {appKey "你的 appkey"appSecret "你的 appSecret "SMSSDK {}
}

然后 asnyc 一下项目,第二步就完成了。

第三步:

前面这些做好以后,就可以进入开发部分了。以下是本案例的代码,先看看本案例的效果吧。

一个简单的界面布局,输入对应的手机号,然后获取验证,验证成功后,跳转界面。如下图:

 上面这个,我将我的手机号隐藏了,我是用模拟器运行的,在我的手机上就会收到短信码,如下图:

 好了,现在来看看案例代码吧。当然了,大家也可以自己去看 Mobtech 的官方文档,我这个是无 GUI 的 sdk,大家也可以选择 sdk 中提供的 UI 界面。

首先看关键代码,两个 button 的事件代码,如下:

    @Overridepublic void onClick(View v) {String phone = edt_phone.getText().toString().trim();switch (v.getId()) {case R.id.btn_get_code:if (TextUtils.isEmpty(phone)) {return;}//中国大陆区域 +86SMSSDK.getVerificationCode("86", phone, this);// 获取短信验证码break;case R.id.btn_verify:String code = edt_code.getText().toString().trim();if (TextUtils.isEmpty(code)) {return;}SMSSDK.submitVerificationCode("86", phone, code); // 校验短信验证码break;}}

以下是 Mobtech 官网文档的内容,提供了几个方法,如下:

代码中有一个 OnSendMessageHandler 接口,它的作用是:在发送短信之前,开发者自己执行一个操作,来根据电话号码判断是否需要发送短信。

这里只要实现这个接口即可:

 
public class LoginActivity extends AppCompatActivity implements View.OnClickListener, OnSendMessageHandler {//省略代码@Overridepublic boolean onSendMessage(String country, String phone) {/*** 此方法在发送验证短信前被调用,传入参数为接收者号码* 返回true表示此号码无须实际接收短信*/return false;}
}

下面是短信 sdk 的回调监听,分别用于监听短信发送情况、是否验证成功、还有一些异常情况等。代码如下:

    private EventHandler eventHandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);initView();eventHandler = new EventHandler() {public void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) {// TODO 处理验证成功的结果if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {//提交验证码成功Log.i("EventHandler", "提交验证码成功");startActivity(new Intent(LoginActivity.this,MainActivity.class));} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {//获取验证码成功Log.i("EventHandler", "获取验证码成功");} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {//返回支持发送验证码的国家列表Log.i("EventHandler", "返回支持发送验证码的国家列表");}} else {// TODO 处理错误的结果Log.i("EventHandler", "提交验证码失败");((Throwable) data).printStackTrace();}}};//注册 eventHandlerSMSSDK.registerEventHandler(eventHandler);}

这里注册了 EventHandler,在 Activity 退出的时候,要注销。代码如下:

    // 使用完EventHandler需注销,否则可能出现内存泄漏@Overrideprotected void onDestroy() {super.onDestroy();SMSSDK.unregisterEventHandler(eventHandler);}

EventHandler 会监听处理的回调,将它打印到 Log 中,如下:

好了,到此教程就结束了,以上就是 SMSSDK 提供的所有代码,这样就可以完成短信验证了,我已经在我的手机上测试了很多次了,都可以接收到短信码。建议一天不要在同一个手机号上进行测试,次数多了可能会接收不到。还有就是短信码的间隔要大于 60 s 再发送,否则会操作频繁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么快速在计算机植入病毒,怎样给别人的电脑植入病毒

太简单了。这是病毒植入系统的一种表现,你删了也没用,因为这种系统植入性的病毒一般是能够修改系统注册表的,所以你删掉它会通过注册表再重新创建一摸一样的文件。建议你用以下方法解决,如果这还不行,建议重装系统&…

chatgpt对编程的作用

1、将delphi代码转换成c代码。 请将以下代码转换成c语言 if (Joint.TrackingState TrackingState_Tracked) thenbeginHandState : Body.HandRightState;if (HandState HandState_Open) thenbeginWriteLn(Right hand is open);endelse if (HandState HandState_Closed) the…

安卓,上传图片不能调取照相机拍照

我们常见的上传文件或者图片 是使用的input <form><input type"file" name"pic" id"pic" /> </form>此时一个问题出现&#xff1a; 如果是上传照片图片&#xff0c;安卓机有一个问题&#xff0c;只能选取照片&#xff0c;不…

2023 年6月开发者调查统计结果——最流行的技术(1)

2023 年6月开发者调查统计结果——最流行的技术&#xff08;1&#xff09; 本文目录&#xff1a; 一、编程、脚本和标记语言 二、数据库 三、云平台 四、网络框架和技术 五、其他框架和库 六、其他工具 七、集成开发环境 八、异步工具 九、同步工具 ​十、操作系统 …

又一个开源便斩获 7k star 的新模型「GitHub 热点速览」

作者&#xff1a;HelloGitHub-小鱼干 Star 并不能代表什么&#xff0c;但是绝对能表示一个项目的受欢迎程度。就像刚开源一周就有 7k star 的新模型&#xff0c;输入文本 / 图像就能获得 3D 对象。除了这个新模型&#xff0c;本周还有一款新的 Web 3D 渲染引擎 Orillusion&…

您无法登录,因为您使用的登录方法......

您无法登录&#xff0c;因为您使用的登录方法在此计算机上不允许&#xff0c;请咨询管理员...... 计算机已加入到了域中就是无法登录到local计算机中报上面错误。 1、检查组策略里面拒绝登录的账号是否在列 2、这种方法可将就用 3、以上还是不太好用不是最终想要的结果 以上都…

关于VS无法登录账号问题

概述 最近发现安装vs2013社区版后&#xff0c;无法登录微软账号&#xff0c;通过搜索相关解决方法&#xff0c;发现修改注册表的方式有效&#xff0c;故记录如下。 步骤 打开注册表编辑器 执行win r操作&#xff0c;呼出运行窗口&#xff0c;输入regedit&#xff0c;点击确…

苹果计算机使用方法,不知道这10个Mac使用技巧,别说你会用苹果电脑

原标题&#xff1a;不知道这10个Mac使用技巧&#xff0c;别说你会用苹果电脑 虽然Mac的用户体验做的非常优秀&#xff0c;很多功能用户只需要下意识去使用即可&#xff0c;但还是有一些隐藏的比较深的小技巧&#xff0c;如果没人指点的话还真不一定知道。今天小编就为大家分享1…

MacOS - Mac电脑能用Windows键盘吗?

1.应用场景 主要用于了解熟悉 MacOS 的使用 及 搭配Windows键盘使用&#xff0c;以及外界鼠标和触控板的使用&#xff0c;为了达到使用电脑的最大化效率。 2.学习/操作 1. 文档阅读 https://jingyan.baidu.com/article/4dc40848f86d9489d846f13f.html 2. 整理输出 2.1 先问一…

苹果电脑如何同时运行Mac和Windows--pd18

如何同时运行Mac和Windows呢&#xff0c;这里为大家推荐pd18&#xff0c;全名Parallels Desktop 18虚拟机&#xff0c;是很火爆的一款软件&#xff0c;可以在Mac上无缝衔接Windows系统&#xff0c;并且不用重启&#xff0c;可以同时运行&#xff0c;设置不同的桌面&#xff0c;…

苹果笔记本不能用windows吗 如何让苹果电脑支持windows

很多时候&#xff0c;Mac用户在网站上下载的资源都是windows系统专属资源&#xff0c;例如&#xff1a;exe格式的可执行文件。Exe格式的文件是windows系统上的可执行文件&#xff0c;Mac系统并不支持直接打开windows程序&#xff0c;所以就需要借助一些“手段”&#xff0c;例如…

理财笔记 - 关于中概互联和中国互联

1、关注原因 因为朋友圈有人推荐中概互联指数基金&#xff08;大概在2018年末2019年初期那时候一份是1.1元左右&#xff09;&#xff0c;当然我没有参与&#xff0c;我手里没有闲散资金。我关注的主要原因是因为我自己处于IT圈子&#xff0c;对于互联网并不陌生&#xff0c;相…

易趋亮相 INSight 金融洞察力峰会,助力金融行业数字化转型

2023年3月23日&#xff0c;INSight年度洞察力峰会于北京圆满召开&#xff0c;易趋作为优秀项目管理工具厂商代表在金融领域拥有丰富的实施经验&#xff0c;也应邀出席本次峰会。 &#xff08;会议现场&#xff09; 本次峰会包含两个平行论坛&#xff0c;汇聚了数百位主流金融机…

全新ThihkPHP聚合支付系统源码+兼容全部易支付

正文: P聚合支付系统源码兼容世面上所有易支付系统&#xff0c;基于PHPMySQLThihkphp框架开发。 全响应式前端界面&#xff0c;简约易操作&#xff0c;安全便利快捷&#xff0c;为你稳定服务&#xff0c;功能包括资金记录、订单记录、收益统计和渠道分析。 程序: wwuef.lan…

金融量化交易场景下数据库如何改造?同花顺、弘源泰平真实案例分享

⬆️ 点击图片&#xff0c;与专业的解决方案架构师聊一聊 在金融量化交易场景中&#xff0c;每天都会产生大量的交易记录和交易信息需要存储&#xff0c;同时对数据也有较高要求的查询需求&#xff0c;整体需求概括起来就是历史数据的存储、实时数据的接收以及数据的监控和分析…

CSO面对面丨对话海通证券,探讨数字金融行业安全运营

新技术的涌现带动了金融行业的数字化转型发展&#xff0c;同时也带来了更多安全挑战。一方面&#xff0c;金融科技大量采用新技术实现业务创新的同时&#xff0c;也给网络安全带来了更多隐性风险。另一方面&#xff0c;金融行业数字化转型的进一步普及&#xff0c;大量个人隐私…

分论坛介绍:涉及数据隐私、金融、互联网

数据隐私下的数据科学论坛 出品人&#xff1a;刘吉 百度研究院 资深研究员 分享嘉宾&#xff1a; 1. 闫树 中国信息通信研究院 云计算与大数据研究所 副主任 演讲主题&#xff1a;隐私计算行业发展及合规发展思考 演讲提纲&#xff1a;隐私计算政策、技术、应用概述-隐私计…

ChatGPT下架官方检测工具,承认AI文字无法鉴别

梦晨 发自 凹非寺量子位 | 公众号 QbitAI 没有公告&#xff0c;OpenAI悄然关闭了AI文本检测工具&#xff0c;页面直接404了。 官方对此没有公开回应&#xff0c;几天后才有人找到一则简短说明&#xff0c;藏在半年前工具发布的博客页面中。 ……AI检测器由于准确率较低而不再可…

让ChatGPT来帮我们写一个贪吃蛇代码,是骡子是马总得拉出来溜溜

ChatGPT实在是太火了&#xff0c;铺天盖地的信息让人不得不好奇&#xff0c;到底有没有网上说的那么厉害呢&#xff0c;就让我们用事实说话&#xff0c;现实测试一下他的代码能力。 刚好前一段时间自己写了一个贪吃蛇的c代码&#xff0c;那么就让GPT也写一个&#xff0c;看看功…

百度网盘怎么取消自动续费

第一步&#xff1a;双击百度网盘快捷键&#xff0c;点击进入&#xff0c;登录网盘账号。 第二步&#xff1a; 点击会员中心&#xff0c;接着点击管理自动续费。 第三步&#xff1a;点击取消选项&#xff0c;出现提示框点击 确定 即可取消自动续费。 最后&#xff0c;自动续费就…