国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現短信驗證功能的代碼

2019-12-12 05:53:30
字體:
來源:轉載
供稿:網友

在我們現在開發APP過程中,當用戶注冊時,短信驗證是必不可少的操作,這里我們就是用一個免費的第三方短信驗證SDK-MOP

首先看下效果圖


這里寫圖片描述

獲取AppKey和AppSecret

首先進入官網,登錄(沒有帳號的自己去注冊一個)。鼠標移動到右側頭像處,點擊進入后臺。


這里寫圖片描述

官網首頁

選擇SecurityCodeSDK。


這里寫圖片描述

選擇短信SDK

進入后臺頁面后,點擊添加按鈕、填寫應用名稱(這個可以隨便寫)、選擇Android后,點擊添加即可。

這里寫圖片描述 

添加應用

添加成功后,就會進入以下界面,在這里就可以看到剛剛申請成功的App Key和App Secret

這里寫圖片描述

下載SDK

下載SDK

官方文檔

這里我們選擇AndroidStudio版本

下載之后解壓,有一個SMSSDK文件夾 里面有4個包 ,把他們放到我們項目的libs下


這里寫圖片描述

之后打開app下的buildgradle,按照下面的圖進行操作


這里寫圖片描述

這是AndroidStudio代碼

repositories{ flatDir{ dirs 'libs' }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile name:'SMSSDK-2.1.1',ext:'aar' compile name:'SMSSDKGUI-2.1.1',ext:'aar' compile 'com.android.support:appcompat-v7:23.3.0'}

配置AndroidManifest.xml

加權限

 <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然后打“application”下添加如下activity:

<activity  android:name="com.mob.tools.MobUIShell"  android:theme="@android:style/Theme.Translucent.NoTitleBar"  android:configChanges="keyboardHidden|orientation|screenSize"  android:windowSoftInputMode="stateHidden|adjustResize"/>

使用SMSSDK發送短信驗證碼,并驗證

核心方法

1.初始化SDK,單例,可以多次調用;任何方法調用前,必須先初始化

initSDK(Context context, String appkey, String appSecrect)

2.注冊回調接口

registerEventHandler(EventHandler handler)

3.注銷回調接口

unregisterEventHandler(EventHandler handler)

4.接收回調的類

EventHandler

initSDK方法是短信SDK的入口,需要傳遞您從ShareSDK應用管理后臺中注冊的應用AppKey和AppSecrete,如果填寫錯誤,后續的操作都將不能進行。registerEventHandler用來往SMSSDK中注冊一個事件接收器,SMSSDK允許開發者注冊任意數量的接收器,所有接收器都會在事件 被觸發時收到消息。

registerEventHandler必須和unregisterEventHandler配套使用,否則可能造成內存泄漏。

5.獲取短信目前支持的國家列表,在監聽中返回

getSupportedCountries()

6.請求獲取短信驗證碼,在監聽中返回

getVerificationCode(String country, String phone)

7.提交短信驗證碼,在監聽中返回

submitVerificationCode(String country, String phone, String code)

getVerificationCode用于向服務器請求發送驗證碼的服務,需要傳遞國家代號和接收驗證碼的手機號碼,支持此服務的國家代碼在 getSupportedCountries中獲取。請求getVerificationCode的時間間隔不應該小于60秒,否則服務端會返回“操作過 于頻繁”的錯誤 submitVerificationCode用于向服務器提交接收到的短信驗證碼,驗證成功后會通過EventHandler返回國家代碼和電話號碼。

具體實現步驟

初始化SDK。

// 填寫從短信SDK應用后臺注冊得到的APPKEY

 private static String APPKEY = "154e3e410abc3";

// 填寫從短信SDK應用后臺注冊得到的APPSECRET

 private static String APPSECRET = "05713446f9786e2ad096c46fd4735dfe";SMSSDK.initSDK(context, APPKEY, APPSECRET);

聲明EventHandler。(獲取驗證碼成功、提交驗證碼成功等回調都在EventHandler中實現)

 EventHandler eh=new EventHandler() {  @Override  public void afterEvent(int event, int result, Object data) {  if (result == SMSSDK.RESULT_COMPLETE) {   //回調完成   if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {   //提交驗證碼成功   Log.i("EventHandler", "提交驗證碼成功");   }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){   //獲取驗證碼成功   Log.i("EventHandler", "獲取驗證碼成功");   }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){   //返回支持發送驗證碼的國家列表   Log.i("EventHandler", "返回支持發送驗證碼的國家列表");   }  }else{           ((Throwable)data).printStackTrace();   Log.i("EventHandler", "回調失敗");  }  } };

這里需要注意一下:afterEvent()并不在主線程中,因此回調完成的時候不能在afterEvent()中執行更新UI,若需要執行UI操作請使用Handler。

注冊短信回調

SMSSDK.registerEventHandler(eh); //注冊短信回調

這樣就完成SDK的初始化和短信回調的注冊了,接下來只要調用發送短信和驗證驗證碼的接口就行了

銷毀回調監聽接口

 SMSSDK.unregisterAllEventHandler();

打開注冊界面

 // 打開注冊頁面  RegisterPage registerPage = new RegisterPage();  registerPage.setRegisterCallback(new EventHandler() {   public void afterEvent(int event, int result, Object data) {   // 解析注冊結果   if (result == SMSSDK.RESULT_COMPLETE) {    @SuppressWarnings("unchecked")    HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;    String country = (String) phoneMap.get("country");    String phone = (String) phoneMap.get("phone");    // 提交用戶信息    registerUser(country, phone);   }   }  });  registerPage.show(this);

這樣就完成了簡單的短信驗證了

PS:

把項目上傳到Github上了,附上地址

Github項目地址

以上所述是小編給大家介紹的Android實現短信驗證功能的代碼的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五寨县| 临沭县| 阳东县| 陆川县| 普陀区| 洛宁县| 葫芦岛市| 尼玛县| 房山区| 上高县| 株洲县| 汉沽区| 祥云县| 柳河县| 家居| 石家庄市| 辽宁省| 锡林郭勒盟| 南丹县| 渑池县| 苏尼特右旗| 林周县| 武邑县| 陆丰市| 枞阳县| 团风县| 和田县| 石楼县| 罗源县| 蕲春县| 奉新县| 淮南市| 贵溪市| 固安县| 刚察县| 遵义市| 平罗县| 宝山区| 长岛县| 广南县| 奇台县|