Android开发:Mob SMSSDK无gui调用教程

1.工具列表

使用工具Android Studio 3.2.
win10.
Mumu模拟器

2.背景

之所以选择Mob,是因为其提供免费的短信验证服务。可以供学习。但是其官方教程相当简洁。所以出一个详细的教程。主要针对无gui调用方法。

3.配置

  • 1.首先申请注册Mob

官网如下:Mob
添加应用,示例shopping。点击概况,获取app的appkey和app secret
在这里插入图片描述在这里插入图片描述

  • 2.新建工程

工程名shopping.

  • 3.build.gradle配置

打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’。下面是我的配置,这段代码可官网教程中看到。传送门


buildscript {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath "com.mob.sdk:MobSDK:2018.0319.1724"
         }
}

在这里插入图片描述

在使用SMSSDK模块的build.gradle中,添加MobSDK插件和扩展,如下所示:

apply plugin: 'com.android.application'
apply plugin: 'com.mob.sdk'

// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {
    appKey "*自己的app key**"
    appSecret "你自己的appsec"
    SMSSDK {}
}

3.实现方法

  • 1.application 中初始化

一般app都是新建application的。所以建议采用我下面这种初始化方法。
新建application extends MobApplication . application代码中还可以其他的一些操作。


public class ShopApplication extends MobApplication {

    //整个app的上下文
    public static Context sContext;

    private static ShopApplication mInstance;

    public static ShopApplication getInstance() {
        return mInstance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
        // 通过代码注册你的AppKey和AppSecret
        MobSDK.init(this, "xxxx", "5xxxxxxxxxxxx");

        sContext = getApplicationContext();

    }



    public static ShopApplication getApplication() {
        return mInstance;
    }

}


  • 2.activity 中调用方法
    新建activity,假定读者具有一定的编程基础。布局和相关监听不放上来了。如果有需要请留言于此或公众号 一匹大懒虫 ,过后会整理份儿简单的代码放上来。

public class RegesterActivity extends BaseActivity {


    @BindView(R.id.edittxt_phone)
    ClearEditText mEtxtPhone;
    @BindView(R.id.edittxt_pwd)
    ClearEditText    mEtxtPwd;
    @BindView(R.id.btn_getcode)
    Button btn_get_code;
    @BindView(R.id.btn_sign_up)
    Button btn_signup;

    private String phone;
    private String pwd;

    @Override
    protected int getContentResourseId() {
        return R.layout.activity_regester;
    }

    EventHandler eventHandler = new EventHandler() {
        public void afterEvent(int event, int result, Object data) {
            if (result == SMSSDK.RESULT_COMPLETE) {
                //回调完成
                if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                        //提交验证码成功
                   
                    @SuppressWarnings("unchecked")
                    HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
                    String country = (String) phoneMap.get("country");
                    String phone = (String) phoneMap.get("phone");
                    // 提交用户信息
                    // complete yourself
                    //////////////////////////////
                    registerUser(country, phone);
                    //////////////////////////////
                } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                        ToastUtils.showSafeToast(RegActivity.this, "Code has been sent");
                    //获取验证码成功
                } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
                    //返回支持发送验证码的国家列表
                } else {


                }
            }
        }
    };

    @Override
    protected void init() {
        initToolBar();
        // 注册回调监听接口
        SMSSDK.registerEventHandler(eventHandler);
    }


    private void initToolBar() {
       btn_get_code.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getCode();
            }
        });
        btn_signup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                phone = mEtxtPhone.getText().toString();
        pwd = mEtxtPwd.getText().toString();
        SMSSDK.submitVerificationCode("86",phone,pwd);
            }
        });
    }

    private void getCode() {
        phone = mEtxtPhone.getText().toString();
      if ("xxxxx".equalsIgnoreCase(MobSDK.getAppkey())) {

        }else {
            Toast.makeText(this, "wrong appkey! ", Toast.LENGTH_SHORT).show();
        }
 
        SMSSDK.getVerificationCode("86",phone);
    }

    // 提交用户信息
    private void registerUser(String country, String phone) {
    }

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

}


3.短信验证

在这里插入图片描述

在这里插入图片描述

4.售后

在这里插入图片描述

扫描二维码关注公众号,回复: 11525300 查看本文章

猜你喜欢

转载自blog.csdn.net/CoomCon/article/details/102749324