您好,登錄后才能下訂單哦!
一、 得到用戶Appkey 和App Secret
1、 在Eclipse中創(chuàng)建新項(xiàng)目(Android Studio相同)記下包名,包名在mob后臺(tái)創(chuàng)建應(yīng)用的時(shí)候需要。這個(gè)一定要切記!
2、 登陸mob.com短信驗(yàn)證平臺(tái) 開(kāi)發(fā)者服務(wù)平臺(tái)注冊(cè)成為開(kāi)發(fā)者,并創(chuàng)建應(yīng)用。
1)選擇系統(tǒng)的版本,Android或者ios;
2)填寫(xiě)應(yīng)用名稱,下載地址,選擇應(yīng)用的詳細(xì)分類(lèi);
3)在開(kāi)發(fā)模式完成后,正式上線的時(shí)候還需要上傳應(yīng)用的簽名,這里就用到了上面的包名,最好不要后期修改,否則很是麻煩,需要做大篇幅的修改。
3、 得到用戶Appkey 和App Secret ,在你創(chuàng)建了新的應(yīng)用的時(shí)候他會(huì)給出你對(duì)應(yīng)的應(yīng)用的Appkey 和App Secret。如果后期需要再進(jìn)入mob.com查看Appkey 和App Secret的時(shí)候就需要點(diǎn)擊對(duì)應(yīng)的應(yīng)用名字---應(yīng)用管理----應(yīng)用信息,在這里可以看到應(yīng)
用的所有信息,并且也可以對(duì)應(yīng)用的部分信息進(jìn)行修改。
4、 下載SDK,地址:http://sms.mob.com/Download
下載的壓縮包,解壓后就能得到兩個(gè)文件,一個(gè)是官方提供的sample,另一個(gè)是需要在自己項(xiàng)目中引用的項(xiàng)目文件。
二、 客戶端配置
1、 從官方下載的sdk中導(dǎo)入eclipse,把SMSSDK這個(gè)項(xiàng)目整體導(dǎo)入eclipse,并把它作為library在自己所創(chuàng)建的項(xiàng)目中引用。其中SMSSDK是官方提供的一個(gè)引用資源文件,這個(gè)是目前常見(jiàn)的一種方式,因?yàn)檫@樣省去了在自己的項(xiàng)目中大量的添加jar包,造成本身項(xiàng)目的體積不斷膨脹變大,使其加載速度變慢,同時(shí)還會(huì)因?yàn)橛械膉ar包只是用到里面的很少一部分,但是卻添加的是整個(gè)jar包,造成體積冗余,資源浪費(fèi)。
導(dǎo)入:
引用:
按照以下步驟一步步的把需要用到的資源文件引用到自己的項(xiàng)目
Window--------preferences---------android ---- 右側(cè)library-------Add ------ 選擇 SMSSDK----------Apply---------ok
2、打開(kāi)配置文件,添加相應(yīng)的權(quán)限
其中有比較常見(jiàn)的網(wǎng)絡(luò)權(quán)限,通訊錄權(quán)限,短信權(quán)限等
這些直接復(fù)制,黏貼進(jìn)自己的項(xiàng)目就可以,都是必須要的,沒(méi)什么可說(shuō)的
<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" />
3、在application中添加mob.com的Activity,這個(gè)是在官方類(lèi)庫(kù)中提供的,但是因?yàn)樵趥€(gè)人項(xiàng)目中需要調(diào)用,所以需要在配置文件中單獨(dú)聲明一下。
這個(gè)要特別提醒一下,千萬(wàn)不要忘了,不然會(huì)提示空指針異?;蛘呤菦](méi)有找到cn.smssdk.SMSSDKUIShell,這樣你的項(xiàng)目就不能運(yùn)行了,如果出現(xiàn)了這樣的錯(cuò)誤提示,可以直接到配置文件中看看有沒(méi)有漏掉這一步。
<activity
android:name="cn.smssdk.SMSSDKUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
下面的也是在配置文件中需要聲明的,不過(guò)這個(gè)是他們官方用來(lái)進(jìn)行統(tǒng)計(jì)數(shù)據(jù)用得到的
<!-- 統(tǒng)計(jì)用,service用于保證一定能夠向服務(wù)器上傳數(shù)據(jù) -->
<service
android:name="cn.sharesdk.analysis.server.RemoteService"
android:process=":remote" />
三、方法調(diào)用
初始化短信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);
}
};
// 注冊(cè)回調(diào)監(jiān)聽(tīng)接口
SMSSDK.registerEventHandler(eventHandler);
flag = true;
// 獲取新好友個(gè)數(shù)
showDialog();
SMSSDK.getNewFriendsCount();
}
請(qǐng)求短信驗(yàn)證碼
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(), "請(qǐng)輸入手機(jī)號(hào)",Toast.LENGTH_SHORT).show();
}
else if(!MyUtils.isMobileNO(str_phone))
{
Toast.makeText(getApplicationContext(), "請(qǐng)輸入正確的手機(jī)號(hào)格式",Toast.LENGTH_SHORT).show();
}
else
{
// 下面的代碼就是調(diào)用sdk的發(fā)送短信的方法,其中的“86”是官方中定義的,代表中國(guó)的意思
// 第二個(gè)參數(shù)表示的是需要發(fā)送短信的手機(jī)號(hào)
SMSSDK.getVerificationCode("86", str_phone);
str_str_phone = str_phone;
//發(fā)送短信之后驗(yàn)證碼的按鈕才能激活
btn_.setBackgroundColor(0xff000000);
btn_.setClickable(true);
//10秒鐘內(nèi)不可重點(diǎn)此按鈕
time.start();
}
}
});
驗(yàn)證短信驗(yàn)證碼是否正確
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(), "驗(yàn)證成功!你可以修改密碼了",Toast.LENGTH_SHORT).show();
btn_.setBackgroundColor(0xffcccccc);
btn_.setClickable(false);
}
});
}
else
{
runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(getApplicationContext(), "驗(yàn)證碼錯(cuò)誤!",Toast.LENGTH_SHORT).show();
btn_.setBackgroundColor(0xffcccccc);
btn_.setClickable(false);
}
});
((Throwable)data).printStackTrace();
}
}
};
SMSSDK.registerEventHandler(eh); //注冊(cè)短信回
判斷字符串是不是手機(jī)號(hào)碼的正則表達(dá)式
public static boolean isMobileNO(String mobiles) {
/*
* 移動(dòng):134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
* 聯(lián)通:130、131、132、152、155、156、185、186 電信:133、153、180、189、(1349衛(wèi)通)
* 總結(jié)起來(lái)就是第一位必定為1,第二位必定為3或5或8,其他位置的可以為0-9
*/
String telRegex = "[1][3578]\\d{9}";// "[1]"代表第1位為數(shù)字1,"[358]"代表第二位可以為3、5、8中的一個(gè),"\\d{9}"代表后面是可以是0~9的數(shù)字,有9位。
if (TextUtils.isEmpty(mobiles))
return false;
else
return mobiles.matches(telRegex);
}
打開(kāi)通信錄好友列表頁(yè)面
//這個(gè)界面的sdk自帶風(fēng)格不難看,沒(méi)有修改必要
private void openFriendsUI() {
ContactsPage contactsPage = new ContactsPage();
contactsPage.show(this);
}
防止多次請(qǐng)求驗(yàn)證碼的計(jì)時(shí)器
private Button checking;
public TimeCount(long millisInFuture, long countDownInterval,Button checking)
{
super(millisInFuture, countDownInterval);//參數(shù)依次為總時(shí)長(zhǎng),和計(jì)時(shí)的時(shí)間間隔
this.checking = checking;
}
@Override
public void onFinish()
{
//計(jì)時(shí)完畢時(shí)觸發(fā)
checking.setText("重新驗(yàn)證");
checking.setClickable(true);
checking.setBackgroundColor(0xff000000);
}
@Override
public void onTick(long millisUntilFinished){
//計(jì)時(shí)過(guò)程顯示
checking.setClickable(false);
checking.setBackgroundColor(0xffcccccc);
checking.setText(millisUntilFinished /1000+"秒后重新驗(yàn)證");
}
本服務(wù)的主要功能是發(fā)送短信驗(yàn)證碼和獲取聯(lián)系人列表
1、發(fā)送短信驗(yàn)證碼
選擇國(guó)家,輸入手機(jī)號(hào),就能得到短信驗(yàn)證碼
無(wú)需與短信平臺(tái)合作的繁瑣手續(xù),SDK快速集成,集成便捷。省去了自己去跟運(yùn)營(yíng)商談合作,談接口等各種繁瑣的步驟
先試試發(fā)短信功能,會(huì)提示你要發(fā)送的某個(gè)手機(jī)的手機(jī)號(hào),這里是提示你乙方發(fā)錯(cuò)了,就是一個(gè)最終的確定,如果不正確可以取消小,重新輸入正確的手機(jī)號(hào)碼。
如果點(diǎn)擊 好 這時(shí)SDK就會(huì)向服務(wù)器提交請(qǐng)求,然后服務(wù)器根據(jù)你提交的信息發(fā)送短信到指定手機(jī)上,從而實(shí)現(xiàn)手機(jī)的定點(diǎn)短信發(fā)送。向服務(wù)器發(fā)送請(qǐng)求后,準(zhǔn)備接收短信,這里有個(gè)緩沖界面,因?yàn)榘l(fā)送短信畢竟也需要一個(gè)時(shí)間間隔,同時(shí)也不能一直不間斷的發(fā)送,那樣就成了垃圾短信了,也不符合我們的初衷。
接收到了短信,最終的結(jié)果出現(xiàn)了,這個(gè)就是我們的終極結(jié)果,短信。得到了短信就有了驗(yàn)證碼,我們就可以在我們的app中實(shí)現(xiàn)自己需求,完成相應(yīng)的功能效果。
2、邀請(qǐng)通訊錄好友使用app,這個(gè)是獲取通訊錄聯(lián)系人列表后的結(jié)果,可以讀取到手機(jī)上的所有聯(lián)系人,極大的方便了app的推廣,快速匹配通訊錄好友,建立自己的朋友圈。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。