Android SMSSDK無GUI介面整合方法

皮皮醬發表於2019-01-08

一、無GUI介面概述

本文只介紹簡訊SDK內建(無介面)方法的使用和注意事項,如果您想查閱有介面的操作方法,請參考http://wiki.mob.com/sdk-sms-android-3-0-0/相關章節的說明。

儘管簡訊SDK提供了簡化整合步驟的GUI功能,但它同樣允許開發者放棄這套GUI,直接與核心程式碼進行互動。

請先按照 http://wiki.mob.com/sdk-sms-android-3-0-0/下載並整合簡訊SDK。
注意:如果版本等於2.0.1,要將SMSSDK的res下的raw複製到你的工程的res下;另外有些較老的版本需要複製libsmssdk.so。2.1.2開始(包括)eclipse不再需要配置so。
其中對外主要的類有:SMSSDK和EventHandler,所有的操作都通過SMSSDK來發起,並通過EventHandler來接收。由於EventHandler已有SMSSDK操作回撥章節(http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E6%93%8D%E4%BD%9C%E5%9B%9E%E8%B0%83/)講述,因此本節之著重介紹SMSSDK的各個方法。

二、無GUI介面說明

2.1、初始化介面

Android SMSSDK無GUI介面整合方法

registerEventHandler用來往SMSSDK中註冊一個事件接收器,SMSSDK允許開發者註冊任意數量的接收器,所有接收器都會在事件 被觸發時收到訊息。

		EventHandler eh=new EventHandler(){
 
			@Override
			public void afterEvent(int event, int result, Object data) {
 
			   if (result == SMSSDK.RESULT_COMPLETE) {
				//回撥完成
				if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                //提交驗證碼成功
				}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
			    //獲取驗證碼成功
				}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
                //返回支援傳送驗證碼的國家列表
                } 
              }else{                                                                 
                 ((Throwable)data).printStackTrace(); 
          }
      } 
   }; 
SMSSDK.registerEventHandler(eh); //註冊簡訊回撥
複製程式碼

registerEventHandler必須和unregisterEventHandler配套使用,否則可能造成記憶體洩漏。

2.2、簡訊驗證碼介面

Android SMSSDK無GUI介面整合方法

其中OnSendMessageHandler的定義如下,這個Handler的用途是在傳送簡訊之前,開發者自己執行一個操作,來根據電話號碼判斷是否需要傳送簡訊

public interface OnSendMessageHandler {
	/** 
	 * 此方法在傳送驗證簡訊前被呼叫,傳入引數為接收者號碼
	 * 返回true表示此號碼無須實際接收簡訊
	 */
 
	public boolean onSendMessage(String country, String phone);
 
}
複製程式碼

簡訊SDK並不能支援世界上所有國家的簡訊驗證服務,因此我們提供了getSupportedCountries方法,在使用簡訊驗證碼功能前請呼叫此方法,獲取當前SDK可以支援的國家列表和號碼匹配規則。
getVerificationCode用於向伺服器請求傳送驗證碼的服務,需要傳遞國家代號和接收驗證碼的手機號碼,支援此服務的國家程式碼在 getSupportedCountries中獲取。請求getVerificationCode的時間間隔不應該小於60秒,否則服務端會返回“操作過 於頻繁”的錯誤
submitVerificationCode用於向伺服器提交接收到的簡訊驗證碼,驗證成功後會通過EventHandler返回國家程式碼和電話號碼。





相關文章