前言
獲取短信驗證碼的的第三方很多,今天介紹一個獲取短信驗證碼的demo,它有以下優勢
- 短信到達率幾乎100%
- 代碼經過我封裝,集成簡單
- 獲取短信驗證碼免費
下面對此demo的講解涉及以下內容:
- 短信平台使用簡介
- 短信驗證集成配置
- 短信驗證代碼封裝
- 倒計時類簡單講解
- 短信驗證在代碼中的使用
- 項目結構與效果圖
實現過程
一.短信平台使用簡介
短信平台地址及此平台發送短信驗證的特點在demo中的
MobSDKHelper類的最上面有詳細解釋,這里就不再贅述了。
二.短信驗證集成配置
2.1 在你的project的build.gradle中添加配置
buildscript {
repositories {
google()
jcenter()
//添加MobSDK的maven地址
maven {
url "http://mvn.mob.com/android"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
// 注冊MobSDK
classpath 'com.mob.sdk:MobSDK:+'
}
}
2.2 在你的app moduel的build.gradle中添加配置
// 添加插件
apply plugin: 'com.mob.sdk'
// 在MobSDK的擴展中注冊SMSSDK的相關信息
MobSDK {
appKey "244e915baae1a"
appSecret "b5eb7df4657dbde9b36b673cef463a3e"
SMSSDK {
// gui false
}
}
短信驗證的獲取有兩種方式,分為有界面集成和無界面集成,上面代碼中的“gui false”即為禁用有界面集成的代碼,也就是設置為false后,只能使用無界面集成方法進行獲取驗證碼
三.短信驗證代碼封裝
短信驗證碼的獲取及驗證,我封裝到了MobSDKHelper類中,下面對MobSDKHelper中涉及要用到的方法做以解釋
請求獲取短信驗證碼,你可以這樣,其中phone為你的設置的手機號碼,如"18507123357":
MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() {
@Override
public void success(String phone) {
//請求驗證碼成功的處理邏輯
//......
}
@Override
public void failed() {
//請求驗證碼失敗的處理邏輯
//......
}
});
手機收到驗證碼並填入editText中,點擊注冊來驗證驗證碼是否正確,你可以這樣,其中phone為電話號碼,code為收到的驗證碼:
MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() {
@Override
public void success(String phone) {
//驗證成功,做注冊邏輯
//......
}
@Override
public void failed() {
//驗證失敗,做失敗處理邏輯
//......
}
});
注銷短信驗證服務,一般在activity的onDestroy()方法中進行,注銷你可以類似這樣處理:
@Override
protected void onDestroy(){
MobSDKHelper.getInstance().unRegistSMSS();
super.onDestroy();
}
四.倒計時類簡單講解
短信驗證涉及到倒計時的問題,我封裝了一個倒計時類CountDownTimerHelper,下面對其使用做講解
CountDownTimerHelper繼承於CountDownTimer類,初始化的話,你可以這樣:
//初始化
mCountDownTimerHelper=new CountDownTimerHelper(context,button,millisInFuture,countDownInterval);
//解釋:context為上下文
//button 為點擊獲取驗證碼的Button對象
//millisInFuture 為總共需要倒計時的時間,單位為毫秒
//countDownInterval 為倒計時時間間隔,單位毫秒
開啟倒計時,你可以如下處理:
mCountDownTimerHelper.startTimer();
取消倒計時,一般在activity的onDestroy()方法中進行,你可以類似如下處理
@Override
protected void onDestroy(){
if(mCountDownTimerHelper!=null){
mCountDownTimerHelper.cancelTimer();
}
super.onDestroy();
}
五.短信驗證在代碼中的使用
下面簡單貼出在MainActivity中代碼的使用范例:
public class MainActivity extends BaseActivity{
private EditText mEdtPhone;
private EditText mEdtCode;
private Button mBtnGet;
private Button mBtnConfirm;
private CountDownTimerHelper mCountDownTimerHelper;
@Override
protected int getContentViewId() {
return R.layout.activity_main;
}
@Override
protected void initView() {
mEdtPhone=findViewById(R.id.edt_phone);
mEdtCode=findViewById(R.id.edt_code);
mBtnGet=findViewById(R.id.btn_get);
mBtnConfirm=findViewById(R.id.btn_confirm);
}
@Override
protected void initData() {
mCountDownTimerHelper=new CountDownTimerHelper(MainActivity.this,mBtnGet,60000,1000);
}
@Override
protected void setListener() {
mBtnGet.setOnClickListener(this);
mBtnConfirm.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String phone=mEdtPhone.getText().toString().trim();
String code=mEdtCode.getText().toString().trim();
switch (v.getId()) {
case R.id.btn_get://發送
mCountDownTimerHelper.startTimer();
MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() {
@Override
public void success(String phone) {
//請求驗證碼成功的處理邏輯
//......
LogUtil.e(MainActivity.class,"===phone="+phone);
}
@Override
public void failed() {
//請求驗證碼失敗的處理邏輯
//......
LogUtil.e(MainActivity.class,"===發送失敗了=====");
}
});
break;
case R.id.btn_confirm://提交
MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() {
@Override
public void success(String phone) {
ToastUtil.showShortToast(MainActivity.this,"====驗證成功===");
LogUtil.e(MainActivity.class,"===驗證成功====");
//驗證成功,做注冊邏輯
//......
}
@Override
public void failed() {
ToastUtil.showShortToast(MainActivity.this,"====驗證失敗===");
LogUtil.e(MainActivity.class,"===驗證失敗=====");
}
});
break;
default:
break;
}
}
@Override
protected void onDestroy(){
MobSDKHelper.getInstance().unRegistSMSS();
if(mCountDownTimerHelper!=null){
mCountDownTimerHelper.cancelTimer();
}
super.onDestroy();
}
六.項目結構與運行效果圖
項目結構圖
運行效果圖
android實現免費短信驗證
注:本文著作權歸作者,由demo大師代發,拒絕轉載,轉載需要作者授權