300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MOB平台smssdk的短信集成

MOB平台smssdk的短信集成

时间:2020-07-11 01:20:34

相关推荐

MOB平台smssdk的短信集成

因为我有个视频(别人的)里面也是用到了mob的smssdk,但是里面用到的方法是非gradle,及手动下载sdk并进行依赖的方法,一开始想着按照里面的来,可是后面发现视频里的smssdk版本太低了。就用回官方的快速集成,但是官方的也有一个小坑。下面开始介绍

在项目的根目录下的build.gradle中添加相应代码(这里有个小坑)

按照官方的描述,只添加了 classpath 'com.mob.sdk:MobSDK:+' ,但是这样会出错。正确的方法是,还是在此文件中添加maven地址:

maven {url "/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(); //销毁}}

用户信息存储还没有写

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。