您的位置:首页 > 其它

mob短信验证码功能集成 ------未上线

2017-06-01 13:15 495 查看
一.在使用Mob平台短信验证码时需要到官网注册账号然后获取开发者资格申请AppKey和AppSecret
注册Mob账号官网地址:http://www.mob.com 注册之后点击进入后台



进入后台然后点击短信验证码选择启用点击进入



获取AppKey和AppSecret如下


二.获取Key之后下载我们需要的SDK然后进行开发地址:http://www.mob.com/#/downloadDetail/SMS/Android可以选择Eclipse和Android
Studio两个版本的我们选择Android Studio的



新建一个Android Studio项目然后把我们下载的SDK SMSSDK文件夹中的jar包和SMSSDK.aar文件放入我们的项目libs中如下:



然后在build.gradle中添加依赖注意aar文件是你下载SDK时的版本
可以在下面复制:
repositories {
flatDir {
dirs 'libs'     //你的aar目录地址
}
}
Dependencies{

compile name: 'SMSSDK-2.1.4', ext: 'aar'
compile name: 'SMSSDKGUI-2.1.4', ext: 'aar'

}

三、布局文件代码:

<?xml version="1.0" encoding= "utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:orientation="vertical">

<EditText
android:id="@+id/userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:hint="请输入手机号"
android:layout_gravity="center_vertical"
android:singleLine="true"
android:textSize="16sp" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<EditText
android:id="@+id/validateNum"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:padding="10dp"
android:hint="请输入验证码"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:singleLine="true"
android:textSize="16sp" />
<Button
android:id="@+id/validateNum_btn"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/get"
/>
</LinearLayout>

四、Activity代码:

package com.example.administrator.smsyzm;

import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;

import static com.example.administrator.smsyzm.R.id.userName;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private static final String appkey="1e43cb0abcd81";
private  static  final  String appsecret="bf3e127349f0d850cd9999a3f02a2de4";
private EditText username,validateNum;
private Button validateNum_btn,landing_btn;
public EventHandler eh; //事件接收器
private TimeCount mTimeCount;//计时器

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SMSSDK.initSDK(this, appkey,appsecret);
initEvent();
init();
}

private void init() {
eh = new EventHandler(){
@Override
public void afterEvent(int event,  int result, Object data) {

if (result == SMSSDK.RESULT_COMPLETE) {  //回调完成

if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {  //提交验证码成功

startActivity(new Intent(MainActivity. this, LoginActivity.class)); //页面跳转

}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){  //获取验证码成功

}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){  //返回支持发送验证码的国家列表

}
}else{
((Throwable)data).printStackTrace();
}
}
};
SMSSDK.registerEventHandler(eh); //注册短信回调
}

private void initEvent() {
validateNum_btn=(Button) findViewById(R.id.validateNum_btn);
landing_btn=(Button) findViewById(R.id.landing_btn);
username=(EditText) findViewById(userName);
validateNum=(EditText) findViewById(R.id.validateNum);
validateNum_btn.setOnClickListener(this);
mTimeCount = new TimeCount(60000, 1000);
}

@Override
public void onClick(View v) {
switch (v.getId()){
case  R.id.validateNum_btn:
//                SMSSDK.getSupportedCountries();//获取短信目前支持的国家列表
if(!username.getText().toString().trim().equals("")){
if (checkTel(username.getText().toString().trim())) {
SMSSDK.getVerificationCode("+86",username.getText().toString()); //获取验证码
mTimeCount.start();
}else{
Toast.makeText(MainActivity.this,  "请输入正确的手机号码", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(MainActivity.this, "请输入手机号码", Toast.LENGTH_SHORT).show();
}
break;
}

}
/**
* 正则匹配手机号码
* @param tel
* @return
*/
public boolean checkTel(String tel){
Pattern p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$");
Matcher matcher = p.matcher(tel);
return matcher.matches();
}
@Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eh);
}

/**
* 计时器
*/
class TimeCount extends CountDownTimer {

public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}

@Override
public void onTick(long l) {
validateNum_btn.setClickable(false);
validateNum_btn.setText(l/1000 + "秒后重新获取");
}

@Override
public void onFinish() {
validateNum_btn.setClickable(true);
validateNum_btn.setText("获取验证码");
}
}
}
五、运行结果如下,界面很low功能实现了

六、短信样式:

注:因为这只是一个测试的demo没办法上线,所以没办法修改短信的样式,想要修改样式上线自定义签名即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息