天天看點

《BREW進階與精通——3G移動增值業務的營運、定制與開發》連載之80——BREW應用間通信之回調通知

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/5914153

AEE層 支援通知的概念,通知是一種當其它應用中發生某些差錯時可以為該事件注冊不同應用來處理的機制。例如,可以将應用注冊為在有進入的 SMS 消息時接收通知。這表示隻要有進入的 SMS 消息,已注冊接收通知的應用就會收到一個事件,這個事件就是 EVT_NOTIFY。通知程式就是産生通知的應用,例如: ITAPI 可充當通知程式,在有進入的 SMS 消息時就會發會通知。每當通知程式需要發送通知時,都要使用 ISHELL_Notify() 方法。 應用可以通過注冊來接收通知,要這樣做,一般要使用函數 ISHELL_RegisterNotify()。 例如,應用可以使用ISHELL_RegisterNotify()注冊從 AEECLSID_TAPI 接口接收該類特定事件的通知。

INotifier 是指定必須由需要成為通知程式的應用來實作的函數接口。任何要發出通知以便其它應用能夠收到它的應用必須實作 Inotifier 接口中的函數,且實作 Inotifier 接口并定義該類能夠發出的通知(或掩碼)組,0xFFFFFFFF 代表接收所有的通知,0x00000000代表所有通知都不接收,例如:TAPI可以發出的通知有NMASK_TAPI_SMS、NMASK_TAPI_TS_PAGE 和 NMASK_TAPI_TS_VMAIL等類型。 這些掩碼必須對其它應用可用,以便關注這些通知的應用可以注冊它們。通知程式無論何時發出通知,均必須調用 ISHELL_Notify() 函數。這時, AEE層負責通知已注冊接收該通知的所有應用。

從BREW 3.1.4以後,引入了IALARMMGR接口,一個應用可以通過告警設定來通知另一個應用執行相關的操作。相對于ISHELL_SetAlarm而言,IALARMMGR可以對以秒為機關的時間間隔來設定告警觸發,而且可以根據相當時間或者絕對時間來設定。IALARMMGR的一個重要功能是在設定告警觸發前可以為使用者保留一個唯一的告警代碼。告警代碼是一個16 bit的整數,可以使用 IALARMMGR_SetUserCode() 和IALARMMGR_GetUserCode() 來設定和擷取該告警代碼。通過IALARMMGR_SetAlarm()指定一個有效的 ClassId就可以讓另一個應用接收告警了,接收告警的應用監聽到EVT_ALARM事件, wParam是告警代碼,然後就可以執行相關的操作了。

繼續閱讀