1.工具列表
使用工具Android Studio 3.2.
win10.
Mumu模拟器
2.背景
之所以选择Mob,是因为其提供免费的短信验证服务。可以供学习。但是其官方教程相当简洁。所以出一个详细的教程。主要针对无gui调用方法。
3.配置
- 1.首先申请注册Mob
官网如下:Mob
添加应用,示例shopping。点击概况,获取app的appkey和app secret
- 2.新建工程
工程名shopping.
- 3.build.gradle配置
打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’。下面是我的配置,这段代码可官网教程中看到。传送门
buildscript {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
}
}
在使用SMSSDK模块的build.gradle中,添加MobSDK插件和扩展,如下所示:
apply plugin: 'com.android.application'
apply plugin: 'com.mob.sdk'
// 在MobSDK的扩展中注册SMSSDK的相关信息
MobSDK {
appKey "*自己的app key**"
appSecret "你自己的appsec"
SMSSDK {}
}
3.实现方法
- 1.application 中初始化
一般app都是新建application的。所以建议采用我下面这种初始化方法。
新建application extends MobApplication . application代码中还可以其他的一些操作。
public class ShopApplication extends MobApplication {
//整个app的上下文
public static Context sContext;
private static ShopApplication mInstance;
public static ShopApplication getInstance() {
return mInstance;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
// 通过代码注册你的AppKey和AppSecret
MobSDK.init(this, "xxxx", "5xxxxxxxxxxxx");
sContext = getApplicationContext();
}
public static ShopApplication getApplication() {
return mInstance;
}
}
- 2.activity 中调用方法
新建activity,假定读者具有一定的编程基础。布局和相关监听不放上来了。如果有需要请留言于此或公众号 一匹大懒虫 ,过后会整理份儿简单的代码放上来。
public class RegesterActivity extends BaseActivity {
@BindView(R.id.edittxt_phone)
ClearEditText mEtxtPhone;
@BindView(R.id.edittxt_pwd)
ClearEditText mEtxtPwd;
@BindView(R.id.btn_getcode)
Button btn_get_code;
@BindView(R.id.btn_sign_up)
Button btn_signup;
private String phone;
private String pwd;
@Override
protected int getContentResourseId() {
return R.layout.activity_regester;
}
EventHandler eventHandler = new EventHandler() {
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE) {
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码成功
@SuppressWarnings("unchecked")
HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
String country = (String) phoneMap.get("country");
String phone = (String) phoneMap.get("phone");
// 提交用户信息
// complete yourself
//////////////////////////////
registerUser(country, phone);
//////////////////////////////
} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
ToastUtils.showSafeToast(RegActivity.this, "Code has been sent");
//获取验证码成功
} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
//返回支持发送验证码的国家列表
} else {
}
}
}
};
@Override
protected void init() {
initToolBar();
// 注册回调监听接口
SMSSDK.registerEventHandler(eventHandler);
}
private void initToolBar() {
btn_get_code.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getCode();
}
});
btn_signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phone = mEtxtPhone.getText().toString();
pwd = mEtxtPwd.getText().toString();
SMSSDK.submitVerificationCode("86",phone,pwd);
}
});
}
private void getCode() {
phone = mEtxtPhone.getText().toString();
if ("xxxxx".equalsIgnoreCase(MobSDK.getAppkey())) {
}else {
Toast.makeText(this, "wrong appkey! ", Toast.LENGTH_SHORT).show();
}
SMSSDK.getVerificationCode("86",phone);
}
// 提交用户信息
private void registerUser(String country, String phone) {
}
@Override
protected void onDestroy() {
// 销毁回调监听接口
SMSSDK.unregisterAllEventHandler();
super.onDestroy();
}
}
3.短信验证
4.售后
扫描二维码关注公众号,回复:
11525300 查看本文章