本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種事件廣播適配服務(wù)方法及系統(tǒng)。
背景技術(shù):Android操作系統(tǒng)是一種基于Linux的開放源代碼的操作系統(tǒng),主要應(yīng)用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,目前已應(yīng)用到智能電視領(lǐng)域。在Android操作系統(tǒng)中,消息通知機(jī)制為廣播機(jī)制,當(dāng)有預(yù)設(shè)的事件發(fā)生時(shí),例如,攝像頭插拔事件、網(wǎng)絡(luò)通斷事件等,操作系統(tǒng)底層可以向關(guān)聯(lián)的應(yīng)用程序客戶端發(fā)送事件廣播,如圖1所示。一般情況下,現(xiàn)有硬件廠商會(huì)根據(jù)各自產(chǎn)品(例如,移動(dòng)終端產(chǎn)品以及智能電視產(chǎn)品等)的需要將同一Android操作系統(tǒng)移植到不同的應(yīng)用平臺(tái),例如,移動(dòng)終端應(yīng)用平臺(tái)、智能電視應(yīng)用平臺(tái)。為了適用不同應(yīng)用平臺(tái)的操作和運(yùn)行環(huán)境需求,不同應(yīng)用平臺(tái)下Android操作系統(tǒng)的事件廣播采用了不同的廣播動(dòng)作(Action)和數(shù)據(jù)格式(參數(shù)),另外,不同應(yīng)用平臺(tái)可能會(huì)包括不同的事件廣播。因此,當(dāng)將一Android操作系統(tǒng)從一應(yīng)用平臺(tái)移植到另一應(yīng)用平臺(tái)時(shí),就會(huì)出現(xiàn)事件廣播難以兼容的問(wèn)題,從而導(dǎo)致與事件關(guān)聯(lián)的應(yīng)用程序客戶端無(wú)法接收到對(duì)應(yīng)的事件廣播,使得Android操作系統(tǒng)可兼容性差,也提高了應(yīng)用程序移植的成本。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例的目的在于提供一種事件廣播適配服務(wù)方法及系統(tǒng),旨在解決Android操作系統(tǒng)從一應(yīng)用平臺(tái)移植到另一應(yīng)用平臺(tái)時(shí)出現(xiàn)事件廣播難以兼容,從而導(dǎo)致與事件關(guān)聯(lián)的應(yīng)用程序客戶端無(wú)法接收到對(duì)應(yīng)的事件廣播,使得Android操作系統(tǒng)兼容性差的問(wèn)題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種事件廣播適配服務(wù)方法,所述方法包括下述步驟:接收預(yù)設(shè)操作系統(tǒng)內(nèi)核發(fā)送的預(yù)定義事件的廣播;根據(jù)所述廣播的廣播標(biāo)識(shí),在廣播注冊(cè)列表中查詢所述預(yù)定義事件的廣播;當(dāng)查詢到所述預(yù)定義事件的廣播時(shí),獲取與所述廣播標(biāo)識(shí)關(guān)聯(lián)的事件響應(yīng)列表;根據(jù)所述預(yù)定義事件的廣播中包含的事件狀態(tài)信息,遍歷所述事件響應(yīng)列表,以獲取與所述事件狀態(tài)信息關(guān)聯(lián)的響應(yīng)函數(shù);執(zhí)行所述響應(yīng)函數(shù),以改變所述響應(yīng)函數(shù)關(guān)聯(lián)的應(yīng)用程序客戶端的狀態(tài)。本發(fā)明實(shí)施例的另一目的在于提供一種事件廣播適配服務(wù)系統(tǒng),所述系統(tǒng)包括:廣播接收單元,用于接收預(yù)設(shè)操作系統(tǒng)內(nèi)核發(fā)送的預(yù)定義事件的廣播;廣播查詢單元,用于根據(jù)所述廣播的廣播標(biāo)識(shí),在廣播注冊(cè)列表中查詢所述預(yù)定義事件的廣播;事件響應(yīng)列表獲取單元,用于當(dāng)查詢到所述預(yù)定義事件的廣播時(shí),獲取與所述廣播標(biāo)識(shí)關(guān)聯(lián)的事件響應(yīng)列表;響應(yīng)函數(shù)獲取單元,用于根據(jù)所述預(yù)定義事件的廣播中包含的事件狀態(tài)信息,遍歷所述事件響應(yīng)列表,以獲取與所述事件狀態(tài)信息關(guān)聯(lián)的響應(yīng)函數(shù);以及響應(yīng)函數(shù)執(zhí)行單元,用于執(zhí)行所述響應(yīng)函數(shù),以改變所述響應(yīng)函數(shù)關(guān)聯(lián)的應(yīng)用程序客戶端的狀態(tài)。本發(fā)明實(shí)施例使用一廣播注冊(cè)列表來(lái)存儲(chǔ)注冊(cè)的廣播,當(dāng)需要添加新的廣播時(shí),只需要在所述廣播注冊(cè)列表中進(jìn)行注冊(cè)即可,從而解決了預(yù)設(shè)操作系統(tǒng)從一應(yīng)用平臺(tái)移植到另一應(yīng)用平臺(tái)時(shí)出現(xiàn)事件廣播難以兼容的問(wèn)題,提高了預(yù)設(shè)操作系統(tǒng)的兼容性,降低了該預(yù)設(shè)操作系統(tǒng)移植的成本。附圖說(shuō)明圖1是現(xiàn)有技術(shù)中Android操作系統(tǒng)的事件廣播示意圖;圖2是本發(fā)明實(shí)施例一提供的事件廣播適配服務(wù)方法的實(shí)現(xiàn)流程圖;圖3是本發(fā)明實(shí)施例二提供的事件廣播適配服務(wù)系統(tǒng)的結(jié)構(gòu)圖;圖4是本發(fā)明實(shí)施例二提供的廣播注冊(cè)單元的結(jié)構(gòu)圖;以及圖5是本發(fā)明實(shí)施例二提供的事件廣播適配服務(wù)系統(tǒng)的應(yīng)用原理圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述:實(shí)施例一:圖1示出了本發(fā)明實(shí)施例一提供的事件廣播適配服務(wù)方法的實(shí)現(xiàn)流程,詳述如下:在步驟S201中,接收預(yù)設(shè)操作系統(tǒng)內(nèi)核發(fā)送的預(yù)定義事件的廣播。在本發(fā)明實(shí)施例中,預(yù)設(shè)的操作系統(tǒng)是指可以采用廣播機(jī)制進(jìn)行消息通知的操作系統(tǒng),例如,Android操作系統(tǒng)或其它采用LinuxKernel內(nèi)核的操作系統(tǒng)。預(yù)定義事件可以是操作系統(tǒng)中定義的事件,例如,U盤插拔事件、網(wǎng)絡(luò)通斷事件、鼠標(biāo)插拔事件等,在此不再一一列舉。作為示例地,例如,當(dāng)用戶將U盤拔出后,Android操作系統(tǒng)的LinuxKernel會(huì)發(fā)送Uevent消息,以告知用戶空間存儲(chǔ)器(U盤)狀態(tài)發(fā)生了改變,此時(shí)Netlink監(jiān)聽(tīng)并接收到該Uevent信息后,通過(guò)和掛載服務(wù)(MountService)建立套接字(Socket)連接,從而將Uevent信息通過(guò)廣播形式傳送到用戶空間。在步驟S202中,根據(jù)所述廣播的廣播標(biāo)識(shí),在廣播注冊(cè)列表中查詢所述預(yù)定義事件的廣播。在本發(fā)明實(shí)施例中,使用一廣播注冊(cè)列表來(lái)存儲(chǔ)注冊(cè)的廣播。只有在該廣播注冊(cè)列表中注冊(cè)的廣播才可以被接收進(jìn)而被處理,從而當(dāng)該操作系統(tǒng)從一應(yīng)用平臺(tái)移植到另一應(yīng)用平臺(tái)時(shí),為廣播的添加、更改提供了基礎(chǔ)。在步驟S203中,當(dāng)查詢到所述預(yù)定義事件的廣播時(shí),獲取與所述廣播標(biāo)識(shí)關(guān)聯(lián)的事件響應(yīng)列表。在本發(fā)明實(shí)施...