开相关发中总会遇到短信验证这些操作,这周没有来得及写新的东西,借此分享一篇以前学习短信验证的笔记,本文使用的是 Mob 提供的 SMSSDK .

下载 SMSSDK

官网下载地址:SMSSDK

集成 SMSSDK

将 MobCommons.jar、MobTools.jar、SMSSDK-2.0.1.aar、SMSSDKGUI-2.0.1.aar 放到了app 的 libs 目录下,如果不需要带界面的 SMSSDK 可以不添加 SMSSDKGUI-2.0.1.aar,具体文件请参考最新的 SMSSDK。

配置 build.gradle 文件

打开 app 下面的 build.gradle 文件进行如下配置:

配置AndroidManifest.xml

在 AndroidManifest.xml 文件中配置权限和Application.

配置权限
<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.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
配置 application
<activityandroid:name="com.mob.tools.MobUIShell"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize"/>

启动 SDK

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();SMSSDK.initSDK(this, "您的appkey", "您的appsecret");}
}

参考代码

实现一个简单的案例,获取验证码,并进行验证。

布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.manu.sharesdksms.MainActivity"><LinearLayoutandroid:id="@+id/ll_user"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingLeft="16dp"android:paddingRight="16dp"><TextViewandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:hint="手机号:" /><EditTextandroid:id="@+id/et_number"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="4"/><TextViewandroid:id="@+id/tv_getCheckCode"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:gravity="center"android:text="获取验证码"android:clickable="true"/></LinearLayout><LinearLayoutandroid:id="@+id/ll_pass"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/ll_user"android:paddingLeft="16dp"android:paddingRight="16dp"><TextViewandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="验证码:"/><EditTextandroid:id="@+id/et_checkCode"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="4"/><TextViewandroid:id="@+id/tv_sendCheckCode"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:gravity="center"android:text="验证"android:clickable="true"/></LinearLayout>
</RelativeLayout>
MainActivity

/*** ShareSDk 验证码测试*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener{private EditText et_number;private EditText et_checkCode;private TextView tv_getCheckCode;private TextView tv_sendCheckCode;private String phoneNumber;private String checkCode;private ProgressDialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_number = (EditText) findViewById(R.id.et_number);et_checkCode = (EditText) findViewById(R.id.et_checkCode);tv_getCheckCode = (TextView) findViewById(R.id.tv_getCheckCode);tv_sendCheckCode = (TextView) findViewById(R.id.tv_sendCheckCode);checkCode = et_checkCode.getText().toString().trim();tv_getCheckCode.setOnClickListener(this);tv_sendCheckCode.setOnClickListener(this);//注册短信回调SMSSDK.registerEventHandler(ev);}/*** 短信验证的回调监听*/private EventHandler ev = new EventHandler() {@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) { //回调完成//提交验证码成功,如果验证成功会在data里返回数据。data数据类型为HashMap<number,code>if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {Log.e("TAG", "提交验证码成功" + data.toString());HashMap<String, Object> mData = (HashMap<String, Object>) data;String country = (String) mData.get("country");//返回的国家编号String phone = (String) mData.get("phone");//返回用户注册的手机号Log.e("TAG", country + "====" + phone);if (phone.equals(phoneNumber)) {runOnUiThread(new Runnable() {//更改ui的操作要放在主线程,实际可以发送hander@Overridepublic void run() {showDailog("恭喜你!通过验证");dialog.dismiss();}});} else {runOnUiThread(new Runnable() {@Overridepublic void run() {showDailog("验证失败");dialog.dismiss();}});}} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {//获取验证码成功Log.e("TAG", "获取验证码成功");} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {//返回支持发送验证码的国家列表}} else {((Throwable) data).printStackTrace();}}};private void showDailog(String text) {new AlertDialog.Builder(this).setTitle(text).setPositiveButton("确定", null).show();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.tv_getCheckCode:toast("getCode");getCheckCode();break;case R.id.tv_sendCheckCode:toast("sendCode");sendCheckCode();break;}}/*** 获取验证码*/public void getCheckCode() {phoneNumber = et_number.getText().toString().trim();//发送短信,传入国家号和电话号码if (TextUtils.isEmpty(phoneNumber)) {toast("号码不能为空!");} else {SMSSDK.getVerificationCode("+86", phoneNumber);toast("发送成功!");}}/*** 向服务器提交验证码,在监听回调中监听是否验证*/private void sendCheckCode() {checkCode = et_checkCode.getText().toString();if (!TextUtils.isEmpty(checkCode)) {dialog = ProgressDialog.show(this, null, "正在验证...", false, true);//提交短信验证码SMSSDK.submitVerificationCode("+86", phoneNumber, checkCode);//国家号,手机号码,验证码Toast.makeText(this, "提交了注册信息:" + phoneNumber, Toast.LENGTH_SHORT).show();} else {Toast.makeText(this, "验证码不能为空", Toast.LENGTH_SHORT).show();}}/*** Toast* @param info*/public void toast(String info){Toast.makeText(MainActivity.this, info, Toast.LENGTH_SHORT).show();}@Overrideprotected void onDestroy() {SMSSDK.unregisterEventHandler(ev);super.onDestroy();}
}

