本發(fā)明涉及終端
技術(shù)領(lǐng)域:
:,尤其涉及一種輸入事件分發(fā)方法、終端和計算機可讀存儲介質(zhì)。
背景技術(shù):
::隨著移動終端的普及,人們?nèi)粘I詈凸ぷ髦杏玫揭苿咏K端的頻率也越來越高。目前,用戶與移動終端的交互方式主要有物理按鍵、觸摸屏以及物理按鍵+觸摸屏等方式,而物理按鍵+觸摸屏的方式則是最普遍最常用的。但是,物理按鍵在受到用戶按壓時,觸發(fā)的按鍵輸入事件會被默認(rèn)分發(fā)給應(yīng)用窗口。若當(dāng)前用戶是對軟鍵盤進(jìn)行的操作,則需要應(yīng)用窗口再將按鍵輸入事件轉(zhuǎn)發(fā)給軟鍵盤,軟鍵盤再將按鍵輸入事件對應(yīng)的指令分發(fā)給應(yīng)用窗口,進(jìn)行按鍵事件的響應(yīng)??梢钥闯?,按鍵輸入事件的轉(zhuǎn)發(fā)和分發(fā)經(jīng)過了多次ipc(inter-processcommunication,進(jìn)程間通信)通信,傳遞流程存在繁冗的ipc通信。并且,由于ipc通信本身的速度較慢,而且若系統(tǒng)的資源消耗較多,則極易出現(xiàn)交互延遲的現(xiàn)象。技術(shù)實現(xiàn)要素:本發(fā)明的主要目的在于提供一種輸入事件分發(fā)方法、終端和計算機可讀存儲介質(zhì),旨在解決按鍵輸入事件分發(fā)流程繁冗的技術(shù)問題。為實現(xiàn)上述目的,本發(fā)明提供一種輸入事件分發(fā)方法,所述輸入事件分發(fā)方法包括以下步驟:在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別;若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài);若軟鍵盤處于顯示狀態(tài),則將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤;將所述輸入事件分發(fā)給所述軟鍵盤,以響應(yīng)所述輸入事件。優(yōu)選地,所述若軟鍵盤處于顯示狀態(tài),則將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤的步驟包括:若軟鍵盤處于顯示狀態(tài),則在所述終端當(dāng)前所有的應(yīng)用窗口中篩選出最上層的應(yīng)用窗口;鎖定所述應(yīng)用窗口上顯示的軟鍵盤,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤。優(yōu)選地,所述輸入事件分發(fā)方法還包括:若軟鍵盤處于隱藏狀態(tài),則將所述輸入事件分發(fā)給預(yù)設(shè)窗口。優(yōu)選地,所述輸入事件分發(fā)方法還包括:若所述輸入事件的類別為觸摸事件,則獲取所述輸入事件的輸入動作參數(shù);根據(jù)所述輸入動作參數(shù)確定目標(biāo)窗口,將所述輸入事件分發(fā)給所述目標(biāo)窗口進(jìn)行響應(yīng)。優(yōu)選地,所述在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別的步驟還包括:在收到終端底層上傳的輸入事件時,獲取所述輸入事件對應(yīng)的輸入設(shè)備;根據(jù)所述輸入事件對應(yīng)的輸入設(shè)備,確定所述輸入事件的類別。優(yōu)選地,所述若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài)的步驟還包括:若所述輸入事件的類別為按鍵事件,則查詢輸入法服務(wù),獲取所述輸入法服務(wù)反饋的軟鍵盤顯示狀態(tài)。優(yōu)選地,所述輸入事件分發(fā)方法還包括:將分發(fā)輸入事件的窗口由所述軟鍵盤還原為所述預(yù)設(shè)窗口。優(yōu)選地,所述輸入事件分發(fā)方法還包括:檢測所述移動終端當(dāng)前最上層的應(yīng)用窗口,將所述應(yīng)用窗口作為預(yù)設(shè)窗口。此外,為實現(xiàn)上述目的,本發(fā)明還提供一種終端,所述終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的輸入事件分發(fā)程序,所述輸入事件分發(fā)程序被所述處理器執(zhí)行時實現(xiàn)如上述任一項所述的輸入事件分發(fā)方法的步驟。此外,為實現(xiàn)上述目的,本發(fā)明還提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有輸入事件分發(fā)程序,所述輸入事件分發(fā)程序被處理器執(zhí)行時實現(xiàn)如上述任一項所述的輸入事件分發(fā)方法的步驟。本發(fā)明實施例提出的一種輸入事件分發(fā)方法、終端和計算機可讀存儲介質(zhì),通過在收到終端底層上傳的輸入事件時,獲取輸入事件的類別,用以根據(jù)輸入事件的類別確定輸入事件的分發(fā)流程;若輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài),判斷軟鍵盤當(dāng)前是否正顯示在終端的顯示界面中;若軟鍵盤處于顯示狀態(tài),則確定當(dāng)前軟鍵盤正顯示在終端的顯示界面中,為了避免輸入事件的往復(fù)轉(zhuǎn)發(fā),將分發(fā)輸入事件的預(yù)設(shè)窗口切換為軟鍵盤,修改分發(fā)輸入事件的默認(rèn)窗口,進(jìn)行分發(fā)輸入事件窗口的重新指定;然后,將輸入事件分發(fā)給軟鍵盤,以供軟鍵盤響應(yīng)輸入事件。本發(fā)明在收到按鍵輸入事件時,通過檢測軟鍵盤的顯示狀態(tài),從而確定輸入事件是否需要分發(fā)給預(yù)設(shè)窗口。當(dāng)軟鍵盤處于顯示狀態(tài)時,可以確定當(dāng)前的輸入事件是針對軟鍵盤的,因此,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為軟鍵盤,直接將輸入事件分發(fā)給軟鍵盤,而無需預(yù)設(shè)窗口轉(zhuǎn)發(fā)給軟鍵盤,去除了轉(zhuǎn)發(fā)事件的重復(fù)步驟,大大簡化了輸入事件的分發(fā)流程,解決了按鍵輸入事件分發(fā)流程繁冗的問題,減少了對ipc通信對資源的占用。由此,本發(fā)明實現(xiàn)了對按鍵輸入事件分發(fā)流程的優(yōu)化,無需多次跨進(jìn)程及進(jìn)行輸入事件的傳遞,能夠有效提升系統(tǒng)性能,使用戶得到流暢的輸入體驗。附圖說明圖1為實現(xiàn)本發(fā)明各個實施例一個可選的終端的硬件結(jié)構(gòu)示意圖;圖2為如圖1所示的終端的無線通信系統(tǒng)示意圖;圖3為本發(fā)明輸入事件分發(fā)方法第一實施例的流程示意圖;圖4為圖3中在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別的步驟的細(xì)化流程示意圖;圖5為圖3中若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài)的步驟的細(xì)化流程示意圖;圖6為本發(fā)明輸入事件分發(fā)方法第二實施例的流程示意圖;圖7為本發(fā)明輸入事件分發(fā)方法第三實施例的流程示意圖;圖8為本發(fā)明輸入事件分發(fā)方法第四實施例的流程示意圖;圖9為本發(fā)明輸入事件分發(fā)方法第五實施例的流程示意圖;圖10為本發(fā)明實施例中一種輸入事件分發(fā)場景的流程示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。具體實施方式應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身沒有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如手機、平板電腦、筆記本電腦、掌上電腦、個人數(shù)字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)等移動終端,以及諸如數(shù)字tv、臺式計算機等固定終端。后續(xù)描述中將以移動終端為例進(jìn)行說明,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。請參閱圖1,其為實現(xiàn)本發(fā)明各個實施例的一種移動終端的硬件結(jié)構(gòu)示意圖,該移動終端100可以包括:rf(radiofrequency,射頻)單元101、顯示單元102、用戶輸入單元103、存儲器104、處理器105、以及電源106等部件。本領(lǐng)域技術(shù)人員可以理解,圖1中示出的移動終端結(jié)構(gòu)并不構(gòu)成對移動終端的限定,移動終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結(jié)合圖1對移動終端的各個部件進(jìn)行具體的介紹:射頻單元101可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,具體的,將基站的下行信息接收后,給處理器105處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。通常,射頻單元101包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務(wù))、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長期演進(jìn))和tdd-lte(timedivisionduplexing-longtermevolution,分時雙工長期演進(jìn))等。顯示單元102用于顯示由用戶輸入的信息或提供給用戶的信息。顯示單元102可包括顯示面板1021,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示面板1021。用戶輸入單元103可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動終端的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,用戶輸入單元103可包括觸控面板1031以及物理按鍵1032。觸控面板1031,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1031上或在觸控面板1031附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置。觸控面板1031可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標(biāo),再送給處理器105,并能接收處理器105發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板1031。除了觸控面板1031,用戶輸入單元103還包括物理按鍵1032。具體地,物理按鍵1032可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)等。用戶輸入單元103還可包括軌跡球、鼠標(biāo)、操作桿等中的一種或多種輸入設(shè)備,具體此處不做限定。進(jìn)一步的,觸控面板1031可覆蓋顯示面板1021,當(dāng)觸控面板1031檢測到在其上或附近的觸摸操作后,傳送給處理器105以確定觸摸事件的類型,隨后處理器105根據(jù)觸摸事件的類型在顯示面板1021上提供相應(yīng)的視覺輸出。雖然在圖1中,觸控面板1031與顯示面板1021是作為兩個獨立的部件來實現(xiàn)移動終端的輸入和輸出功能,但是在某些實施例中,可以將觸控面板1031與顯示面板1021集成而實現(xiàn)移動終端的輸入和輸出功能,具體此處不做限定。存儲器104可用于存儲軟件程序以及各種數(shù)據(jù)。存儲器104可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、輸入事件分發(fā)程序等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)移動終端的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器104可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。處理器105是移動終端的控制中心,利用各種接口和線路連接整個移動終端的各個部分,通過運行或執(zhí)行存儲在存儲器104內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器104內(nèi)的數(shù)據(jù),執(zhí)行移動終端的各種功能和處理數(shù)據(jù),從而對移動終端進(jìn)行整體監(jiān)控。處理器105可包括一個或多個處理單元;優(yōu)選的,處理器105可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器105中。移動終端100還可以包括給各個部件供電的電源106(比如電池),優(yōu)選的,電源106可以通過電源管理系統(tǒng)與處理器105邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。盡管圖1未示出,移動終端100還可以包括藍(lán)牙模塊等,在此不再贅述。處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,并執(zhí)行以下操作在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別;若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài);若軟鍵盤處于顯示狀態(tài),則將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤;將所述輸入事件分發(fā)給所述軟鍵盤,以響應(yīng)所述輸入事件。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:若軟鍵盤處于顯示狀態(tài),則在所述終端當(dāng)前所有的應(yīng)用窗口中篩選出最上層的應(yīng)用窗口;鎖定所述應(yīng)用窗口上顯示的軟鍵盤,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:若軟鍵盤處于隱藏狀態(tài),則將所述輸入事件分發(fā)給預(yù)設(shè)窗口。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:若所述輸入事件的類別為觸摸事件,則獲取所述輸入事件的輸入動作參數(shù);根據(jù)所述輸入動作參數(shù)確定目標(biāo)窗口,將所述輸入事件分發(fā)給所述目標(biāo)窗口進(jìn)行響應(yīng)。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:在收到終端底層上傳的輸入事件時,獲取所述輸入事件對應(yīng)的輸入設(shè)備;根據(jù)所述輸入事件對應(yīng)的輸入設(shè)備,確定所述輸入事件的類別。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:若所述輸入事件的類別為按鍵事件,則查詢輸入法服務(wù),獲取所述輸入法服務(wù)反饋的軟鍵盤顯示狀態(tài)。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:將分發(fā)輸入事件的窗口由所述軟鍵盤還原為所述預(yù)設(shè)窗口。進(jìn)一步地,處理器105可以用于調(diào)用存儲器104中存儲的輸入事件分發(fā)程序,還執(zhí)行以下操作:檢測所述移動終端當(dāng)前最上層的應(yīng)用窗口,將所述應(yīng)用窗口作為預(yù)設(shè)窗口。本發(fā)明終端的具體實施例與下述輸入事件分發(fā)方法各實施例基本相同,在此不作贅述。為了便于理解本發(fā)明實施例,下面對本發(fā)明的移動終端所基于的通信網(wǎng)絡(luò)系統(tǒng)進(jìn)行描述。請參閱圖2,圖2為本發(fā)明實施例提供的一種通信網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖,該通信網(wǎng)絡(luò)系統(tǒng)為通用移動通信技術(shù)的lte系統(tǒng),該lte系統(tǒng)包括依次通訊連接的ue(userequipment,用戶設(shè)備)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演進(jìn)式umts陸地?zé)o線接入網(wǎng))202,epc(evolvedpacketcore,演進(jìn)式分組核心網(wǎng))203和運營商的ip業(yè)務(wù)204。具體地,ue201可以是上述終端100,此處不再贅述。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通過回程(backhaul)(例如x2接口)與其它enodeb2022連接,enodeb2021連接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移動性管理實體)2031,hss(homesubscriberserver,歸屬用戶服務(wù)器)2032,其它mme2033,sgw(servinggateway,服務(wù)網(wǎng)關(guān))2034,pgw(pdngateway,分組數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)關(guān))2035和pcrf(policyandchargingrulesfunction,政策和資費功能實體)2036等。其中,mme2031是處理ue201和epc203之間信令的控制節(jié)點,提供承載和連接管理。hss2032用于提供一些寄存器來管理諸如歸屬位置寄存器(圖中未示)之類的功能,并且保存有一些有關(guān)服務(wù)特征、數(shù)據(jù)速率等用戶專用的信息。所有用戶數(shù)據(jù)都可以通過sgw2034進(jìn)行發(fā)送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是業(yè)務(wù)數(shù)據(jù)流和ip承載資源的策略與計費控制策略決策點,它為策略與計費執(zhí)行功能單元(圖中未示)選擇及提供可用的策略和計費控制決策。ip業(yè)務(wù)204可以包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、ims(ipmultimediasubsystem,ip多媒體子系統(tǒng))或其它ip業(yè)務(wù)等。雖然上述以lte系統(tǒng)為例進(jìn)行了介紹,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉,本發(fā)明不僅僅適用于lte系統(tǒng),也可以適用于其他無線通信系統(tǒng),例如gsm、cdma2000、wcdma、td-scdma以及未來新的網(wǎng)絡(luò)系統(tǒng)等,此處不做限定?;谏鲜鲆苿咏K端硬件結(jié)構(gòu)以及通信網(wǎng)絡(luò)系統(tǒng),提出本發(fā)明方法各個實施例。參照圖3,本發(fā)明輸入事件分發(fā)方法第一實施例提供一種輸入事件分發(fā)方法,所述輸入事件分發(fā)方法包括:步驟s10、在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別。用戶在使用終端時,可以通過按鍵或是觸摸屏等物理硬件進(jìn)行指令的輸入。本實施例中,以終端為移動終端進(jìn)行舉例說明。移動終端的底層在檢測到用戶的輸入動作時,將用戶的輸入動作轉(zhuǎn)換為輸入事件上傳給事件分發(fā)模塊。其中,移動終端的底層包括物理層和驅(qū)動層。具體的,物理層將用戶施加到按鍵或是觸摸屏等輸入設(shè)備上的輸入動作轉(zhuǎn)變?yōu)殡娦盘?,將電信號傳遞至驅(qū)動層。驅(qū)動層在收到物理層上傳的電信號后,對電信號進(jìn)行解析,得到用戶的輸入動作及輸入動作的各項參數(shù)。其中,輸入動作包括按鍵或按壓觸摸屏,輸入動作的各項參數(shù)包括按壓的按鍵或觸摸屏位置、持續(xù)時間、壓力等參數(shù)。然后,驅(qū)動層根據(jù)輸入動作及輸入動作的各項參數(shù)對應(yīng)生成輸入事件,并將該輸入事件上傳至事件分發(fā)模塊。當(dāng)事件分發(fā)模塊在收到驅(qū)動層上傳的輸入事件時,需要獲取輸入事件的類別,再對不同類別的輸入事件執(zhí)行不同的分發(fā)流程。作為一種實施方式,驅(qū)動層在上傳輸入事件時,同時向事件分發(fā)模塊匯報本次輸入事件的類別。則事件分發(fā)模塊在收到輸入事件時,同時能夠獲取此輸入事件的類別,例如按鍵輸入、觸摸輸入等。由此,得到了輸入事件的類別。作為另外一種實施方式,參照圖4,所述步驟s10包括:步驟s11、在收到輸入事件時,獲取所述輸入事件對應(yīng)的輸入設(shè)備;步驟s12、根據(jù)所述輸入事件對應(yīng)的輸入設(shè)備,確定所述輸入事件的類別。具體的,事件分發(fā)模塊在收到驅(qū)動層上傳的輸入事件時,解析觸摸事件得到用戶的輸入動作以及輸入動作的各項參數(shù),從而得到本次輸入事件對應(yīng)的輸入設(shè)備,例如物理按鍵、觸摸屏等。若本次輸入事件的輸入設(shè)備為物理按鍵,則確定輸入事件的類別為按鍵輸入;若本次輸入事件的輸入設(shè)備為觸摸屏,則確定輸入事件的類別為觸摸輸入。由此,得到了輸入事件的類別。步驟s20、若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài)。在得到輸入事件的類別后,若輸入事件的類別為按鍵事件,則事件分發(fā)模塊調(diào)用輸入法判定模塊,檢測軟鍵盤的狀態(tài)。作為一種實施方式,輸入法判定模塊直接檢測移動終端的顯示界面。若移動終端的顯示界面中最上層顯示有軟鍵盤,則判定軟鍵盤處于顯示狀態(tài);若移動終端的顯示界面中最上層沒有顯示軟件盤,則判定軟鍵盤處于隱藏狀態(tài)。作為另外一種實施方式,參照圖5,所述步驟s20包括:步驟s21、若所述輸入事件的類別為按鍵事件,則查詢輸入法服務(wù),獲取所述輸入法服務(wù)反饋的軟鍵盤顯示狀態(tài)。若輸入事件的類別為按鍵事件,則輸入法判定模塊可以通過與輸入法服務(wù)進(jìn)行交互,可以查詢軟鍵盤的顯示狀態(tài)。具體的,輸入法判定模塊向輸入法服務(wù)發(fā)送查詢指令,查詢軟鍵盤當(dāng)前的顯示狀態(tài)。輸入法服務(wù)檢測軟鍵盤當(dāng)前是否正處于顯示狀態(tài),并將軟鍵盤的狀態(tài)反饋給輸入法判定模塊。輸入法判定模塊在收到輸入法服務(wù)反饋的軟鍵盤狀態(tài)后,若軟鍵盤當(dāng)前正處于顯示狀態(tài),則判定終端的顯示界面中顯示有軟鍵盤;若軟鍵盤當(dāng)前正不處于顯示狀態(tài),則判定終端的顯示界面中沒有顯示軟鍵盤,軟鍵盤處于隱藏狀態(tài)。由此,得到軟鍵盤的顯示狀態(tài)。進(jìn)一步地,移動終端還需要確定當(dāng)前的預(yù)設(shè)窗口。作為一種實施方式,檢測所述移動終端當(dāng)前最上層的應(yīng)用窗口,將所述應(yīng)用窗口作為預(yù)設(shè)窗口。移動終端在當(dāng)前正在運行的應(yīng)用中,查找當(dāng)前位于最上層、正在與用戶交互的應(yīng)用窗口,并將此應(yīng)用窗口作為預(yù)設(shè)窗口,也即分發(fā)按鍵事件的默認(rèn)窗口。步驟s30、若軟鍵盤處于顯示狀態(tài),則將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤。若檢測到軟鍵盤處于顯示狀態(tài),也即當(dāng)前的輸入事件是針對軟鍵盤的。此時,輸入法判定模塊調(diào)用輸入目標(biāo)切換模塊,由輸入目標(biāo)切換模塊進(jìn)行輸入目標(biāo)窗口的切換。具體的,由于軟鍵盤處于顯示狀態(tài)時通常位于終端顯示界面的最上層,因此,目標(biāo)切換模塊還可以直接抓取終端顯示界面中最上層的窗口,作為軟鍵盤。然后,輸入目標(biāo)切換模塊將系統(tǒng)默認(rèn)的、分發(fā)輸入事件的預(yù)設(shè)窗口,由應(yīng)用窗口切換為此軟鍵盤,也即,指定本次輸入事件的分發(fā)窗口重新指定為軟鍵盤。由此,輸入目標(biāo)切換模塊實現(xiàn)了分發(fā)輸入事件窗口的切換,向輸入法判定模塊反饋切換結(jié)果。步驟s40、將所述輸入事件分發(fā)給所述軟鍵盤,以響應(yīng)所述輸入事件。輸入法判定模塊在收到輸入目標(biāo)切換模塊反饋的切換結(jié)果后,確定分發(fā)輸入事件的預(yù)設(shè)窗口已經(jīng)切換為軟鍵盤,則輸入法判定模塊向事件分發(fā)模塊反饋切換結(jié)果。事件分發(fā)模塊在收到輸入法判定模塊反饋的切換結(jié)果后,確定分發(fā)輸入事件的預(yù)設(shè)窗口已經(jīng)切換為軟鍵盤,則將輸入事件分發(fā)給軟鍵盤,由軟鍵盤進(jìn)行輸入事件的響應(yīng),例如輸入字符、切換輸入框、調(diào)整光標(biāo)位置等等。由此,完成了按鍵輸入事件的分發(fā)。在本實施例中,在收到終端底層上傳的輸入事件時,獲取輸入事件的類別,用以根據(jù)輸入事件的類別確定輸入事件的分發(fā)流程;若輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài),判斷軟鍵盤當(dāng)前是否正顯示在終端的顯示界面中;若軟鍵盤處于顯示狀態(tài),則確定當(dāng)前軟鍵盤正顯示在終端的顯示界面中,為了避免輸入事件的往復(fù)轉(zhuǎn)發(fā),將分發(fā)輸入事件的預(yù)設(shè)窗口切換為軟鍵盤,修改分發(fā)輸入事件的默認(rèn)窗口,進(jìn)行分發(fā)輸入事件窗口的重新指定;然后,將輸入事件分發(fā)給軟鍵盤,以供軟鍵盤響應(yīng)輸入事件。本實施例在收到按鍵輸入事件時,通過檢測軟鍵盤的顯示狀態(tài),從而確定輸入事件是否需要分發(fā)給預(yù)設(shè)窗口。當(dāng)軟鍵盤處于顯示狀態(tài)時,可以確定當(dāng)前的輸入事件是針對軟鍵盤的,因此,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為軟鍵盤,直接將輸入事件分發(fā)給軟鍵盤,而無需預(yù)設(shè)窗口轉(zhuǎn)發(fā)給軟鍵盤,去除了轉(zhuǎn)發(fā)事件的重復(fù)步驟,大大簡化了輸入事件的分發(fā)流程,解決了按鍵輸入事件分發(fā)流程繁冗的問題,減少了對ipc通信對資源的占用。由此,本實施例實現(xiàn)了對按鍵輸入事件分發(fā)流程的優(yōu)化,無需多次跨進(jìn)程及進(jìn)行輸入事件的傳遞,能夠有效提升系統(tǒng)性能,使用戶得到流暢的輸入體驗。進(jìn)一步的,參照圖6,本發(fā)明輸入事件分發(fā)方法第二實施例提供一種輸入事件分發(fā)方法,基于上述本發(fā)明輸入事件分發(fā)方法第一實施例,所述步驟s30包括:步驟s31、若軟鍵盤處于顯示狀態(tài),則在所述終端當(dāng)前所有的應(yīng)用窗口中篩選出最上層的應(yīng)用窗口;步驟s32、鎖定所述應(yīng)用窗口上顯示的軟鍵盤,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤。當(dāng)檢測到軟鍵盤處于顯示狀態(tài)時,目標(biāo)切換模塊在移動終端當(dāng)前所有的、可作為輸入窗口的應(yīng)用窗口中進(jìn)行篩選,篩選出位于最上層的應(yīng)用窗口。需要說明的是,本實施例中應(yīng)用窗口包括應(yīng)用軟件的窗口、系統(tǒng)應(yīng)用的窗口等功能窗口。然后,目標(biāo)切換模塊與wms(windowmanagerservice,窗口管理服務(wù))交互,查詢得到最上層應(yīng)用窗口之上的軟鍵盤并鎖定此軟鍵盤,將此軟鍵盤作為本次輸入事件分發(fā)的目標(biāo)窗口。然后,目標(biāo)切換模塊將分發(fā)輸入事件的預(yù)設(shè)窗口切換為此軟鍵盤。由此,完成了輸入事件分發(fā)窗口的切換。在本實施例中,若軟鍵盤處于顯示狀態(tài),則在終端當(dāng)前所有的應(yīng)用窗口中篩選出最上層的應(yīng)用窗口;鎖定此應(yīng)用窗口上顯示的軟鍵盤,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為此軟鍵盤。本實施例通過篩選最上層應(yīng)用窗口,進(jìn)而鎖定最上層應(yīng)用窗口之上的軟鍵盤,保障了能夠正確的將分發(fā)輸入事件的預(yù)設(shè)窗口切換為軟鍵盤。進(jìn)一步地,參照圖7,本發(fā)明輸入事件分發(fā)方法第三實施例提供一種輸入事件分發(fā)方法,基于上述本發(fā)明輸入事件分發(fā)方法第一實施例或第二實施例(本實施例以本發(fā)明輸入事件分發(fā)方法第一實施例為例),所述輸入事件分發(fā)方法還包括:步驟s50、若軟鍵盤處于隱藏狀態(tài),則將所述輸入事件分發(fā)給預(yù)設(shè)窗口。當(dāng)輸入法判定模快檢測到軟鍵盤處于隱藏狀態(tài)時,向事件分發(fā)模塊返回軟鍵盤的隱藏狀態(tài)。事件分發(fā)模塊在得到輸入法判定??旆答伒娘@示狀態(tài)后,確定軟鍵盤當(dāng)前處于隱藏狀態(tài),也即,當(dāng)前并沒有調(diào)用軟鍵盤進(jìn)行輸入。因此,事件分發(fā)模塊需要將輸入事件分發(fā)給預(yù)設(shè)窗口,也即系統(tǒng)默認(rèn)的、分發(fā)按鍵輸入事件的應(yīng)用窗口。由此,完成了輸入事件的分發(fā)。在本實施例中,當(dāng)軟鍵盤處于隱藏狀態(tài)時,將輸入事件分發(fā)給預(yù)設(shè)窗口。由于軟鍵盤處于隱藏狀態(tài)時,可以確定用戶的輸入事件是針對按鍵輸入事件的預(yù)設(shè)窗口的,不再檢測軟鍵盤的顯示狀態(tài),直接將本次輸入事件分發(fā)給預(yù)設(shè)窗口,節(jié)約分發(fā)流程。進(jìn)一步地,參照圖8,本發(fā)明輸入事件分發(fā)方法第四實施例提供一種輸入事件分發(fā)方法,基于上述本發(fā)明輸入事件分發(fā)方法第一實施例、第二實施例或第三實施例(本實施例以本發(fā)明輸入事件分發(fā)方法第一實施例為例),所述輸入事件分發(fā)方法還包括:步驟s61、若所述輸入事件的類別為觸摸事件,則獲取所述輸入事件的輸入動作參數(shù);步驟s72、根據(jù)所述輸入動作參數(shù)確定目標(biāo)窗口,將所述輸入事件分發(fā)給所述目標(biāo)窗口進(jìn)行響應(yīng)。事件分發(fā)模塊在檢測到輸入事件的類別為觸摸事件時,獲取輸入事件的輸入動作參數(shù),包括觸摸點位置等參數(shù)。然后,事件分發(fā)模塊根據(jù)輸入動作參數(shù)確定本次觸摸事件分發(fā)的目標(biāo)窗口,例如,若觸摸點位置位于應(yīng)用軟件的按鈕,則確定目標(biāo)窗口為此應(yīng)用軟件;若觸摸點位置位于軟鍵盤,則確定目標(biāo)窗口為此軟鍵盤。在得到目標(biāo)窗口后,事件分發(fā)模塊將本次輸入事件分發(fā)給目標(biāo)窗口,由目標(biāo)窗口進(jìn)行響應(yīng)。作為一種具體的應(yīng)用場景,參照圖10,移動終端當(dāng)前顯示界面中顯示的是a應(yīng)用窗口,a應(yīng)用窗口中包括輸入控件,可進(jìn)行字符輸入。因此,分發(fā)按鍵輸入事件的預(yù)設(shè)窗口為a應(yīng)用窗口。當(dāng)事件分發(fā)模塊收到輸入事件時,檢測輸入事件的類別。若輸入事件是觸摸事件,則根據(jù)觸摸位置等輸入動作參數(shù)確定分發(fā)輸入事件的目標(biāo)窗口:a應(yīng)用窗口或軟鍵盤,由目標(biāo)窗口進(jìn)行響應(yīng)。若輸入事件是按鍵事件,則調(diào)用輸入法判定模塊。輸入法判定模塊檢測軟鍵盤是否為顯示狀態(tài)。若軟鍵盤為顯示狀態(tài),則調(diào)用輸入目標(biāo)切換模塊,輸入目標(biāo)切換模塊與wms交互,將分發(fā)輸入事件的預(yù)設(shè)窗口由a應(yīng)用窗口切換為軟鍵盤,再由事件分發(fā)模塊將輸入事件分發(fā)給軟鍵盤,由軟鍵盤對輸入事件進(jìn)行響應(yīng),提交信息給a應(yīng)用窗口的輸入控件。若軟鍵盤為隱藏狀態(tài),則事件分發(fā)模塊將輸入事件分發(fā)給a應(yīng)用窗口。由此,完成了輸入事件的分發(fā),使得各類別、各種情況下的輸入事件都能快速的到達(dá)目標(biāo)窗口。在本實施例中,若所述輸入事件的類別為觸摸事件,則獲取輸入事件的輸入動作參數(shù);然后,根據(jù)輸入動作參數(shù)確定目標(biāo)窗口,將輸入事件分發(fā)給目標(biāo)窗口進(jìn)行響應(yīng)。本實施例在出入時間為觸摸事件時,直接根據(jù)輸入動作參數(shù)確定需要分發(fā)輸入事件的目標(biāo)窗口,進(jìn)行響應(yīng),沒有多余的ipc通信,提升了響應(yīng)速度。進(jìn)一步地,參照圖9,本發(fā)明輸入事件分發(fā)方法第五實施例提供一種輸入事件分發(fā)方法,基于上述本發(fā)明輸入事件分發(fā)方法第一實施例、第二實施例、第三實施例或第四實施例(本實施例以本發(fā)明輸入事件分發(fā)方法第一實施例為例),所述步驟s40之后還包括:步驟s70、將分發(fā)輸入事件的窗口由所述軟鍵盤還原為所述預(yù)設(shè)窗口。若輸入事件的類別為按鍵輸入,且軟鍵盤處于顯示狀態(tài)時,事件分發(fā)模塊將輸入事件分發(fā)給軟鍵盤。然后,事件分發(fā)模塊調(diào)用輸入法切換模塊,由輸入法切換模塊進(jìn)行時間分發(fā)模塊默認(rèn)窗口的還原設(shè)置。具體的,輸入法切換模塊將分發(fā)輸入事件的默認(rèn)窗口由軟鍵盤還原為預(yù)設(shè)窗口。后續(xù),若再收到輸入事件,重新根據(jù)實際情況進(jìn)行事件分發(fā)或窗口的切換。在本實施例中,在將按鍵輸入事件分發(fā)給軟鍵盤后,需要將分發(fā)輸入事件的窗口由軟鍵盤還原為預(yù)設(shè)窗口,避免對后續(xù)輸入事件的分發(fā)造成影響,提升事件分發(fā)效率。此外,本發(fā)明實施例還提出一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有輸入事件分發(fā)程序,所述輸入事件分發(fā)程序被處理器執(zhí)行時實現(xiàn)如下操作:在收到終端底層上傳的輸入事件時,獲取所述輸入事件的類別;若所述輸入事件的類別為按鍵事件,則檢測軟鍵盤的顯示狀態(tài);若軟鍵盤處于顯示狀態(tài),則將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤;將所述輸入事件分發(fā)給所述軟鍵盤,以響應(yīng)所述輸入事件。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:若軟鍵盤處于顯示狀態(tài),則在所述終端當(dāng)前所有的應(yīng)用窗口中篩選出最上層的應(yīng)用窗口;鎖定所述應(yīng)用窗口上顯示的軟鍵盤,將分發(fā)輸入事件的預(yù)設(shè)窗口切換為所述軟鍵盤。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:若軟鍵盤處于隱藏狀態(tài),則將所述輸入事件分發(fā)給預(yù)設(shè)窗口。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:若所述輸入事件的類別為觸摸事件,則獲取所述輸入事件的輸入動作參數(shù);根據(jù)所述輸入動作參數(shù)確定目標(biāo)窗口,將所述輸入事件分發(fā)給所述目標(biāo)窗口進(jìn)行響應(yīng)。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:在收到終端底層上傳的輸入事件時,獲取所述輸入事件對應(yīng)的輸入設(shè)備;根據(jù)所述輸入事件對應(yīng)的輸入設(shè)備,確定所述輸入事件的類別。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:若所述輸入事件的類別為按鍵事件,則查詢輸入法服務(wù),獲取所述輸入法服務(wù)反饋的軟鍵盤顯示狀態(tài)。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:將分發(fā)輸入事件的窗口由所述軟鍵盤還原為所述預(yù)設(shè)窗口。進(jìn)一步地,所述輸入事件分發(fā)程序被處理器執(zhí)行時還實現(xiàn)如下操作:檢測所述移動終端當(dāng)前最上層的應(yīng)用窗口,將所述應(yīng)用窗口作為預(yù)設(shè)窗口。本發(fā)明計算機可讀存儲介質(zhì)的具體實施例與上述輸入事件分發(fā)方法各實施例基本相同,在此不作贅述。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在如上所述的一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的
技術(shù)領(lǐng)域:
:,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12