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

首頁 > 系統(tǒng) > Android > 正文

Android使用MobSDK短信驗證

2019-12-12 05:45:15
字體:
來源:轉載
供稿:網友

短信注冊和短信驗證已經是家常便飯了,所以當然要學習如何使用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的服務器上驗證
首先在到官網上開通服務端驗證開關

請求地址為:https://webapi.sms.mob.com/sms/verify

請求方式: POST

請求參數
 •appkey 應用appkey
 •phone 電話號碼
 •zone 區(qū)號
 •code 需要驗證的驗證碼

我已經幫你寫好post的方法內容,只需傳地址和參數就能返回結果

 /**   * 發(fā)起https請求   * @param address  post地址   * @param params  參數   * @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;  }

既然是網絡請求當然要新建線程使用啦

 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 沒有打開服務端驗證開關

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳谷县| 普兰店市| 固安县| 买车| 永和县| 石河子市| 永福县| 永丰县| 昂仁县| 阿鲁科尔沁旗| 赤壁市| 彭州市| 吴堡县| 开阳县| 陇南市| 高清| 措美县| 西林县| 大安市| 邵阳县| 锡林浩特市| 龙泉市| 和田县| 伊春市| 长岛县| 乐至县| 科技| 新巴尔虎左旗| 聂荣县| 水城县| 胶州市| 临邑县| 婺源县| 灵宝市| 永仁县| 安仁县| 全椒县| 库尔勒市| 玉山县| 新龙县| 龙川县|