android短信验证

android短信验证:

第一步下载SMSSDK

首先注册必须注册,获取相应的 APPKEY, APPSECRTE 之后的程序会用到

下载地址

将MobCommons-2017.0321.1624.jar MobTools2-017.0321.1624.jar, 和SMSDk-2.1.4.aar

放入app的lib文件夹

之后进行配置:

在app的build.gradle加入以下文本

repositories {
    flatDir {
        dirs "libs"
    }
}
在添加依赖项加入
compile name:'SMSSDK-2.1.4',ext:'aar'

2:代码部分

UI代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="#FAFAFA"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:orientation="vertical"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#64B5F6"
        android:minHeight="?attr/actionBarSize" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="手机号注册"
            android:textColor="@android:color/white"
            android:textSize="20sp"
            android:textStyle="bold" />
    </android.support.v7.widget.Toolbar>

    <com.rengwuxian.materialedittext.MaterialEditText
        android:id="@+id/phone_num_text"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:hint="    手机号码"
        app:met_primaryColor="@android:color/white"
    />

    <com.rengwuxian.materialedittext.MaterialEditText
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:hint="    6-12位字母数字组合密码"
        app:met_primaryColor="@android:color/white"
    />

    <com.rengwuxian.materialedittext.MaterialEditText
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:hint="    确认密码"
        app:met_primaryColor="@android:color/white"
    />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.rengwuxian.materialedittext.MaterialEditText
            android:id="@+id/msg_verify_text"
            android:layout_width="0dp"
            android:layout_weight="3"
            android:layout_height="70dp"
            android:hint="    短信验证码"
            app:met_primaryColor="@android:color/white"
        />
        <Button
            android:id="@+id/get_msg_verify_button"
            android:background="@drawable/rect"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="获取验证码"
        />
    </LinearLayout>

    <Button
        android:id="@+id/register_button"
        android:background="@drawable/rect"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="50dp"
        android:text="注册"/>
</LinearLayout>



逻辑代码:

package com.example.administrator.logintest;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.rengwuxian.materialedittext.MaterialEditText;

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

import static android.R.id.message;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private static final String APP_KEY = "获得的APPKEY";
    private static final String APP_SECRET = "获得的APP_SECRET";
    private String phoneNumber;

    private MaterialEditText phoneText;
    private MaterialEditText msgVerifyText;
    private Button getMsgVerifyButton;
    private Button registerButton;

    private Handler handle = new Handler() {
        @Override
        public void handleMessage(Message message) {
            Log.d("MainActivity", "handleMessage");
            int event = message.arg1;
            int result = message.arg2;
            Object data = message.obj;

            if(result == SMSSDK.RESULT_COMPLETE) {
                if(event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                    Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show();
                    Log.d("MainActivity", "验证成功");
                }else if(event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                    Toast.makeText(MainActivity.this, "获取验证码成功", Toast.LENGTH_SHORT).show();
                    Log.d("MainActivity", "获取验证码成功");
                }else if(event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
                    //返回支持发送验证码的国家列表
                }
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

        phoneText = (MaterialEditText) findViewById(R.id.phone_num_text);
        msgVerifyText = (MaterialEditText) findViewById(R.id.msg_verify_text);
        getMsgVerifyButton = (Button) findViewById(R.id.get_msg_verify_button);
        registerButton = (Button) findViewById(R.id.register_button);

        registerButton.setOnClickListener(this);
        getMsgVerifyButton.setOnClickListener(this);

        initSMSSDK();
    }

    public void initSMSSDK() {
        SMSSDK.initSDK(this, APP_KEY, APP_SECRET);
        EventHandler eventHandler = new EventHandler() {
            @Override
            public void afterEvent(int event, int result, Object data) { //消息回调接口
                Message msg = new Message();
                msg.arg1 = event;
                msg.arg2 = result;
                msg.obj = data;
                handle.sendMessage(msg);
            }
        };
        SMSSDK.registerEventHandler(eventHandler);
    }

    protected void onDestroy() {
        // 销毁回调监听接口
        SMSSDK.unregisterAllEventHandler();
        super.onDestroy();

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.get_msg_verify_button:
                phoneNumber = phoneText.getText().toString().trim();
                Log.d("MainActivity", phoneNumber);
                if (!TextUtils.isEmpty(phoneNumber)) {
                    SMSSDK.getVerificationCode("86", phoneNumber);//获取短信
                    Toast.makeText(this,"已经提交",Toast.LENGTH_LONG).show();
                }else {
                    Toast.makeText(this, "电话号码不能为空", Toast.LENGTH_LONG).show();
                }
                break;

            case R.id.register_button:
                String number = msgVerifyText.getText().toString().trim();
                Log.d("MainActivity", number);
                if (!TextUtils.isEmpty(number)) {
                    SMSSDK.submitVerificationCode("86", phoneNumber,number);//验证短信
                }else {
                    Toast.makeText(this, "验证码不能为空", Toast.LENGTH_LONG).show();
                    return;
                }
                break;
            default:
                break;
        }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值