Android使用MobSDK短信驗證
短信注冊和短信驗證已經(jīng)是家常便飯了,所以當然要學習如何使用SDK啦
MobSDK可以免費發(fā)短信,當然就用它啦
http://www.mob.com
1.首先下載sdk
2.在項目新建一個叫l(wèi)ib的文件夾把4個東西放進去
3.在app的build.gradule添加如下代碼
repositories{ flatDir{ dirs 'lib' //就是你放aar的目錄地址 } } dependencies { //....... //其他依賴包 compile name: 'SMSSDK-2.1.0', ext: 'aar' compile name: 'SMSSDKGUI-2.1.0', ext: 'aar' compile files('lib/MobCommons-2016.0624.1326.jar') compile files('lib/MobTools-2016.0624.1326.jar') }
4.在AndroidManifest.xml中添加權限和activity
<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 android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize"/>
5.開始使用
初始化SDK
SMSSDK.initSDK(this, "您的appkey", "您的appsecret");
發(fā)送驗證碼
SMSSDK.getVerificationCode("86","您的手機號");
6.驗證驗證碼
收到驗證碼后要post到Mob的服務器上驗證
首先在到官網(wǎng)上開通服務端驗證開關
請求地址為:https://webapi.sms.mob.com/sms/verify
請求方式: POST
請求參數(shù)
•appkey 應用appkey
•phone 電話號碼
•zone 區(qū)號
•code 需要驗證的驗證碼
我已經(jīng)幫你寫好post的方法內容,只需傳地址和參數(shù)就能返回結果
/** * 發(fā)起https請求 * @param address post地址 * @param params 參數(shù) * @return 結果 */ public static String requestData(String address ,String params){ HttpURLConnection conn = null; try { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){ public X509Certificate[] getAcceptedIssuers(){return null;} public void checkClientTrusted(X509Certificate[] certs, String authType){} public void checkServerTrusted(X509Certificate[] certs, String authType){} }}; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new SecureRandom()); //ip host verify HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String urlHostName, SSLSession session) { return urlHostName.equals(session.getPeerHost()); } }; //set ip host verify HttpsURLConnection.setDefaultHostnameVerifier(hv); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); URL url = new URL(address); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST");// POST conn.setConnectTimeout(3000); conn.setReadTimeout(3000); // set params ;post params if (params!=null) { conn.setDoOutput(true); DataOutputStream out = new DataOutputStream(conn.getOutputStream()); out.write(params.getBytes(Charset.forName("UTF-8"))); out.flush(); out.close(); } conn.connect(); //get result if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream in=conn.getInputStream(); StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = in.read(b)) != -1;) { out.append(new String(b, 0, n)); } return out.toString(); } else { System.out.println(conn.getResponseCode() + " "+ conn.getResponseMessage()); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) conn.disconnect(); } return null; }
既然是網(wǎng)絡請求當然要新建線程使用啦
new Thread(new Runnable() { @Override public void run() { String params="appkey=您的appkey;phone=您的手機號;zone=86;code=手機收到的驗證碼"; String result = requestData("https://webapi.sms.mob.com/sms/verify", params); //輸出結果 System.out.println(result); } }).start();
輸出結果樣例{status:200}
結果編碼
返回值 結果描述
200 驗證成功
405 AppKey為空
406 AppKey無效
456 國家代碼或手機號碼為空
457 手機號碼格式錯誤
466 請求校驗的驗證碼為空
467 請求校驗驗證碼頻繁(5分鐘內同一個appkey的同一個號碼最多只能校驗三次)
468 驗證碼錯誤
474 沒有打開服務端驗證開關
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android通過繼承Binder類實現(xiàn)多進程通信
本篇文章主要介紹了Android通過繼承Binder類實現(xiàn)多進程通信,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03解析:android 如何從JPEG生成BufferedImage
本篇文章是對在android中,如何從JPEG生成BufferedImage的解決方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06android中創(chuàng)建通知欄Notification代碼實例
這篇文章主要介紹了android中創(chuàng)建通知欄Notification代碼實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-05-05android實現(xiàn)圖片閃爍動畫效果的兩種實現(xiàn)方式(實用性高)
本文通過兩種方法給大家講解了android實現(xiàn)圖片閃爍動畫效果,實用性非常高,對這兩種方法感興趣的朋友一起通過本文學習吧2016-09-09Android實現(xiàn)3種側滑效果(仿qq側滑、抽屜側滑、普通側滑)
這篇文章主要為大家詳細介紹了Android實現(xiàn)多種側滑效果,包括仿qq側滑,抽屜側滑,普通側滑三種效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04