MOB平台smssdk的短信集成
因为我有个视频(别人的)里面也是用到了mob的smssdk,但是里面用到的方法是非gradle,及手动下载sdk并进行依赖的方法,一开始想着按照里面的来,可是后面发现视频里的smssdk版本太低了。就用回官方的快速集成,但是官方的也有一个小坑。下面开始介绍
在项目的根目录下的build.gradle中添加相应代码(这里有个小坑)
按照官方的描述,只添加了 classpath 'com.mob.sdk:MobSDK:+' ,但是这样会出错。正确的方法是,还是在此文件中添加maven地址:
maven {url "http://mvn.mob.com/android"
}
上图:
2.在app-build.gradle(你的项目下的那个build文件,和第一步的不一样) 添加如下代码
apply plugin: 'com.mob.sdk'
// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {
appKey "*******" //这里得填你自己申请的appKey
appSecret "********" //这里得填你自己申请的appSecret
SMSSDK {}
}
最后一步,syc就行了。集成的就到这,下面是短信界面的设计以及代码
布局这一块没啥好说的,先设计最丑的吧。
关于验证码短信的代码,首先发布这个短信有两个提交。
第一次提交:你点击 获取短信 按钮,提交“请求获取验证码 ”
SMSSDK.getVerificationCode("86", registerPhone);
点击之后,获取验证码的按钮应该显示倒计时,这时用到一个类 CountDownTimer,直接贴上代码
private CountDownTimer timer = new CountDownTimer(60000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {btn_check.setText((millisUntilFinished / 1000) + "秒后可重发");}@Overridepublic void onFinish() {btn_check.setEnabled(true); //btn_check就是 获取验证码 按钮btn_check.setText("获取验证码");codeResult = false;}};
这只是一个方法,还得调用它:timer.start(); //放在按钮的监听事件里,还不知道的话等下我会贴出源码,自己找
第二次提交:检验验证码。
SMSSDK.submitVerificationCode("86", registerPhone,registerCode);//提交验证码 在eventHandler里面查看验证结果 registerCode为验证码
发送之后去到eventHandler看这两次提交的结果
private void initSMSSDK() {EventHandler eh=new EventHandler(){@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) {//回调完成if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {//提交验证码成功if (result == SMSSDK.RESULT_COMPLETE ){codeResult = true; //提交的验证码是正确的submitInfo();} else {Toast.makeText(registerActivity.this, "验证码错误,请重新输入", Toast.LENGTH_SHORT).show();register_code.setText("");}}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){//获取验证码成功if (result == SMSSDK.RESULT_COMPLETE ){} else {}}}else{((Throwable)data).printStackTrace();}}};
SMSSDK.registerEventHandler(eh); //注册短信回调
}
codeResult是验证码是否成功的标志。
下面贴出完整的代码
package com.handsomexi.homework.Activity;import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import com.handsomexi.homework.R;
import com.mob.MobSDK;import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;public class registerActivity extends AppCompatActivity {private boolean codeResult = false;private static String registerPhone;private static String registerCode;@BindView(R.id.register_account)EditText register_account;@BindView(R.id.register_password)EditText register_password;@BindView(R.id.register_phoneNumber)EditText register_phoneNumber;@BindView(R.id.check)Button btn_check;@BindView(R.id.register_code)EditText register_code;@BindView(R.id.register)Button register;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);ButterKnife.bind(this);MobSDK.init(this);initSMSSDK();//sendCode(this);}@OnClick({R.id.check,R.id.register})public void onViewClike(View view){switch (view.getId()){case R.id.check:if (validatePhone()){setEditText();SMSSDK.getVerificationCode("86", registerPhone);//发送短信验证码到手机号 86表示的是中国timer.start(); //使用计时器,设置验证码的时间限制}break;//点击注册按钮case R.id.register:setEditText(); //获取手机号码和验证码SMSSDK.submitVerificationCode("86", registerPhone,registerCode);//提交验证码 在eventHandler里面查看验证结果 code为验证码break;}}/*** 验证用户的其他信息* 这里验证两次密码是否一致 以及验证码判断*/private void submitInfo() {//如果验证码正确,保存用户信息,并把用户名和密码发到登录界面if (codeResult){codeResult = false;}}/*** 使用计时器来限定验证码* 在发送验证码的过程 不可以再次申请获取验证码 在指定时间之后没有获取到验证码才能重新进行发送* 这里限定的时间是60s*/private CountDownTimer timer = new CountDownTimer(60000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {btn_check.setText((millisUntilFinished / 1000) + "秒后可重发");}@Overridepublic void onFinish() {btn_check.setEnabled(true);btn_check.setText("获取验证码");codeResult = false;}};/*** 验证手机号码是否符合要求,11位 并且没有注册过(以后再写)** @return 是否符合要求*/private boolean validatePhone() {String phone = register_phoneNumber.getText().toString().trim();return true;}private void setEditText() {registerPhone = register_phoneNumber.getText().toString();registerCode = register_code.getText().toString(); //获取输入的验证码}private void initSMSSDK() {EventHandler eh=new EventHandler(){@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) {//回调完成if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {//提交验证码成功if (result == SMSSDK.RESULT_COMPLETE ){codeResult = true; //提交的验证码是正确的submitInfo();} else {Toast.makeText(registerActivity.this, "验证码错误,请重新输入", Toast.LENGTH_SHORT).show();register_code.setText("");}}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){//获取验证码成功if (result == SMSSDK.RESULT_COMPLETE ){} else {}}}else{((Throwable)data).printStackTrace();}}};SMSSDK.registerEventHandler(eh); //注册短信回调}@Overrideprotected void onDestroy() {super.onDestroy();SMSSDK.unregisterAllEventHandler(); //销毁}
}
用户信息存储还没有写
MOB平台smssdk的短信集成相关推荐
- Mob平台Smssdk获取短信验证码
短信验证码可以说是现在app中必备的功能,当然开发过程也很简单,各种各样的短信平台服务也很多,这里我用的是Mob平台的短信验证码服务.http://www.mob.com,注册登录,点击右上角头像,进 ...
- 【JAVA】短信集成设计方案
[JAVA]短信集成设计方案 一.系统集成需求 二.集成方案设计 三.接口设计 一.系统集成需求 1.现场巡视任务中,每一个巡视工单有开始和结束时间,当巡视任务超时.即当前时间已超过巡视工单的预计结束 ...
- 中国移动云MAS平台发送普通短信
使用中国移动云MAS平台发送普通短信 步骤 1.输入用户名和密码登录中国移动云MAS业务平台. 下载用户操作手册 和 HTTP接口文档 深入了解云MAS 2.在中国移动云MAS业务平台的主页面,点击[ ...
- 企业短信平台 php,梅州PHP短信平台企业,PHP短信平台
梅州PHP短信平台企业,PHP短信平台 现如今,很多企业在短信验证码平台时,难免会遇到这样的问题"如何评判一家短信验证码平台",因为大多数企业不想换了又换,这样不仅浪费了金钱,而且 ...
- 谈到海外市场推广,别小觑蒲公英内测托管平台的国际短信服务
在互联网企业关注跨境市场的大背景下,海外推广渠道的类型越来越复杂,Google.Facebook.Twitter.LinkedIn.TikTok联盟营销已经广为大家所知,其次就是SEM推广,比如谷歌的 ...
- 百度智能云-短信集成-java-jdk8
1.百度智能云短信集成,提供了默认的sdk,不过这个sdk需要用到jdk中的 jdk.tools,所以jdk11没法用sdk. maven集成 <dependency><groupI ...
- 如何用短信平台发送自定义短信?
我们经常会收到各类短信,如何用短信平台给用户发送自定义短信呢? 其实很简单,具体方法和步骤如下: 1.注册平台账号 以速盟云信短信平台为例,点击官网右上面的"注册"按钮,注册并登录 ...
- android怎么实现手机号登录(2020最新版超详细Mob平台+SMSSDK)?
mob平台发送验证码 第一步:注册mob平台账号 第二步:在mob平台配置SMSSDK环境. 1.点击下图红色圆圈处的产品中心. 2.点击立即进入. 3.点击创建应用. 4.同意隐私服务. 5.创建应 ...
- Mob SDK实现安卓短信验证
Mob短信验证SDK是一款完全免费的短信服务SDK,查阅后发现大多数移动开发者都使用此SDK进行开发,本人使用后也得到了较好的体验. 一 要使用此SDK,首先要在Mob官网注册一个账号,获得使用此服务 ...
最新文章
- SLAM小结——求解退化问题解析(F、H、E)(面试经验总结)
- 小程序门店自提功能开启,酷客多带你玩转O2O模式
- 2019年值得关注的九个AI创业风口
- WPF Interaction框架简介(一)——Behavior
- oracle SQL以结尾函数,Oracle学习笔记--SQL查询和SQL函数(转) -- 迷失de天空 -- 编程爱好者......
- android中Textview 和图片同时显示时,文字省略号显示,图片自动靠到右边
- 齐家网困境:进退两难,合作方和消费者两头都不讨好?
- Ubuntu11.04更新源(转)
- 安装VS2013的离线MSDN帮助文档
- 前端开发之基础知识-HTML(一)
- c++ winpcap开发(5)
- 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型
- dialog问题记录
- git GUI管理工具 sourcetree使用
- android对象引用释放,Android程序的内存泄漏与规避方法
- 【aliplayer】阿里播放器的使用
- linux安装ps2键盘驱动程序,VoodooPS2Controller v1.8.25 黑苹果键盘鼠标触摸板万能驱动 _ 黑苹果乐园...
- 导航栏背景色、标题颜色以及返回键自定义
- android 绘画笔迹回放_android画板笔锋实现
- python 调用Multipart类型接口上传文件和下载文件