本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)獲取方法、裝置和移動(dòng)設(shè)備。
背景技術(shù):
移動(dòng)設(shè)備上的觸摸屏、音量鍵、傳感器及用于控制移動(dòng)設(shè)備的耳機(jī)線上的按鍵等都屬于輸入設(shè)備。以移動(dòng)設(shè)備是android操作系統(tǒng)為例,android操作系統(tǒng)基于linux內(nèi)核,對(duì)應(yīng)輸入設(shè)備,可以在linux內(nèi)核建立輸入(input)子系統(tǒng)。輸入子系統(tǒng)對(duì)設(shè)備進(jìn)行初始化時(shí),會(huì)進(jìn)行注冊(cè)操作,包括對(duì)輸入設(shè)備注冊(cè)、事件注冊(cè)等。在注冊(cè)時(shí)會(huì)產(chǎn)生輸入設(shè)備序號(hào),如input1、input2等,以及,產(chǎn)生事件序號(hào),如event1、event2等。
相關(guān)技術(shù)中,當(dāng)應(yīng)用(APP)需要獲取數(shù)據(jù)時(shí),根據(jù)input序號(hào),確定與input序號(hào)相同的event序號(hào),再獲取該event序號(hào)對(duì)應(yīng)的數(shù)據(jù)。比如,需要獲取input1對(duì)應(yīng)的數(shù)據(jù)時(shí),直接確定該input1對(duì)應(yīng)的event序號(hào)是event1,再獲取event1的數(shù)據(jù)。
雖然一般情況下,input序號(hào)與event序號(hào)一致,比如,input1對(duì)應(yīng)event1。但是,由于驅(qū)動(dòng)多線程等原因,在一些情況下input序號(hào)與event序號(hào)并不一致,比如,第一線程創(chuàng)建了input1,第二線程創(chuàng)建了input2,由于多線程同時(shí)工作,那么就可能存在第二線程提前第一線程創(chuàng)建event序號(hào),即,第二線程創(chuàng)建了event1,第一線程創(chuàng)建了event2,這樣就會(huì)造成input序號(hào)與event序號(hào)不一致,此時(shí)直接根據(jù)input序號(hào)確定相同的event序號(hào)作為對(duì)應(yīng)的event序號(hào),就會(huì)造成數(shù)據(jù)獲取錯(cuò)誤,例如,將傳感器的數(shù)據(jù)誤認(rèn)為是觸摸屏的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
為此,本發(fā)明的一個(gè)目的在于提出一種數(shù)據(jù)獲取方法,該方法可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
本發(fā)明的另一個(gè)目的在于提出一種數(shù)據(jù)獲取裝置。
本發(fā)明的另一個(gè)目的在于提出一種移動(dòng)設(shè)備。
為達(dá)到上述目的,本發(fā)明第一方面實(shí)施例提出的數(shù)據(jù)獲取方法,包括:確定輸入設(shè)備序號(hào);根據(jù)預(yù)先生成的設(shè)備文件,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào);根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù);其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
本發(fā)明第一方面實(shí)施例提出的數(shù)據(jù)獲取方法,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在輸入設(shè)備注冊(cè)完成后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
為達(dá)到上述目的,本發(fā)明第二方面實(shí)施例提出的數(shù)據(jù)獲取裝置,包括:第一確定模塊,用于確定輸入設(shè)備序號(hào);第二確定模塊,用于根據(jù)預(yù)先生成的設(shè)備文件,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào);獲取模塊,用于根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù);其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
本發(fā)明第二方面實(shí)施例提出的數(shù)據(jù)獲取裝置,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在輸入設(shè)備注冊(cè)完成后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
為達(dá)到上述目的,本發(fā)明第三方面實(shí)施例提出的移動(dòng)設(shè)備,包括:殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為移動(dòng)設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序代碼;處理器通過(guò)讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來(lái)運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,以用于執(zhí)行以下步驟:確定輸入設(shè)備序號(hào);根據(jù)預(yù)先生成的設(shè)備文件,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào);根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù);其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
本發(fā)明第三方面實(shí)施例提出的移動(dòng)設(shè)備,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在輸入設(shè)備注冊(cè)完成后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
附圖說(shuō)明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明一個(gè)實(shí)施例提出的數(shù)據(jù)獲取方法的流程示意圖;
圖2是本發(fā)明另一個(gè)實(shí)施例提出的數(shù)據(jù)獲取方法的流程示意圖;
圖3是本發(fā)明一個(gè)實(shí)施例提出的數(shù)據(jù)獲取裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明另一個(gè)實(shí)施例提出的數(shù)據(jù)獲取裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提出的移動(dòng)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本發(fā)明一個(gè)實(shí)施例提出的數(shù)據(jù)獲取方法的流程示意圖。
參見(jiàn)圖1,該方法包括:
S11:確定輸入設(shè)備序號(hào)。
其中,輸入子系統(tǒng)會(huì)對(duì)輸入設(shè)備的狀態(tài)進(jìn)行檢測(cè),當(dāng)輸入設(shè)備的狀態(tài)發(fā)生變化時(shí),輸入子系統(tǒng)會(huì)根據(jù)狀態(tài)變化情況生成對(duì)應(yīng)的數(shù)據(jù),并將數(shù)據(jù)封裝在事件(event)中。
例如,將檢測(cè)到音量減小鍵(-)被按下時(shí),可以產(chǎn)生表明音量減小的數(shù)據(jù),并將該數(shù)據(jù)封裝在音量鍵這一輸入設(shè)備對(duì)應(yīng)的事件中。
另外,輸入子系統(tǒng)會(huì)將狀態(tài)發(fā)生變化的輸入設(shè)備的序號(hào)(inputX,X=1,2,3…),如音量鍵這一輸入設(shè)備的序號(hào),上報(bào)給用戶空間。
因此,用戶空間可以從接收的信息中獲取到輸入設(shè)備序號(hào),如input1。
S12:在預(yù)先生成的設(shè)備文件中,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào)。
其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
例如,設(shè)備文件中記錄input1對(duì)應(yīng)event1,如果用戶空間接收到的輸入設(shè)備序號(hào)是input1,則可以確定對(duì)應(yīng)的事件序號(hào)是event1。
進(jìn)一步的,設(shè)備文件可以是由輸入子系統(tǒng)創(chuàng)建的,且輸入子系統(tǒng)在完成注冊(cè)后,可以對(duì)應(yīng)每個(gè)輸入設(shè)備,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),之后將輸入設(shè)備序號(hào)和事件序號(hào)對(duì)應(yīng)記錄在設(shè)備文件中。
例如,輸入子系統(tǒng)在注冊(cè)完成后,確定序號(hào)為input1的設(shè)備對(duì)應(yīng)的事件序號(hào)是event1,則在設(shè)備文件中建立input1與event1的對(duì)應(yīng)關(guān)系。
進(jìn)一步的,輸入子系統(tǒng)在注冊(cè)完成后,可以從輸入設(shè)備句柄(input_handle)中獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào)。
S13:根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù)。
其中,輸入子系統(tǒng)在存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)封裝在事件中,因此當(dāng)用戶空間確定事件序號(hào)后,可以將事件序號(hào)發(fā)送給輸入子系統(tǒng),輸入子系統(tǒng)根據(jù)事件序號(hào)確定對(duì)應(yīng)的事件,再?gòu)膶?duì)應(yīng)的事件中獲取數(shù)據(jù)返回給用戶空間。
進(jìn)一步的,當(dāng)用戶空間獲取到數(shù)據(jù)后,可以根據(jù)數(shù)據(jù)進(jìn)行后續(xù)數(shù)據(jù)。具體的,用戶空間在獲取數(shù)據(jù)后,最終到達(dá)用戶空間中的應(yīng)用程序(Application,APP)中,APP獲取到數(shù)據(jù)后可以據(jù)此進(jìn)行處理,例如,當(dāng)接收到表明音量減小的數(shù)據(jù)后,對(duì)音量進(jìn)行減小處理。
本實(shí)施例中,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在完成注冊(cè)后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。比如,第一線程創(chuàng)建了input1,第二線程創(chuàng)建了input2,即使第二線程提前第一線程創(chuàng)建event序號(hào),即第二線程創(chuàng)建了event1,第一線程創(chuàng)建了event2,由于注冊(cè)是根據(jù)實(shí)際情況注冊(cè),也就是在注冊(cè)時(shí)會(huì)將input1對(duì)應(yīng)event2,input2對(duì)應(yīng)event1,因此,輸入子系統(tǒng)在完成注冊(cè)后獲取input序號(hào)與event序號(hào)的對(duì)應(yīng)關(guān)系時(shí),會(huì)獲取到準(zhǔn)確的對(duì)應(yīng)關(guān)系,如input1對(duì)應(yīng)event2,input2對(duì)應(yīng)event1。
圖2是本發(fā)明另一個(gè)實(shí)施例提出的數(shù)據(jù)獲取方法的流程示意圖。
參見(jiàn)圖2,本實(shí)施例的方法包括:
S21:輸入子系統(tǒng)對(duì)輸入設(shè)備進(jìn)行注冊(cè)處理。
其中,注冊(cè)處理可以包括輸入設(shè)備注冊(cè)和事件注冊(cè)。
輸入設(shè)備注冊(cè)例如將觸摸屏、音量鍵、傳感器、耳機(jī)線上的按鍵等注冊(cè)為輸入(input)設(shè)備。
事件注冊(cè)是對(duì)輸入設(shè)備的處理程序的注冊(cè)。
在注冊(cè)處理時(shí),會(huì)產(chǎn)生輸入設(shè)備序號(hào)和事件序號(hào)。
S22:輸入子系統(tǒng)創(chuàng)建設(shè)備文件,并在完成注冊(cè)后,對(duì)應(yīng)每個(gè)輸入設(shè)備,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),以及,將獲取的輸入設(shè)備序號(hào)和事件序號(hào)的對(duì)應(yīng)關(guān)系記錄在設(shè)備文件中。
其中,可以在輸入子系統(tǒng)中預(yù)先配置一個(gè)函數(shù),采用該函數(shù)創(chuàng)建設(shè)備文件。
可以理解的是,輸入子系統(tǒng)可以在注冊(cè)完成之前創(chuàng)建設(shè)備文件,以便在輸入設(shè)備注冊(cè)完成之后獲取到輸入設(shè)備序號(hào)和事件序號(hào)后,將其對(duì)應(yīng)記錄在設(shè)備文件中?;蛘?,
輸入子系統(tǒng)也可以在注冊(cè)完成之后再創(chuàng)建設(shè)備文件,并將獲取的輸入設(shè)備序號(hào)和事件序號(hào)對(duì)應(yīng)記錄在設(shè)備文件中。
另外,輸入子系統(tǒng)可以根據(jù)輸入設(shè)備句柄(input_handle),獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào)。
其中,輸入設(shè)備句柄是輸入子系統(tǒng)中的一個(gè)結(jié)構(gòu)體,用于關(guān)聯(lián)輸入設(shè)備序號(hào)和事件序號(hào),因此,通過(guò)輸入設(shè)備句柄可以獲取到相互對(duì)應(yīng)的輸入設(shè)備序號(hào)和事件序號(hào)。
S23:輸入子系統(tǒng)在檢測(cè)到輸入設(shè)備發(fā)生狀態(tài)變化后,根據(jù)變化情況生成數(shù)據(jù),并封裝在事件中。
例如,檢測(cè)到音量減小鍵(-)被按下,則生成表明音量減小的數(shù)據(jù),并封裝在音量鍵對(duì)應(yīng)的事件序號(hào)中,比如音頻鍵對(duì)應(yīng)的事件序號(hào)是event1,則將表明音量減小的數(shù)據(jù)封裝在event1這一事件中。
又例如,檢測(cè)到加速度傳感器旋轉(zhuǎn)后,則生成旋轉(zhuǎn)對(duì)應(yīng)的x、y、z軸的坐標(biāo)值,將這三個(gè)坐標(biāo)軸的坐標(biāo)值封裝在加速度傳感器對(duì)應(yīng)的事件序號(hào),如event2中。
進(jìn)一步的,為了保證數(shù)據(jù)的實(shí)時(shí)性,該方法還可以包括:
輸入子系統(tǒng)確定數(shù)據(jù)生成時(shí)間,并將所述生成時(shí)間作為時(shí)間戳,與數(shù)據(jù)對(duì)應(yīng)記錄。
例如,表明音量減小的數(shù)據(jù)(假設(shè)用data1表示)的生成時(shí)間是t1,則在輸入子系統(tǒng)中對(duì)應(yīng)記錄:event1、data1和t1。
又例如,加速度傳感器旋轉(zhuǎn)的三個(gè)坐標(biāo)值(假設(shè)用data2表示)的生成時(shí)間是t2,則在輸入子系統(tǒng)中對(duì)應(yīng)記錄:event2、data2和t2。
S24:輸入子系統(tǒng)在檢測(cè)到輸入設(shè)備發(fā)生狀態(tài)變化后,將發(fā)生變化的輸入設(shè)備的序號(hào)發(fā)送給用戶空間。
例如,音量鍵對(duì)應(yīng)的輸入設(shè)備序號(hào)用input1表示,則輸入子系統(tǒng)檢測(cè)到音量減小按鍵被按下后,則向用戶空間發(fā)送input1。
S25:用戶空間根據(jù)接收的輸入設(shè)備序號(hào),在設(shè)備文件中查找,確定與接收的輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào)。
例如,設(shè)備文件中記錄input1對(duì)應(yīng)event1,則當(dāng)接收到input1后,確定對(duì)應(yīng)的事件序號(hào)是event1。
具體的,根據(jù)設(shè)備文件確定與接收的輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào)的模塊可以具體是用戶空間中的硬件抽象層(hardware abstract layer,HAL)或應(yīng)用程序框架層(application framework)。
S26:用戶空間根據(jù)確定的事件序號(hào),從輸入子系統(tǒng)獲取對(duì)應(yīng)的數(shù)據(jù)。
例如,確定出的事件序號(hào)是event1,則確定對(duì)應(yīng)的數(shù)據(jù)是event1對(duì)應(yīng)的數(shù)據(jù)。
進(jìn)一步的,用戶空間在獲取數(shù)據(jù)時(shí),還可以根據(jù)當(dāng)前時(shí)間,獲取與所述事件序號(hào)對(duì)應(yīng),且時(shí)間戳距離當(dāng)前時(shí)間最近的數(shù)據(jù)。
例如,輸入子系統(tǒng)中記錄:event1、data11和t11,以及event1、data12和t12,假設(shè)確定出的事件序號(hào)是event1,且t12距離當(dāng)前時(shí)間最近,則獲取的數(shù)據(jù)是data2。
S27:APP根據(jù)獲取的數(shù)據(jù)作出相應(yīng)反應(yīng)。
例如,可以是HAL層或框架層從輸入子系統(tǒng)獲取數(shù)據(jù)后,將數(shù)據(jù)上報(bào)給APP,之后APP可以根據(jù)數(shù)據(jù)進(jìn)行相應(yīng)反應(yīng)。
例如,得到音量-被按下,則降低音量;音量+被按下,增大音量。加速度傳感器x,y,z軸數(shù)據(jù)為(0,0,9.8)左右時(shí)橫屏;(0,9.8,0)時(shí)豎屏等。
本實(shí)施例中,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在完成注冊(cè)后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。進(jìn)一步的,通過(guò)對(duì)數(shù)據(jù)標(biāo)記時(shí)間戳,可以保證數(shù)據(jù)獲取的實(shí)時(shí)性。
圖3是本發(fā)明一個(gè)實(shí)施例提出的數(shù)據(jù)獲取裝置的結(jié)構(gòu)示意圖。
參見(jiàn)圖3,該裝置30包括:第一確定模塊31、第二確定模塊32和獲取模塊33。
第一確定模塊31,用于確定輸入設(shè)備序號(hào);
第二確定模塊32,用于根據(jù)預(yù)先生成的設(shè)備文件,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào);
獲取模塊33,用于根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù);
其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
一些實(shí)施例中,參見(jiàn)圖4,本實(shí)施例的裝置30還包括:
創(chuàng)建模塊34,用于創(chuàng)建設(shè)備文件,并在完成注冊(cè)后,對(duì)應(yīng)每個(gè)輸入設(shè)備,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),以及,將獲取的輸入設(shè)備序號(hào)和事件序號(hào)的對(duì)應(yīng)關(guān)系記錄在設(shè)備文件中。
一些實(shí)施例中,所述創(chuàng)建模塊34用于獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),包括:
根據(jù)輸入設(shè)備句柄,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào)。
一些實(shí)施例中,所述獲取模塊33具體用于:
獲取與所述事件序號(hào)對(duì)應(yīng),且時(shí)間戳距離當(dāng)前時(shí)間最近的數(shù)據(jù)。
一些實(shí)施例中,參見(jiàn)圖4,該裝置30還包括:
記錄模塊35,用于在檢測(cè)到輸入設(shè)備的狀態(tài)發(fā)生變化后,生成數(shù)據(jù),將數(shù)據(jù)封裝在狀態(tài)發(fā)生變化的輸入設(shè)備對(duì)應(yīng)的事件中,并對(duì)應(yīng)數(shù)據(jù)記錄時(shí)間戳。
可以理解的是,上述的第一確定模塊、第二確定模塊和獲取模塊可以具體位于用戶空間,上述的創(chuàng)建模塊和記錄模塊可以具體位于內(nèi)核空間的輸入子系統(tǒng)中。
可以理解的是,本實(shí)施例的裝置與上述的方法實(shí)施例對(duì)應(yīng),具體內(nèi)容可以參見(jiàn)方法實(shí)施例中的描述,在此不再詳細(xì)說(shuō)明。
本實(shí)施例中,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在輸入設(shè)備注冊(cè)完成后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
圖5是本發(fā)明一個(gè)實(shí)施例提出的移動(dòng)設(shè)備的結(jié)構(gòu)示意圖。
該移動(dòng)設(shè)備可以具體是android系統(tǒng)的移動(dòng)設(shè)備,如android手機(jī)。
參見(jiàn)圖5,該移動(dòng)設(shè)備50包括:殼體51、處理器52、存儲(chǔ)器53、電路板54、電源電路55和傳感器56,其中,電路板54安置在殼體51圍成的空間內(nèi)部,處理器52和存儲(chǔ)器53設(shè)置在電路板54上;電源電路55,用于為移動(dòng)設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器53用于存儲(chǔ)可執(zhí)行程序代碼;處理器52通過(guò)讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來(lái)運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序。傳感器56用于執(zhí)行以下步驟:
確定輸入設(shè)備序號(hào);
根據(jù)預(yù)先生成的設(shè)備文件,確定與所述輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào);
根據(jù)所述事件序號(hào),獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù);
其中,所述設(shè)備文件中記錄輸入設(shè)備序號(hào)與事件序號(hào)的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系是輸入子系統(tǒng)完成注冊(cè)后確定的。
可選的,還包括:
輸入子系統(tǒng)創(chuàng)建設(shè)備文件,并在完成注冊(cè)后,對(duì)應(yīng)每個(gè)輸入設(shè)備,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),以及,將獲取的輸入設(shè)備序號(hào)和事件序號(hào)的對(duì)應(yīng)關(guān)系記錄在設(shè)備文件中。
可選的,所述獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào),包括:
根據(jù)輸入設(shè)備句柄,獲取輸入設(shè)備序號(hào)和對(duì)應(yīng)的事件序號(hào)。
可選的,所述獲取與所述事件序號(hào)對(duì)應(yīng)的數(shù)據(jù),包括:
獲取與所述事件序號(hào)對(duì)應(yīng),且時(shí)間戳距離當(dāng)前時(shí)間最近的數(shù)據(jù)。
可選的,還包括:
輸入子系統(tǒng)在檢測(cè)到輸入設(shè)備的狀態(tài)發(fā)生變化后,生成數(shù)據(jù),將數(shù)據(jù)封裝在狀態(tài)發(fā)生變化的輸入設(shè)備對(duì)應(yīng)的事件中,并對(duì)應(yīng)數(shù)據(jù)記錄時(shí)間戳。
可以理解的是,本實(shí)施例的移動(dòng)設(shè)備與上述的方法實(shí)施例對(duì)應(yīng),具體內(nèi)容可以參見(jiàn)方法實(shí)施例中的描述,在此不再詳細(xì)說(shuō)明。
本實(shí)施例中,根據(jù)設(shè)備文件確定輸入設(shè)備序號(hào)對(duì)應(yīng)的事件序號(hào),并且設(shè)備文件中記錄的輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系是在輸入設(shè)備注冊(cè)完成后確定的,由于獲取了注冊(cè)后的實(shí)際信息,可以保證輸入設(shè)備序號(hào)與事件序號(hào)之間的對(duì)應(yīng)關(guān)系的準(zhǔn)確性,因此在獲取數(shù)據(jù)時(shí)可以根據(jù)輸入設(shè)備序號(hào)確定出準(zhǔn)確的事件序號(hào),從而保證獲取的輸入設(shè)備數(shù)據(jù)的準(zhǔn)確性。
需要說(shuō)明的是,在本發(fā)明的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本發(fā)明的描述中,除非另有說(shuō)明,“多個(gè)”的含義是指至少兩個(gè)。
流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場(chǎng)可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
此外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。