测试效果

稍等一下,gif动画时间有点长,为了接收到短信哦!

可以选择关注微信公众号:jzman-blog 获取最新更新,一起交流学习!

Mob之短信验证集成SMSSDK相关推荐

  1. Android之Mob第三方短信验证服务

    目录 mob简单介绍 前期准备 2.1注册登录 2.2创建应用 2.3下载sdk 2.4引入sdK 调用有界面接口 3.1效果图 3.2配置AndroidManifest.xml 3.3添加代码 调用 ...

  2. 解决mob网站短信验证SDK更新后,android studio下的mob短信验证接入问题

    对于android开发来说,遇到需要短信注册验证的问题是很常见的,今天我们就来聊一聊在android studio上SMSSDK的接入.废话不多说:具体步骤如下: (1)打开我们的mob官网:http ...

  3. Android Studio使用Mob实现短信验证功能遇到的问题解决

    一.Mob短信验证 全球领先的数据智能科技平台-MobTech袤博解决 进行注册登入 登入成功后,点击开发者服务中的短信验证,来到开发者平台 填好信息创建成功就是下图,可以看到对应信息如下(AppKe ...

  4. Android Studio基于mob的短信验证

    Android Studio 基于mob平台提供的SMSSDK实现注册后绑定手机号的学习笔记 将mob提供的SMSSDK导入到AS中 首先在mob官网中注册自己的账号,申请一个app,获得APP Ke ...

  5. Unity游戏开发实现短信验证(SMSSDK)

    在游戏开发中登录.修改密码等情况下往往需要使用短信验证 本文介绍在Unity中访问SMSSDK来实现短信验证这一功能 实现了在Android平台上运行,我已经上传了本文源码点击打开链接,大家可以下载参 ...

  6. mob android 短信验证,Mob短信验证码插件使用说明

    欢迎使用Mob短信验证码插件 插件地址: https://ext.dcloud.net.cn/plugin?id=399 MobSms实现了注册时短信验证,取回密码手机验证功能,使用此模块之前需要先去 ...

  7. Android短信验证(手机号注册,绑定手机号获取验证码)实例

    今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册 ...

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

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

  9. 三方SDK——mob短信验证

    最常见的短信验证功能开发. 1.注册mob账号. 打开我们的mob官网:http://www.mob.com/   注册自己的账号 2.给我们的应用一个appkey和一个app secret. (1) ...

最新文章

  1. 服务器端linux发行版的选择
  2. R语言ggplot2可视化使用ggplotly(plotly version of R)可视化散点图(scatter plot)
  3. windows 中 Eclipse 打开当前文件所在文件夹
  4. 安卓使用 HTTP 协议访问网络
  5. C# 实现ADSL自动断网和拨号(适用于拨号用户)
  6. BZOJ 3489: A simple rmq problem
  7. python是面向过程的吗_Python开发是面向过程、函数还是对象?
  8. java怎么实现打牌_JAVA入门第三季实战:简易扑克牌
  9. npm介绍及与Node.js关联
  10. dbtool一bug跟踪记
  11. C#在Web项目中关闭Excel进程的方法
  12. linux使用vim同时打开文件,VIM 在同一个窗口中同时编辑多个文件
  13. “油猴”的五大神级脚本
  14. Main Menu菜单栏消失解决
  15. [FAQ10781]如何开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)
  16. 关于做深度学习,如何配置本地工作站(CPU、GPU等一系列问题扫盲和推荐)
  17. python利器app可以运行python嘛_python利器app_python利器安卓版v3.0
  18. OneTab插件的替代产品-OneTab Pro
  19. HttpWatch详细介绍(转载)
  20. 大数据导论答案_智慧树知到_大数据概论_章节测验答案

热门文章

  1. 蓝牙怎么区分单模和双模_蓝牙中的单模、双模是什么,它们有何不同
  2. 区块链在中国怎么练?
  3. Win11怎么开启任务管理器 Win11任务管理器开启方法
  4. 金融业信贷风控算法4-python的入门和介绍
  5. 中国菜刀使用(实战正确姿势)
  6. 智能语音时代,需要了解什么?
  7. 【前端实例代码】霓虹灯按钮动画效果悬停| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程
  8. 拓扑排序之AOV,关键路径之AOE
  9. oracle 命令操作
  10. Google-Guice入门介绍