先看一下模拟的效果,

android studio短信验证 android studio验证码怎么做_ci

android studio短信验证 android studio验证码怎么做_jar_02

android studio短信验证 android studio验证码怎么做_jar_03

第一步:

首先我们去http://www.mob.com/ 去注册一个账号,然后登录主页

android studio短信验证 android studio验证码怎么做_android_04

选择进入后台,接着你会看到如下

android studio短信验证 android studio验证码怎么做_ci_05

选择红色框圈住的短信验证选项,鼠标悬浮的时候出现一个提示,我们选择立即使用

android studio短信验证 android studio验证码怎么做_ci_06

添加一个应用选择android,此时会生成一个app Key和app Secret,这两个我们待会在代码中会用到。

android studio短信验证 android studio验证码怎么做_jar_07

这些做完之后,我们需要下载短信验证码的sdk。

android studio短信验证 android studio验证码怎么做_ci_08

下载之后,我们在android studio中新建一个项目

第一步:导入需要的jar包

刚刚我们下载的短信验证码sdk文件解压之后是这样的:

android studio短信验证 android studio验证码怎么做_jar_09

打开SMSSDK之后出现下面的包

android studio短信验证 android studio验证码怎么做_jar_10

选择后面4个复制到Android studio中的libs文件夹下。
此时要做的就是在app的build.gradle中添加如下依赖

repositories{
    flatDir{
        dirs 'libs' //就是你放aar的目录地址
    }
}

dependencies {
    ....//你的其他依赖
    compile name:'SMSSDK-<version>',ext:'aar'
    compile name:'SMSSDKGUI-<version>',ext:'aar'
}

android studio短信验证 android studio验证码怎么做_ci_11

这里的version是你下载的版本号

1,文件说明

文件名                        说明                需求

MobCommons.jar                Mob 通用公共库      必须
MobTools.jar                  Mob 工具公共库      必须

SMSSDK-<version>.aar          SMSSDK 核心         必须
SMSSDKGUI-<version>.aar       SMSSDK GUI 开源库   可选

如果你需要用GUI库,则需要加入全部这四个文件,不需要可以去掉SMSSDKGUI。为了方便和ShareSDK一起集成,公共库依然打包成jar。
如果你同时使用ShareSDK,保留一份公共库就行(公共库版本一致或兼容)。

2,如何使用

将以上文件按需放入Android Studio项目所要使用SMSSDK的Module所在的Libs里面,再在Module的build.gradle里面将libs加入仓库(repositories),
然后添加依赖(dependencies )示例如下:

repositories{
    flatDir{
        dirs 'libs' //就是你放aar的目录地址
    }
}

dependencies {
    ....//你的其他依赖
    compile name:'SMSSDK-<version>',ext:'aar'
    compile name:'SMSSDKGUI-<version>',ext:'aar'
}

第二步:
在activity_main.xml中

<Button
        android:id="@+id/register"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textColor="#ffffff"
        android:background="#009688"
        android:text="SendMessage" />

MainActivity.java中的代码

package com.example.administrator.smstest;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import java.util.HashMap;

import cn.smssdk.EventHandler;
import cn.smssdk.gui.RegisterPage;

public class MainActivity extends AppCompatActivity {
    private Button sendMessage;

    //这里填上你自己的appKey和appSecret我把自己的隐去了
    private String appKey = "******";
    private String appSecret = "******";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //第一步:初始化验证码调用initSDK()方法
        /**初始化验证码
         * 有三个参数,第一个是上下文对象,第二三个参数是在mob.com中申请的、
         */

        cn.smssdk.SMSSDK.initSDK(MainActivity.this, appKey, appSecret);

        //sendMessage绑定和点击事件

        sendMessage= (Button) findViewById(R.id.register);
        sendMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //注册页面
                RegisterPage registerPage = new RegisterPage();
                //接口回调
                registerPage.setRegisterCallback(new EventHandler() {
                    public void afterEvent(int event, int result, Object data){
                        // 解析注册结果
                        if (result == cn.smssdk.SMSSDK.RESULT_COMPLETE) {
                            @SuppressWarnings("unchecked")
                            //取得数据
                            HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
                            String country = (String) phoneMap.get("country");
                            String phone = (String) phoneMap.get("phone");
                             //创建一个方法
                            registerUser(country, phone);
                        }
                    }
                });
                registerPage.show(MainActivity.this);
            }
        });

    }

    public void registerUser(String country, String phone) {
        cn.smssdk.SMSSDK.submitUserInfo(null, null, null, country, phone);
    }
}

最后要加上很重要的配置信息

在manifest中加入以下权限

<uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

并且要加上acticity的配置

<activity
            android:name="com.mob.tools.MobUIShell"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:windowSoftInputMode="stateHidden|adjustResize"/>

好了,此时大功告成!试试你的结果吧。