欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android使用MobSDK短信驗(yàn)證

 更新時(shí)間:2016年08月09日 11:55:20   作者:qq_32198277  
這篇文章主要為大家詳細(xì)介紹了Android使用MobSDK短信驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

短信注冊(cè)和短信驗(yàn)證已經(jīng)是家常便飯了,所以當(dāng)然要學(xué)習(xí)如何使用SDK啦
MobSDK可以免費(fèi)發(fā)短信,當(dāng)然就用它啦
http://www.mob.com

1.首先下載sdk

2.在項(xiàng)目新建一個(gè)叫l(wèi)ib的文件夾把4個(gè)東西放進(jìn)去

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中添加權(quán)限和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ā)送驗(yàn)證碼

SMSSDK.getVerificationCode("86","您的手機(jī)號(hào)");

6.驗(yàn)證驗(yàn)證碼

收到驗(yàn)證碼后要post到Mob的服務(wù)器上驗(yàn)證
首先在到官網(wǎng)上開通服務(wù)端驗(yàn)證開關(guān)

請(qǐng)求地址為:https://webapi.sms.mob.com/sms/verify

請(qǐng)求方式: POST

請(qǐng)求參數(shù)
 •appkey 應(yīng)用appkey
 •phone 電話號(hào)碼
 •zone 區(qū)號(hào)
 •code 需要驗(yàn)證的驗(yàn)證碼

我已經(jīng)幫你寫好post的方法內(nèi)容,只需傳地址和參數(shù)就能返回結(jié)果

 /**
   * 發(fā)起https請(qǐng)求
   * @param address  post地址
   * @param params  參數(shù)
   * @return 結(jié)果
   */
  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)絡(luò)請(qǐng)求當(dāng)然要新建線程使用啦

 new Thread(new Runnable() {
          @Override
          public void run() {
            String params="appkey=您的appkey;phone=您的手機(jī)號(hào);zone=86;code=手機(jī)收到的驗(yàn)證碼";
            String result = requestData("https://webapi.sms.mob.com/sms/verify",
                params);
            //輸出結(jié)果
            System.out.println(result);
          }
        }).start();

輸出結(jié)果樣例{status:200}
 結(jié)果編碼

返回值 結(jié)果描述
200 驗(yàn)證成功
405 AppKey為空
406 AppKey無效
456 國家代碼或手機(jī)號(hào)碼為空
457 手機(jī)號(hào)碼格式錯(cuò)誤
466 請(qǐng)求校驗(yàn)的驗(yàn)證碼為空
467 請(qǐng)求校驗(yàn)驗(yàn)證碼頻繁(5分鐘內(nèi)同一個(gè)appkey的同一個(gè)號(hào)碼最多只能校驗(yàn)三次)
468 驗(yàn)證碼錯(cuò)誤
474 沒有打開服務(wù)端驗(yàn)證開關(guān)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論