編輯:關於Android編程
短信注冊和短信驗證已經是家常便飯了,所以當然要學習如何使用SDK啦
MobSDK可以免費發短信,當然就用它啦
http://www.mob.com
1.首先下載sdk
2.在項目新建一個叫lib的文件夾把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");
發送驗證碼
SMSSDK.getVerificationCode("86","您的手機號");
6.驗證驗證碼
收到驗證碼後要post到Mob的服務器上驗證
首先在到官網上開通服務端驗證開關
請求地址為:https://webapi.sms.mob.com/sms/verify
請求方式: POST
請求參數
•appkey 應用appkey
•phone 電話號碼
•zone 區號
•code 需要驗證的驗證碼
我已經幫你寫好post的方法內容,只需傳地址和參數就能返回結果
/** * 發起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 沒有打開服務端驗證開關
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
最近想弄一個雙導航功能,查看了許多資料,總算是實現了功能,這邊就算是給自己幾個筆記吧! 先來看看效果 那麼就開始實現了! 底部導航欄我選擇用
看到某些App裡面有讀取聯系人的功能,然後自己嘗試了一下。發現這個挺簡單的。然後自己就做了一個demo給大家,希望借這個demo可以讓大家學習一下怎麼實現讀取手機聯系人。
1.首先集成的項目目錄我使用的是直接按照react-native init Project 的格式來導入的,也就是說,我的Android項目
在android應用開發過程中,Listview 是常用的數據展現控件,往往用於顯示列表形式的數據。如果僅僅顯示數據往往會顯得很單調,很多時候根據需要定義不同的item