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

一.在使用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没办法上线,所以没办法修改短信的样式,想要修改样式上线自定义签名即可。

猜你喜欢

转载自blog.csdn.net/qq_26554909/article/details/72830266