能夠直接提供電信服務(wù)是BREW技術(shù)的一大特色。BREW中支持的電信服務(wù)主要是指語音業(yè)務(wù),以及附加業(yè)務(wù)短消息功能,藍牙通信功能,小區(qū)多播通信功能等等。在BREW3.X之前,語音和短信功能都可以通過ITAPI接口來提供,在BREW 3.X及以上版本,這一方法同樣有限。
ITAPI 是一個簡單的設(shè)備通話層接口。 它可提供以下服務(wù): 獲取通話狀態(tài),安排語音呼叫,從 SMS 消息中提取 SMS 文本 ,獲取進入或正在呼叫的主叫號碼 ,注冊 SMS 消息,發(fā)送 SMS 消息等功能。ITAPI 允許應(yīng)用程序注冊以下通知: NMASK_TAPI_STATUS,NMASK_TAPI_SMS_TEXT和NMASK_TAPI_SMS_TS。
應(yīng)用程序通過ITAPI接口可以接收 SMS 消息:
1. 目標為 BREW 應(yīng)用的定向 SMS 消息,發(fā)送形式為 //BREW:
2. 所有文本消息
3. 所有特定電信業(yè)務(wù) ID 的消息
4. 所有具有特定前綴的文本消息
其中,接收指向應(yīng)用程序的SMS不需要注冊,作為 EVT_APP_MESSAGE 事件接收,dwParam 包含指向短信有效負載的指針,該有效負載可作為 char * pszMsgTxt = (char *)dwParam。
對于訪問接收任意文本消息,應(yīng)用程序必須使用 NMASK_TAPI_SMS_TEXT 掩碼注冊 TAPI 類,作為 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指針。消息可作為 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSTextMsg * pTextMsg = (AEESMSTextMsg*)pNotify->pData;?
如果接收特定電信業(yè)務(wù)消息,應(yīng)用程序必須使用以下掩碼 uint32 mask = (NMASK_TAPI_SMS_TS |(SMS_TELESERVICE_ID << 16)) 進行注冊,作為 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指針 消息可作為 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSMsg *pMsg = (AEESMSMsg *)pNotify->pData;
如果訪問接收具有特定前綴的文本消息: 消息格式為 //
通過BREW中的ITAPI可以獲知設(shè)備狀態(tài)的更改,通過NMASK_TAPI_STATUS掩碼, 只要設(shè)備的通話狀態(tài)發(fā)生變化,應(yīng)用程序都可以使用 TAPI 類獲得通知。只要狀態(tài)發(fā)生變化,應(yīng)用程序就會收到 EVT_NOTIFY 事件。 此事件的 dwParam 為 AEENotify 類型。 此 AEENotify 結(jié)構(gòu)內(nèi)的 pData 成員屬于 TAPIStatus 類型,并包含設(shè)備當(dāng)前通話狀態(tài)的詳細信息。
??????????? BREW 3.x專門為短信提供了新的接口ISMSMsg,ISMS,ISMSNotifier,和ISMSStorage? 新接口完整實現(xiàn)了短信協(xié)議TIA-EIA-637-A,而舊接口僅部分實現(xiàn)此協(xié)議。就短信發(fā)送而言,新接口主要支持下面三種編碼格式:
l? ASCII???? - 單位:字節(jié),?? 最大長度:160
l? UNCODE - 單位:雙字節(jié),最大長度:70
l? BINARY?? - 單位:字節(jié),?? 最大長度:140
原有接口僅支持一種編碼格式,由AEE_DEVICEITEM_TAPI_SMS_ENCODING指定。就短信接收而言,新接口可以得到更多信息:短信內(nèi)容/編碼格式,發(fā)送方號碼,短信中心接收到短信的時刻等,而舊接口僅能得到短信內(nèi)容。ISMSStorage? & ISMSStorage2用來存儲,讀取,刪除和更新短信。存儲的類型包括RUIM卡和手機自身。
BREW 3.X及以上版本還提供了對一般語音付、藍牙和WIFI的完整支持,使應(yīng)用可以獲得更廣泛的通信能力。
??