博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android教程 如何免费使用SMSSDK
阅读量:6122 次
发布时间:2019-06-21

本文共 3654 字,大约阅读时间需要 12 分钟。

获取mob的appkey

一、配置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
phoneMap = (HashMap
) 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()}

转载地址:http://zowua.baihongyu.com/

你可能感兴趣的文章
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
如何对网站进行归档
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Mindjet MindManager 2019使用教程:
查看>>
游戏设计的基本构成要素有哪些?
查看>>
详解 CSS 绝对定位
查看>>
AOP
查看>>
我的友情链接
查看>>
NGUI Label Color Code
查看>>