Android教程 如何免费使用SMSSDK

简介:
+关注继续查看

获取mob的appkey
http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1一、配置gradle
1、打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’,如下所示;

buildscript {
    repositories {
        jcenter()
    }
 
    dependencies {
        ...
        classpath 'com.mob.sdk:MobSDK:+'
 
    }
}

1

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

// 添加插件
apply plugin: 'com.mob.sdk'
 
// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {
    appKey "d580ad56b4b5"
    appSecret "7fcae59a62342e7e2759e9e397c82bdd"
 
    SMSSDK {}
}

二、添加代码
1、初始化MobSDK
如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:

MobSDK.init(this);

以初始化MobSDK。
2、发送验证码并取得验证结果(如果提示489错误MD5错误请点击这里)
有两种方法完成验证码短信的发送和验证:调用可视化界面和使用无界面接口
2-1、以可视化界面完成操作

public void sendCode(Context context) {
    RegisterPage page = new RegisterPage();
    //如果使用我们的ui,没有申请模板编号的情况下需传null
    page.setTempCode(null);
    page.setRegisterCallback(new EventHandler() {
        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"); // 国家代码,如“86”
                String phone = (String) phoneMap.get("phone"); // 手机号码,如“13800138000”
                // TODO 利用国家代码和手机号码进行后续的操作
            } else{
                // TODO 处理错误的结果
            }
        }
    });
    page.show(context);
}

2-2、以无界面接口完成操作

// 在尝试读取通信录时以弹窗提示用户(可选功能)
SMSSDK.setAskPermisionOnReadContact(true);
 
EventHandler eventHandler = new EventHandler() {
    public void afterEvent(int event, int result, Object data) {
        // afterEvent会在子线程被调用,因此如果后续有UI相关操作,需要将数据发送到UI线程
        Message msg = new Message();
        msg.arg1 = event;
        msg.arg2 = result;
        msg.obj = data;
        new Handler(Looper.getMainLooper(), new Callback() {
            @Override
            public boolean handleMessage(Message msg) {
                int event = msg.arg1;
                int result = msg.arg2;
                Object data = msg.obj;
                if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                    if (result == SMSSDK.RESULT_COMPLETE) {
                        // TODO 处理成功得到验证码的结果
                        // 请注意,此时只是完成了发送验证码的请求,验证码短信还需要几秒钟之后才送达
                    } else {
                        // TODO 处理错误的结果
                        ((Throwable) data).printStackTrace();
                    }
                } else if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                    if (result == SMSSDK.RESULT_COMPLETE) {
                        // TODO 处理验证码验证通过的结果
                    } else {
                        // TODO 处理错误的结果
                        ((Throwable) data).printStackTrace();
                    }
                }
                // TODO 其他接口的返回结果也类似,根据event判断当前数据属于哪个接口
                return false;
            }
        }).sendMessage(msg);
    }
};
// 注册一个事件回调,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eventHandler);
 
// 请求验证码,其中country表示国家代码,如“86”;phone表示手机号码,如“13800138000”
SMSSDK.getVerificationCode(country, phone);
 
// 提交验证码,其中的code表示验证码,如“1357”
SMSSDK.submitVerificationCode(country, phone, code);
 
// 使用完EventHandler需注销,否则可能出现内存泄漏
protected void onDestroy() {
    super.onDestroy();
    SMSSDK.unregisterEventHandler(eventHandler);
}

三、混淆设置
SMSSDK已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对SMSSDK的混淆操作:

-keep class com.mob.**{*;}
-keep class cn.smssdk.**{*;}
-dontwarn com.mob.**

四、注意事项

  1. SMSSDK默认会添加一套开源的GUI库,如果您不需要这个库,可以在SMSSDK下设置“gui false”来关闭它
  2. MobSDK默认为SMSSDK提供最新版本的集成,如果您想锁定某个版本,可以在SMSSDK下设置“version “某个版本””来固定使用这个版本
  3. 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
repositories {
    jcenter()
}
目录
相关文章
|
8天前
|
存储 网络协议 物联网
Android集成MQTT教程:实现高效通信和实时消息传输
Android集成MQTT教程:实现高效通信和实时消息传输
41 0
|
2月前
|
Java Android开发
Android JNI开发从0到1,java调C,C调Java,保姆级教程详解
Android JNI开发从0到1,java调C,C调Java,保姆级教程详解
39 1
|
2月前
|
Android开发 开发者
安卓(Android) 刷机教程(任何机型、小米、华为等等)
安卓(Android) 刷机教程(任何机型、小米、华为等等)
569 0
|
4月前
|
存储 Java Linux
Android 教程
Android 教程
122 1
|
6月前
|
XML Java Android开发
Android Studio 教程:创建 Android 应用
以下教程介绍了使用 Android Studio 创建具有基本功能的 Android 应用程序的过程。它将帮助您迈出学习 Android 开发的第一步。
149 0
|
6月前
|
编解码 IDE Ubuntu
Android Development Studio 初学者教程
今天介绍的是面向初学者的 Android development studio 教程。它是用于 Android 开发的最佳 IDE 之一。在这篇文章中,我将引导你完成安装和设置 Android Studio 的步骤。
71 0
Android Development Studio 初学者教程
|
9月前
|
存储 负载均衡 安全
【Unity干货教程】如何实现Unity和Android原生互相调用?
Unity是一个跨平台开发工具,发布到移动平台也是大部分Unity开发者的必备技能。而由于Unity跨平台的特性,总会遇到在移动平台的技术细节支持不够,或者需要在调用其他原生插件的情况。这里我们说一下如何在Android Studio中创建一个可供Unity调用的aar插件,以实现Unity和Android原生互相调用的目的。
|
10月前
|
数据库 Android开发
android 多级下拉菜单实现教程 greendao使用
android 多级下拉菜单实现教程 greendao使用
104 0
android 多级下拉菜单实现教程 greendao使用
|
12月前
|
Android开发 内存技术
嵌入式实践教程--Android音视频开发(二)-OpenSLES播放PCM数据
嵌入式实践教程--Android音视频开发(二)-OpenSLES播放PCM数据
|
12月前
|
Android开发 C++
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg
推荐文章
更多