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、发送验证码并取得验证结果(如果提示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.**
四、注意事项
- SMSSDK默认会添加一套开源的GUI库,如果您不需要这个库,可以在SMSSDK下设置“gui false”来关闭它
- MobSDK默认为SMSSDK提供最新版本的集成,如果您想锁定某个版本,可以在SMSSDK下设置“version “某个版本””来固定使用这个版本
- 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
repositories { jcenter() }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何快速打造一款高清又极速的短视频APP?
整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿。纵观行业,在生活资讯、美食、搞笑、游戏、美妆等领域,短视频流量巨大但竞争激烈,但是在教育、财经、军事、旅游等行业还存在较大的机会。那么在这些垂直行业里,我们如何结合短视频能力,实现业务突破? 近期的云栖TechDay音视频技术专场中,阿里云视频云高级技术专家王海华现场分享了《高清极速-全面提升短视频应用体验》议题。他表示,作为短视频SDK服务提供方,视频云一直和客户同样关注如何把短视频的产品和体验做得更极致。本次分享讲从端到云再到端,探讨如何进行思考与优化,实现视频体验的全面提升。 短视频的业务特征 短视频可以随时随地进行拍摄、分享与浏览,所以它存在着海量的上传和播放 用户在移动端消费短视频的机型和网络情况十分复杂 用户对短视频体验的
- 下一篇
Android进阶性能调优;不可思议的OOM
前言; 本文发现了一类OOM(OutOfMemoryError),这类OOM的特点是崩溃时java堆内存和设备物理内存都充足,下文将带你探索并解释这类OOM抛出的原因。 文末有demo地址。 关键词: OutOfMemoryError, OOM,pthread_create failede,Could not allocate JNI Env 一、引子 对于每一个移动开发者,内存是都需要小心使用的资源,而线上出现的 OOM(OutOfMemoryError)都会让开发者抓狂,因为我们通常仰仗的直观的堆栈信息对于定位这种问题通常帮助不大。网上有很多资料教我们如何“紧衣缩食“的利用宝贵的堆内存(比如,使用小图片,bitmap 复用等),可是: 1.线上的 OOM 真的全是由于堆内存紧张导致的吗? 2.有没有 App 堆内存宽裕,设备物理内存也宽裕的情况下发生 OOM 的可能? 内存充裕的时候出现 OOM 崩溃? 3.看似不可思议,然而,最近笔者在调查一个问题的时候,通过自研的 APM 平台发现公司的一个产品的大部分 OOM 确实有这样的特征,即:OOM 崩溃时,java 堆内存远远低于 A...
相关文章
文章评论
共有0条评论来说两句吧...