一显设、無(wú)GUI接口概述
本文只介紹短信SDK內(nèi)置(無(wú)界面)方法的使用和注意事項(xiàng)框弛,如果您想查閱有界面的操作方法辛辨,請(qǐng)參考http://wiki.mob.com/sdk-sms-android-3-0-0/相關(guān)章節(jié)的說(shuō)明。
盡管短信SDK提供了簡(jiǎn)化集成步驟的GUI功能瑟枫,但它同樣允許開(kāi)發(fā)者放棄這套GUI斗搞,直接與核心代碼進(jìn)行交互。
請(qǐng)先按照http://wiki.mob.com/sdk-sms-android-3-0-0/下載并集成短信SDK慷妙。注意:如果版本等于2.0.1僻焚,要將SMSSDK的res下的raw復(fù)制到你的工程的res下;另外有些較老的版本需要復(fù)制libsmssdk.so膝擂。2.1.2開(kāi)始(包括)eclipse不再需要配置so虑啤。其中對(duì)外主要的類有:SMSSDK和EventHandler,所有的操作都通過(guò)SMSSDK來(lái)發(fā)起架馋,并通過(guò)EventHandler來(lái)接收狞山。由于EventHandler已有SMSSDK操作回調(diào)章節(jié)(http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E6%93%8D%E4%BD%9C%E5%9B%9E%E8%B0%83/)講述,因此本節(jié)之著重介紹SMSSDK的各個(gè)方法叉寂。
registerEventHandler用來(lái)往SMSSDK中注冊(cè)一個(gè)事件接收器屏鳍,SMSSDK允許開(kāi)發(fā)者注冊(cè)任意數(shù)量的接收器勘纯,所有接收器都會(huì)在事件 被觸發(fā)時(shí)收到消息。
EventHandler eh=new EventHandler(){
@Override
public void afterEvent(int event, int result, Object data) {
? if (result == SMSSDK.RESULT_COMPLETE) {
//回調(diào)完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
? ? ? ? ? ? ? ? //提交驗(yàn)證碼成功
}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
? ?//獲取驗(yàn)證碼成功
}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
? ? ? ? ? ? ? ? //返回支持發(fā)送驗(yàn)證碼的國(guó)家列表
? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ?((Throwable)data).printStackTrace();?
? ? ? ? ? }
? ? ? }?
? ?};?
SMSSDK.registerEventHandler(eh); //注冊(cè)短信回調(diào)
registerEventHandler必須和unregisterEventHandler配套使用钓瞭,否則可能造成內(nèi)存泄漏驳遵。
2.2、短信驗(yàn)證碼接口
其中OnSendMessageHandler的定義如下山涡,這個(gè)Handler的用途是在發(fā)送短信之前堤结,開(kāi)發(fā)者自己執(zhí)行一個(gè)操作搏讶,來(lái)根據(jù)電話號(hào)碼判斷是否需要發(fā)送短信
public interface OnSendMessageHandler {
/**?
* 此方法在發(fā)送驗(yàn)證短信前被調(diào)用,傳入?yún)?shù)為接收者號(hào)碼
* 返回true表示此號(hào)碼無(wú)須實(shí)際接收短信
*/
public boolean onSendMessage(String country, String phone);
}
短信SDK并不能支持世界上所有國(guó)家的短信驗(yàn)證服務(wù)霍殴,因此我們提供了getSupportedCountries方法媒惕,在使用短信驗(yàn)證碼功能前請(qǐng)調(diào)用此方法,獲取當(dāng)前SDK可以支持的國(guó)家列表和號(hào)碼匹配規(guī)則来庭。
getVerificationCode
用于向服務(wù)器請(qǐng)求發(fā)送驗(yàn)證碼的服務(wù)妒蔚,需要傳遞國(guó)家代號(hào)和接收驗(yàn)證碼的手機(jī)號(hào)碼,支持此服務(wù)的國(guó)家代碼在getSupportedCountries中獲取月弛。請(qǐng)求getVerificationCode的時(shí)間間隔不應(yīng)該小于60秒肴盏,否則服務(wù)端會(huì)返回“操作過(guò) 于頻繁”的錯(cuò)誤
submitVerificationCode
用于向服務(wù)器提交接收到的短信驗(yàn)證碼,驗(yàn)證成功后會(huì)通過(guò)EventHandler返回國(guó)家代碼和電話號(hào)碼帽衙。