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:+'


    }

}



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、发送验证码并取得验证结果

有两种方法完成验证码短信的发送和验证:调用可视化界面和使用无界面接口

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中添加:


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容