能夠直接提供電信服務是BREW技術的一大特色。BREW中支援的電信服務主要是指語音業務,以及附加業務短訊息功能,藍芽通訊功能,小區多播通訊功能等等。在BREW3.X之前,語音和簡訊功能都可以通過ITAPI介面來提供,在BREW 3.X及以上版本,這一方法同樣有限。
ITAPI 是一個簡單的裝置通話層介面。 它可提供以下服務: 擷取通話狀態,安排語音電話,從 SMS 訊息中提取 SMS 文本 ,擷取進入或正在呼叫的主叫號碼 ,註冊 SMS 訊息,發送 SMS 訊息等功能。ITAPI 允許應用程式註冊以下通知: NMASK_TAPI_STATUS,NMASK_TAPI_SMS_TEXT和NMASK_TAPI_SMS_TS。
應用程式通過ITAPI介面可以接收 SMS 訊息:
1. 目標為 BREW 應用的定向 SMS 訊息,發送形式為 //BREW:<ClassID>:<訊息> 。在指定目標應用的ClassID 時,ITAPI_SendSMS() 將訊息內部進行格式化操作
2. 所有簡訊
3. 所有特定電信業務 ID 的訊息
4. 所有具有特定首碼的簡訊
其中,接收指嚮應用程式的SMS不需要註冊,作為 EVT_APP_MESSAGE 事件接收,dwParam 包含指向簡訊承載的指標,該承載可作為 char * pszMsgTxt = (char *)dwParam。
對於訪問接收任意簡訊,應用程式必須使用 NMASK_TAPI_SMS_TEXT 掩碼註冊 TAPI 類,作為 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指標。訊息可作為 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSTextMsg * pTextMsg = (AEESMSTextMsg*)pNotify->pData;
如果接收特定電信業務訊息,應用程式必須使用以下掩碼 uint32 mask = (NMASK_TAPI_SMS_TS |(SMS_TELESERVICE_ID << 16)) 進行註冊,作為 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指標 訊息可作為 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSMsg *pMsg = (AEESMSMsg *)pNotify->pData;
如果訪問接收具有特定首碼的簡訊: 訊息格式為 //<SMS_Prefix>:<Message_Text> 應用程式必須註冊為 <SMS_Prefix> 的處理常式 ,作為 EVT_APP_BROWSE_URL 接收。dwParam 包含指向 //<SMS_Prefix>:<Message_Text> 的指標。
通過BREW中的ITAPI可以獲知裝置狀態的更改,通過NMASK_TAPI_STATUS掩碼, 只要裝置的通話狀態發生變化,應用程式都可以使用 TAPI 類獲得通知。只要狀態發生變化,應用程式就會收到 EVT_NOTIFY 事件。 此事件的 dwParam 為 AEENotify 類型。 此 AEENotify 結構內的 pData 成員屬於 TAPIStatus 類型,並包含裝置當前通話狀態的詳細資料。
BREW 3.x專門為簡訊提供了新的介面ISMSMsg,ISMS,ISMSNotifier,和ISMSStorage 新介面完整實現了簡訊協議TIA-EIA-637-A,而舊介面僅部分實現此協議。就簡訊發送而言,新介面主要支援下面三種編碼格式:
l ASCII - 單位:位元組, 最大長度:160
l UNCODE - 單位:雙位元組,最大長度:70
l BINARY - 單位:位元組, 最大長度:140
原有介面僅支援一種編碼格式,由AEE_DEVICEITEM_TAPI_SMS_ENCODING指定。就簡訊接收而言,新介面可以得到更多資訊:簡訊內容/編碼格式,發送方號碼,簡訊中心接收到簡訊的時刻等,而舊介面僅能得到簡訊內容。ISMSStorage & ISMSStorage2用來儲存,讀取,刪除和更新簡訊。儲存的類型包括RUIM卡和手機自身。
BREW 3.X及以上版本還提供了對一般語音付、藍芽和WIFI的完整支援,使應用可以獲得更廣泛的通訊能力。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/wireless_com/archive/2010/04/07/5456725.aspx