編輯:關於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 沒有打開服務端驗證開關
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android實現頂部底部雙導航界面功能
最近想弄一個雙導航功能,查看了許多資料,總算是實現了功能,這邊就算是給自己幾個筆記吧! 先來看看效果 那麼就開始實現了! 底部導航欄我選擇用
Android ContentProvider查看/讀取手機聯系人實例
看到某些App裡面有讀取聯系人的功能,然後自己嘗試了一下。發現這個挺簡單的。然後自己就做了一個demo給大家,希望借這個demo可以讓大家學習一下怎麼實現讀取手機聯系人。
Android原生嵌入React Native詳解
1.首先集成的項目目錄我使用的是直接按照react-native init Project 的格式來導入的,也就是說,我的Android項目
android樣式布局---)ListView(附上源碼)
在android應用開發過程中,Listview 是常用的數據展現控件,往往用於顯示列表形式的數據。如果僅僅顯示數據往往會顯得很單調,很多時候根據需要定義不同的item