参考文章:https://blog.csdn.net/pipimob/article/details/85329901
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 "2c71e8a6923df"
appSecret "e7ac915cffa87887a86743885c67e396"
SMSSDK {
gui true//去掉这一句会显示appKey不存在
}
}
3.初始化ModSdk
MobSDK.init(this);
4.发送验证码并取得验证结果
4.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);
}
4.2以无界面接口完成操作
public class MainActivity extends AppCompatActivity {
public EventHandler eventHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobSDK.init(this);
//sendCode(this);
hidesendCode();
SMSSDK.getVerificationCode("86", "19982029447");
SMSSDK.submitVerificationCode("86", "19982029447","7094");
}
public void hidesendCode(){
SMSSDK.setAskPermisionOnReadContact(true);
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 Handler.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 处理验证码验证通过的结果
String s = Integer.toString(result);
Log.e("a=",s);
} else {
// TODO 处理错误的结果
String s = Integer.toString(result);
Log.e("b=",s);
((Throwable) data).printStackTrace();
}
}
// TODO 其他接口的返回结果也类似,根据event判断当前数据属于哪个接口
return false;
}
}).sendMessage(msg);
}
};
// 注册一个事件回调,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eventHandler);
// 请求验证码,其中country表示国家代码,如“86”;phone表示手机号码,如“13800138000”
}
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eventHandler);
}