BREW應用間通信之回調通知

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是告警代碼,然後就可以執行相關的操作了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章