短信验证借助了mob.com(移动开发者服务平台),该服务平台提供了以下功能模块(需要自己注册账号)

  • ShareSDK:让App快速拥有强大的分享功能,提供全面的社会化数据统计。
  • 短信验证码:可轻松实现短信验证功能,最稳定的短信下发,覆盖全球。
  • ShareREC:最完美手游录像解决方案,录像、分享、社区、推广、统计,五大功能。
  • MobApi : 全国天气预报、邮编查询、菜谱大全、手机号码归属地等


Android Studio配置SDK
  1. SMSSDK下载

这里写图片描述

文件名说明需求
MobCommons.jarMob 通用公共库必须
MobTools.jarMob 工具公共库必须
SMSSDK-2.1.0.aarSMSSDK 核心必须
SMSSDKGUI-2.1.0.aarSMSSDK GUI 开源库可选

如果集成了ShareSDK,则可以共同使用公共库  (MobCommons.jar,MobTools.jar),
SMSSDKGUI-2.1.0.aar开发者可以自主选择,它为我们提供了封装好的注册等界面。


2. 将以上四个库放入libs文件

这里写图片描述


1. 配置build.gradle(Module级别)

这里写图片描述


4. 配置AndroidManifest.xml

权限添加

<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" />

application下添加如下activity

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


展示图

这里写图片描述

这里写图片描述

这里写图片描述


Demo

界面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.android.smsdemo.MainActivity">

    <Button
        android:id="@+id/register"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="注册手机号码"/>
</RelativeLayout>

主程序

package com.android.smsdemo;

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

import java.util.HashMap;

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

public class MainActivity extends AppCompatActivity {

    private Button registerBtn;

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

        registerBtn = (Button) findViewById(R.id.register);
        registerBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                /**
                 * 初始化SDK
                 */
                String appKey = "14a0a7a14c1fc";
                String appSecrete = "8c12046be7ec35cf47f46cf3c4d6ee15";
                SMSSDK.initSDK(MainActivity.this,appKey,appSecrete);

                /**
                 * 打开注册界面
                 */
                RegisterPage registerPage = new RegisterPage();
                registerPage.setRegisterCallback(new EventHandler(){
                    /**
                     * 解析注册结果
                     */
                    @Override
                    public void afterEvent(int event, int result, Object data) {
                        if(result == SMSSDK.RESULT_COMPLETE){
                            HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
                            String country = (String) phoneMap.get("country");
                            String phone = (String) phoneMap.get("phone");

                            /**
                             * 提交注册信息
                             */
                            SMSSDK.submitUserInfo(null,null,null,country,phone);

                        }
                    }

                });

                /**
                 * 显示注册页面
                 */
                registerPage.show(MainActivity.this);

            }
        });
    }



}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