1、 獲得用戶Appkey 和App Secret
android
一、 在Eclipse中建立新項目(Android Studio相同)記下包名,包名在mob後臺建立應用的時候須要。這個必定要切記!ios
二、 登錄mob.com短信驗證平臺 開發者服務平臺註冊成爲開發者,並建立應用。正則表達式
1)選擇系統的版本,Android或者ios;服務器
2)填寫應用名稱,下載地址,選擇應用的詳細分類;網絡
3)在開發模式完成後,正式上線的時候還須要上傳應用的簽名,這裏就用到了上面的包名,最好不要後期修改,不然非常麻煩,須要作大篇幅的修改。app
三、 獲得用戶Appkey 和App Secret ,在你建立了新的應用的時候他會給出你對應的應用的Appkey 和App Secret。若是後期須要再進入mob.com查看Appkey 和App Secret的時候就須要點擊對應的應用名字---應用管理----應用信息,在這裏能夠看到應eclipse
用的全部信息,而且也能夠對應用的部分信息進行修改。ide
四、 下載SDK,地址:http://sms.mob.com/Downloadthis
下載的壓縮包,解壓後就能獲得兩個文件,一個是官方提供的sample,另外一個是須要在本身項目中引用的項目文件。spa
2、 客戶端配置
一、 從官方下載的sdk中導入eclipse,把SMSSDK這個項目總體導入eclipse,並把它做爲library在本身所建立的項目中引用。其中SMSSDK是官方提供的一個引用資源文件,這個是目前常見的一種方式,由於這樣省去了在本身的項目中大量的添加jar包,形成自己項目的體積不斷膨脹變大,使其加載速度變慢,同時還會由於有的jar包只是用到裏面的不多一部分,可是卻添加的是整個jar包,形成體積冗餘,資源浪費。
導入:
引用:
按照如下步驟一步步的把須要用到的資源文件引用到本身的項目
Window--------preferences---------android ---- 右側library-------Add ------ 選擇 SMSSDK----------Apply---------ok
二、打開配置文件,添加相應的權限
其中有比較常見的網絡權限,通信錄權限,短信權限等
這些直接複製,黏貼進本身的項目就能夠,都是必需要的,沒什麼可說的
<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.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
三、在application中添加mob.com的Activity,這個是在官方類庫中提供的,可是由於在我的項目中須要調用,因此須要在配置文件中單獨聲明一下。
這個要特別提醒一下,千萬不要忘了,否則會提示空指針異常或者是沒有找到cn.smssdk.SMSSDKUIShell,這樣你的項目就不能運行了,若是出現了這樣的錯誤提示,能夠直接到配置文件中看看有沒有漏掉這一步。
<activity
android:name="cn.smssdk.SMSSDKUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
下面的也是在配置文件中須要聲明的,不過這個是他們官方用來進行統計數據用獲得的
<!-- 統計用,service用於保證必定可以向服務器上傳數據 -->
<service
android:name="cn.sharesdk.analysis.server.RemoteService"
android:process=":remote" />
3、方法調用
初始化短信SDK
private void init() {
MyUtils.initInfor(this);
SMSSDK.initSDK(this, app_key, app_secret);
final Handler handler = new Handler(this);
EventHandler eventHandler = new EventHandler() {
public void afterEvent(int event, int result, Object data) {
Message msg = new Message();
msg.arg1 = event;
msg.arg2 = result;
msg.obj = data;
handler.sendMessage(msg);
}
};
// 註冊回調監聽接口
SMSSDK.registerEventHandler(eventHandler);
flag = true;
// 獲取新好友個數
showDialog();
SMSSDK.getNewFriendsCount();
}
請求短信驗證碼
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
str_phone = phone.getText().toString();
if(str_phone.equals(""))
{
Toast.makeText(getApplicationContext(), "請輸入手機號",Toast.LENGTH_SHORT).show();
}
else if(!MyUtils.isMobileNO(str_phone))
{
Toast.makeText(getApplicationContext(), "請輸入正確的手機號格式",Toast.LENGTH_SHORT).show();
}
else
{
// 下面的代碼就是調用sdk的發送短信的方法,其中的「86」是官方中定義的,表明中國的意思
// 第二個參數表示的是須要發送短信的手機號
SMSSDK.getVerificationCode("86", str_phone);
str_str_phone = str_phone;
//發送短信以後驗證碼的按鈕才能激活
btn_.setBackgroundColor(0xff000000);
btn_.setClickable(true);
//10秒鐘內不可重點此按鈕
time.start();
}
}
});
驗證短信驗證碼是否正確
SMSSDK.submitVerificationCode("86", str_str_phone,str_captcha);
EventHandler eh=new EventHandler()
{
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE)
{
runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(getApplicationContext(), "驗證成功!你能夠修改密碼了",Toast.LENGTH_SHORT).show();
btn_.setBackgroundColor(0xffcccccc);
btn_.setClickable(false);
}
});
}
else
{
runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(getApplicationContext(), "驗證碼錯誤!",Toast.LENGTH_SHORT).show();
btn_.setBackgroundColor(0xffcccccc);
btn_.setClickable(false);
}
});
((Throwable)data).printStackTrace();
}
}
};
SMSSDK.registerEventHandler(eh); //註冊短信回
判斷字符串是否是手機號碼的正則表達式
public static boolean isMobileNO(String mobiles) {
/*
* 移動:13四、13五、13六、13七、13八、13九、150、15一、157(TD)、15八、15九、18七、188
* 聯通:130、13一、13二、15二、15五、15六、18五、186 電信:13三、15三、180、18九、(1349衛通)
* 總結起來就是第一位一定爲1,第二位一定爲3或5或8,其餘位置的能夠爲0-9
*/
String telRegex = "[1][3578]\\d{9}";// "[1]"表明第1位爲數字1,"[358]"表明第二位能夠爲三、五、8中的一個,"\\d{9}"表明後面是能夠是0~9的數字,有9位。
if (TextUtils.isEmpty(mobiles))
return false;
else
return mobiles.matches(telRegex);
}
打開通訊錄好友列表頁面
//這個界面的sdk自帶風格不難看,沒有修改必要
private void openFriendsUI() {
ContactsPage contactsPage = new ContactsPage();
contactsPage.show(this);
}
防止屢次請求驗證碼的計時器
private Button checking;
public TimeCount(long millisInFuture, long countDownInterval,Button checking)
{
super(millisInFuture, countDownInterval);//參數依次爲總時長,和計時的時間間隔
this.checking = checking;
}
@Override
public void onFinish()
{
//計時完畢時觸發
checking.setText("從新驗證");
checking.setClickable(true);
checking.setBackgroundColor(0xff000000);
}
@Override
public void onTick(long millisUntilFinished){
//計時過程顯示
checking.setClickable(false);
checking.setBackgroundColor(0xffcccccc);
checking.setText(millisUntilFinished /1000+"秒後從新驗證");
}
本服務的主要功能是發送短信驗證碼和獲取聯繫人列表
一、發送短信驗證碼
選擇國家,輸入手機號,就能獲得短信驗證碼
無需與短信平臺合做的繁瑣手續,SDK快速集成,集成便捷。省去了本身去跟運營商談合做,談接口等各類繁瑣的步驟
先試試發短信功能,會提示你要發送的某個手機的手機號,這裏是提示你乙方發錯了,就是一個最終的肯定,若是不正確能夠取消小,從新輸入正確的手機號碼。
若是點擊 好 這時SDK就會向服務器提交請求,而後服務器根據你提交的信息發送短信到指定手機上,從而實現手機的定點短信發送。向服務器發送請求後,準備接收短信,這裏有個緩衝界面,由於發送短信畢竟也須要一個時間間隔,同時也不能一直不間斷的發送,那樣就成了垃圾短信了,也不符合咱們的初衷。
接收到了短信,最終的結果出現了,這個就是咱們的終極結果,短信。獲得了短信就有了驗證碼,咱們就能夠在咱們的app中實現本身需求,完成相應的功能效果。
二、邀請通信錄好友使用app,這個是獲取通信錄聯繫人列表後的結果,能夠讀取到手機上的全部聯繫人,極大的方便了app的推廣,快速匹配通信錄好友,創建本身的朋友圈。