本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種按鍵事件的處理方法,同時(shí)本申請(qǐng)還特別涉及一種智能終端。
背景技術(shù):
按鍵事件是指對(duì)鍵盤(包括虛擬鍵盤)的操作,例如,敲擊鍵盤中的某個(gè)按鍵,按住鍵盤中的某個(gè)鍵不放,或者按組合快捷鍵等,都屬于按鍵事件。
智能終端對(duì)于按鍵事件的響應(yīng)有其自己的機(jī)制,智能終端中的按鍵分發(fā)系統(tǒng)(Input Manager Service)在收到用戶驅(qū)動(dòng)的按鍵事件后,首先會(huì)將其加入到自身的按鍵事件處理隊(duì)列中,然后按照隊(duì)列中各按鍵事件的先后次序,依次對(duì)各按鍵事件進(jìn)行處理。
發(fā)明人在實(shí)現(xiàn)本申請(qǐng)的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)的上述按鍵事件處理方法中至少存在以下的問題:
上述通過按鍵分發(fā)系統(tǒng)處理案件事件的方法所需要的時(shí)間較長,導(dǎo)致在案件事件發(fā)生時(shí),上層的應(yīng)用不能夠在第一時(shí)間內(nèi)獲知該按鍵事件發(fā)生的消息。然而對(duì)于一些緊急的按鍵事件,應(yīng)用的實(shí)時(shí)性要求或者優(yōu)先級(jí)會(huì)比較高,倘若不能夠及時(shí)的獲取按鍵事件發(fā)生的消息,則會(huì)導(dǎo)致應(yīng)用無法及時(shí)的對(duì)按鍵事件進(jìn)行處理,影響用戶的使用體驗(yàn)。
可見,在按鍵事件發(fā)生之后,如何讓應(yīng)用能夠在第一時(shí)間內(nèi)獲知該按鍵事件發(fā)生的消息,進(jìn)而使得應(yīng)用能夠提前對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)岢隽艘环N按鍵事件的處理方法,用以在按鍵事件發(fā)生之后,實(shí)現(xiàn)讓應(yīng)用能夠在第一時(shí)間內(nèi)獲知該按鍵事件發(fā)生的消息。該方法應(yīng)用于智能終端中,包括:
在檢測(cè)到按鍵事件時(shí),判斷所述按鍵事件是否為所述智能終端的應(yīng)用注冊(cè)的緊急按鍵事件;
若判斷結(jié)果為是,則將所述按鍵事件發(fā)生的消息通知給所述應(yīng)用,并根據(jù)所述應(yīng)用對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求對(duì)所述按鍵事件進(jìn)行處理;
若判斷結(jié)果為否,則將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列。
優(yōu)選地,在所述判斷所述按鍵事件是否為所述智能終端的應(yīng)用注冊(cè)的緊急按鍵事件之前,所述方法還包括:
接收所述應(yīng)用發(fā)送的對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求;
在監(jiān)控列表中加入所述按鍵事件的監(jiān)控指示。
優(yōu)選地,所述判斷所述按鍵事件是否為所述智能終端的應(yīng)用注冊(cè)的緊急按鍵事件,具體包括:
判斷所述監(jiān)控列表中是否存在所述按鍵事件的監(jiān)控指示;
若判斷結(jié)果為存在,則確認(rèn)所述按鍵事件為所述應(yīng)用注冊(cè)的緊急按鍵事件;
若判斷結(jié)果為不存在,則確認(rèn)所述按鍵事件不是所述應(yīng)用注冊(cè)的緊急按鍵事件。
優(yōu)選地,所述注冊(cè)請(qǐng)求中包含對(duì)于所述按鍵事件的處理動(dòng)作,所述處理動(dòng)作具體包括分發(fā)以及屏蔽,所述根據(jù)所述應(yīng)用對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求對(duì)所述按鍵事件進(jìn)行處理,具體包括:
獲取所述注冊(cè)請(qǐng)求包含的對(duì)于所述按鍵事件的處理動(dòng)作;
若所述處理動(dòng)作為所述分發(fā),則將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列;
若所述處理動(dòng)作為所述屏蔽,則丟棄所述按鍵事件。
優(yōu)選地,在接收到所述應(yīng)用對(duì)所述按鍵事件的解除監(jiān)控請(qǐng)求時(shí),將所述監(jiān)控列表中所述按鍵事件的監(jiān)控指示刪除。
相應(yīng)的,本申請(qǐng)還提出了一種智能終端,包括:
判斷模塊,用于在檢測(cè)到按鍵事件時(shí),判斷所述按鍵事件是否為所述智能終端的應(yīng)用注冊(cè)的緊急按鍵事件;
通知模塊,用于在判斷結(jié)果為是時(shí),將所述按鍵事件發(fā)生的消息通知給所述應(yīng)用,并根據(jù)所述應(yīng)用對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求對(duì)所述按鍵事件進(jìn)行處理;
發(fā)送模塊,用于在判斷結(jié)果為否時(shí),將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列。
優(yōu)選地,還包括:
接收模塊,用于接收所述應(yīng)用發(fā)送的對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求;
添加模塊,用于在監(jiān)控列表中加入所述按鍵事件的監(jiān)控指示。
優(yōu)選地,所述判斷模塊具體用于:
判斷所述監(jiān)控列表中是否存在所述按鍵事件的監(jiān)控指示;
在判斷結(jié)果為存在時(shí),確認(rèn)所述按鍵事件為所述應(yīng)用注冊(cè)的緊急按鍵事件;
在判斷結(jié)果為不存在時(shí),則確認(rèn)所述按鍵事件不是所述應(yīng)用注冊(cè)的緊急按鍵事件。
優(yōu)選地,所述注冊(cè)請(qǐng)求中包含對(duì)于所述按鍵事件的處理動(dòng)作,所述處理動(dòng)作具體包括分發(fā)以及屏蔽,所述通知模塊具體用于:
獲取所述注冊(cè)請(qǐng)求包含的對(duì)于所述按鍵事件的處理動(dòng)作;
在所述處理動(dòng)作為所述分發(fā)時(shí),將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列;
在所述處理動(dòng)作為所述屏蔽時(shí),丟棄所述按鍵事件。
優(yōu)選地,還包括:
刪除模塊,用于在接收到所述應(yīng)用對(duì)所述按鍵事件的解除監(jiān)控請(qǐng)求時(shí),將所述監(jiān)控列表中所述按鍵事件的監(jiān)控指示刪除。
通過應(yīng)用本申請(qǐng)的技術(shù)方案,在檢測(cè)到按鍵事件時(shí),首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。在判斷結(jié)果為是時(shí),將按鍵事件告知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于該按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。從而實(shí)現(xiàn)將應(yīng)用急需獲取的按鍵事件,及時(shí)地告知給應(yīng)用,進(jìn)而使得應(yīng)用可以盡早的對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
附圖說明
為了更清楚地說明本申請(qǐng)的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通的技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請(qǐng)實(shí)施例提出的一種按鍵事件的處理方法的流程示意圖;
圖2為本申請(qǐng)具體實(shí)施例提出的一種按鍵事件監(jiān)控服務(wù)的示意圖;
圖3為本申請(qǐng)實(shí)施例提出的一種智能終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
如背景技術(shù)所述,在智能終端現(xiàn)有的按鍵事件處理方法中,按鍵分發(fā)系統(tǒng)對(duì)所有的按鍵事件是一視同仁的。按鍵分發(fā)系統(tǒng)在收到用戶驅(qū)動(dòng)的按鍵事件后,首先會(huì)將其加入到自身的按鍵事件處理隊(duì)列中,然后按照隊(duì)列中各按鍵事件的先后次序,依次對(duì)各按鍵事件進(jìn)行處理。采用上述處理方法所需要的時(shí)間較長,導(dǎo)致在案件事件發(fā)生時(shí),上層的應(yīng)用不能夠在第一時(shí)間內(nèi)獲知該按鍵事件發(fā)生的消息。然而,對(duì)于智能終端中上層的應(yīng)用而言,可能會(huì)對(duì)某個(gè)或者某些按鍵事件的實(shí)時(shí)性要求比較高,或者優(yōu)先級(jí)比較高,因此需要及時(shí)地先獲取該事件發(fā)生的消息。
因此,本申請(qǐng)?zhí)岢隽艘环N按鍵事件的處理方法,在接收到按鍵事件時(shí),首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。在判斷結(jié)果為是時(shí),將按鍵事件告知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于該按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。從而實(shí)現(xiàn)將應(yīng)用急需獲取的按鍵事件,及時(shí)地告知給應(yīng)用,進(jìn)而使得應(yīng)用可以盡早的對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
如圖1所示為本申請(qǐng)公開的一種按鍵事件的處理方法的流程示意圖,本申請(qǐng)的方法應(yīng)用于智能設(shè)備中,由圖1可知,本申請(qǐng)的方法包括以下的步驟:
S101,在檢測(cè)到按鍵事件時(shí),判斷該按鍵事件是否為智能終端的應(yīng)用注冊(cè)的緊急按鍵事件。
在本申請(qǐng)中,按鍵事件是指對(duì)鍵盤(包括虛擬鍵盤)的操作,例如,敲擊鍵盤中的某個(gè)按鍵,按住鍵盤中的某個(gè)鍵不放,或者按組合快捷鍵等,都屬于按鍵事件。
在本申請(qǐng)的實(shí)施例中,在檢測(cè)到按鍵事件時(shí),與現(xiàn)有技術(shù)所不同的是,智能終端首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。如果該按鍵事件為應(yīng)用注冊(cè)的緊急按鍵事件,則說明應(yīng)用對(duì)該按鍵的實(shí)時(shí)性要求比較高,需要在第一時(shí)間內(nèi)或者發(fā)生該按鍵事件的信息。如果該按鍵事件為應(yīng)用急需獲知發(fā)生的緊急按鍵事件,則說明該按鍵事件只是一般的按鍵事件,而非應(yīng)用急需獲知發(fā)生的緊急按鍵事件。
在本申請(qǐng)的優(yōu)選實(shí)施例中,在判斷按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件之前,本申請(qǐng)的方法還包括以下的步驟:
(1)接收應(yīng)用發(fā)送的對(duì)于按鍵事件的注冊(cè)請(qǐng)求。
在本申請(qǐng)中,應(yīng)用可以根據(jù)自身的需求,向智能終端發(fā)送對(duì)于按鍵事件的注冊(cè)請(qǐng)求,以將其所關(guān)注的按鍵事件(即上述應(yīng)用需要在第一時(shí)間內(nèi)獲取的按鍵事件)注冊(cè)為緊急按鍵事件。
(2)在監(jiān)控列表中加入該按鍵事件的監(jiān)控指示。
在本申請(qǐng)中,智能終端內(nèi)設(shè)置有用于對(duì)緊急按鍵事件進(jìn)行監(jiān)控的監(jiān)控列表。監(jiān)控列表由緊急按鍵事件的監(jiān)控指示組成。監(jiān)控指示中,包含緊急按鍵事件的標(biāo)識(shí)信息,用于判斷當(dāng)前發(fā)生的按鍵事件是否為緊急按鍵事件。
因此,在接收應(yīng)用發(fā)送的對(duì)于按鍵事件的注冊(cè)請(qǐng)求時(shí),則在監(jiān)控列表中加入該按鍵事件的監(jiān)控指示。此后智能終端根據(jù)該監(jiān)控指示來對(duì)當(dāng)前的按鍵事件進(jìn)行監(jiān)控,當(dāng)確定發(fā)生了用戶注冊(cè)的緊急按鍵事件時(shí),將在第一時(shí)間內(nèi)告知給應(yīng)用。
相應(yīng)的,在本申請(qǐng)的優(yōu)選實(shí)施例中,還包括以下的優(yōu)選步驟:
在接收到應(yīng)用對(duì)按鍵事件的解除監(jiān)控請(qǐng)求時(shí),將監(jiān)控列表中該按鍵事件的監(jiān)控指示刪除。此后,再獲取到該按鍵事件時(shí),只需將其視為一般的按鍵事件即可,而不需要再向應(yīng)用通知該按鍵事件的發(fā)生。
基于以上對(duì)監(jiān)控列表的說明,在本申請(qǐng)的優(yōu)選實(shí)施例中,上述判斷按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件的步驟可以由以下的優(yōu)選方式來實(shí)現(xiàn),具體的包括以下的步驟:
(1)判斷監(jiān)控列表中是否存在按鍵事件的監(jiān)控指示。
首先,遍歷監(jiān)控列表中的各監(jiān)控指示,并判斷監(jiān)控列表中是否存在該按鍵事件的監(jiān)控指示。
(2)如果判斷結(jié)果為存在,則確認(rèn)按鍵事件為應(yīng)用注冊(cè)的緊急按鍵事件。
如果監(jiān)控列表中存在該按鍵事件的監(jiān)控指示,則說明該按鍵事件已經(jīng)被應(yīng)用注冊(cè)為緊急按鍵事件。此時(shí),需要及時(shí)地向應(yīng)用告知該按鍵事件發(fā)生的消息,以便應(yīng)用能夠及時(shí)地對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
(3)如果判斷結(jié)果為不存在,則確認(rèn)按鍵事件不是應(yīng)用注冊(cè)的緊急按鍵事件。
如果監(jiān)控列表中存在該按鍵事件的監(jiān)控指示,則說明該按鍵事件沒有被應(yīng)用注冊(cè)為緊急按鍵事件。
需要說明的是,上述公開的判斷按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件的方法只是本申請(qǐng)?zhí)岢龅囊环N優(yōu)選的實(shí)施方式,基于本申請(qǐng)的核心思想,本領(lǐng)域技術(shù)人員還可以采取其他判斷按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件的方法,這并不會(huì)影響本申請(qǐng)的保護(hù)范圍。
S102,如果判斷結(jié)果為該按鍵事件是應(yīng)用注冊(cè)的緊急按鍵事件,則將該按鍵事件發(fā)生的消息通知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。
在本申請(qǐng)的實(shí)施例中,如果判斷結(jié)果為按鍵事件為應(yīng)用注冊(cè)的緊急按鍵事件,則在第一時(shí)間內(nèi)將該按鍵事件告知給應(yīng)用,并且根據(jù)應(yīng)用對(duì)于按鍵事件的注冊(cè)請(qǐng)求對(duì)按鍵事件進(jìn)行處理。
為了滿足應(yīng)用的需求,在本申請(qǐng)中,應(yīng)用可以在其對(duì)于按鍵事件的注冊(cè)請(qǐng)求中添加對(duì)于該按鍵事件的處理動(dòng)作。在本申請(qǐng)的實(shí)施例中,在判斷按鍵事件為緊急按鍵事件時(shí),智能終端正是根據(jù)該按鍵事件對(duì)應(yīng)的注冊(cè)請(qǐng)求中的處理動(dòng)作來對(duì)該按鍵事件進(jìn)行處理。
為了說明本申請(qǐng)技術(shù)方案的優(yōu)點(diǎn),下面結(jié)合具體的實(shí)例說明如下:
例如,當(dāng)應(yīng)用在進(jìn)行A操作時(shí),會(huì)占用大量的系統(tǒng)資源,比如說CPU占用會(huì)高達(dá)70%。此時(shí),如果用戶進(jìn)行其他操作(按鍵事件),尤其是需要占用較多系統(tǒng)資源的操作,系統(tǒng)對(duì)其響應(yīng)就可能因?yàn)橘Y源不足而非常緩慢,甚至?xí)?dǎo)致ANR(應(yīng)用不響應(yīng)),這將會(huì)嚴(yán)重的影響用戶體驗(yàn)。
此時(shí),通過本申請(qǐng)的方案,應(yīng)用可以將對(duì)應(yīng)用戶執(zhí)行占用較多系統(tǒng)資源的操作對(duì)應(yīng)的按鍵事件注冊(cè)為緊急按鍵事件。之后,在檢測(cè)到上述應(yīng)用注冊(cè)的按鍵事件發(fā)生時(shí),智能終端可以在用戶的操作(按鍵事件)剛開始就能通知應(yīng)用。因此應(yīng)用得以在第一時(shí)間內(nèi)或者該按鍵事件的發(fā)生,此后應(yīng)用能在第一時(shí)間內(nèi)及時(shí)地停止A操作,主動(dòng)釋放更多系統(tǒng)資源來響應(yīng)用戶的新的操作,而不是等新的操作被觸發(fā),發(fā)生資源競(jìng)爭(zhēng)后依靠系統(tǒng)來協(xié)調(diào)資源,從而使得用戶的操作被延遲或者阻塞的可能性就會(huì)大大降低。
雖然各個(gè)應(yīng)用所敏感的事件不盡相同,但是只要通過本申請(qǐng)的技術(shù)方案,應(yīng)用在需要的時(shí)候就可以將其關(guān)心的按鍵事件進(jìn)行注冊(cè),之后智能終端在底層一旦獲取到該按鍵事件,就會(huì)第一時(shí)間通知到應(yīng)用,以方便應(yīng)用可以盡早的采取恰當(dāng)?shù)拇胧?/p>
在本申請(qǐng)的優(yōu)選實(shí)施例中,處理動(dòng)作具體包括分發(fā)以及屏蔽。當(dāng)然,在具體的應(yīng)用場(chǎng)景中,處理動(dòng)作還可以包括其他的動(dòng)作類型,并且可由應(yīng)用自行設(shè)定,處理動(dòng)作的具體形式不影響本申請(qǐng)的保護(hù)范圍。在處理動(dòng)作具體包括分發(fā)以及屏蔽時(shí),上述根據(jù)應(yīng)用對(duì)于按鍵事件的注冊(cè)請(qǐng)求對(duì)按鍵事件進(jìn)行處理,可以由以下的優(yōu)選方案來實(shí)現(xiàn),具體的,包括以下的步驟:
(1)獲取按鍵事件對(duì)應(yīng)的注冊(cè)請(qǐng)求包含的對(duì)于按鍵事件的處理動(dòng)作。
首先,解析按鍵事件對(duì)應(yīng)的注冊(cè)請(qǐng)求,并根據(jù)解析的結(jié)果獲取注冊(cè)請(qǐng)求中包含的對(duì)于該按鍵事件的處理動(dòng)作。然后,再根據(jù)獲取到的處理動(dòng)作相應(yīng)的對(duì)按鍵事件進(jìn)行處理。
(2)如果處理動(dòng)作為分發(fā),則將按鍵事件發(fā)送給智能終端的按鍵分發(fā)隊(duì)列。
如果獲取到的處理動(dòng)作為分發(fā),則將該按鍵事件發(fā)送給智能終端的按鍵分發(fā)隊(duì)列。應(yīng)用后續(xù)將會(huì)正常接收到該按鍵事件。
(3)如果處理動(dòng)作為屏蔽,則丟棄該按鍵事件。
如果獲取到的處理動(dòng)作為分發(fā),則將該按鍵事件直接拋棄,不讓其進(jìn)入按鍵事件處理隊(duì)列。應(yīng)用后續(xù)將不會(huì)再接收到該按鍵事件。
需要說明的是,上述公開的根據(jù)應(yīng)用對(duì)于按鍵事件的注冊(cè)請(qǐng)求對(duì)按鍵事件進(jìn)行處理的方法,只是本申請(qǐng)公開的一種優(yōu)選的實(shí)施方式,基于本申請(qǐng)的核心思想,本領(lǐng)域技術(shù)人員還可以采取其他根據(jù)應(yīng)用對(duì)于按鍵事件的注冊(cè)請(qǐng)求對(duì)按鍵事件進(jìn)行處理的方法,這并不會(huì)影響本申請(qǐng)的保護(hù)范圍。
S103,如果判斷結(jié)果為該按鍵事件不是應(yīng)用注冊(cè)的緊急按鍵事件,則將該按鍵事件發(fā)送給智能終端的按鍵分發(fā)隊(duì)列。
在本申請(qǐng)的實(shí)施例中,則不需要在第一時(shí)間內(nèi)將該按鍵事件告知給應(yīng)用,而只需要將該按鍵事件發(fā)送給智能終端的按鍵分發(fā)系統(tǒng),使其進(jìn)入按鍵分發(fā)系統(tǒng)的按鍵事件處理隊(duì)列,按照現(xiàn)有技術(shù)進(jìn)行正常的后續(xù)處理即可。
由以上實(shí)施例的描述可知,通過應(yīng)用本申請(qǐng)的技術(shù)方案,在檢測(cè)到按鍵事件時(shí),首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。在判斷結(jié)果為是時(shí),將按鍵事件告知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于該按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。從而實(shí)現(xiàn)將應(yīng)用急需獲取的按鍵事件,及時(shí)地告知給應(yīng)用,進(jìn)而使得應(yīng)用可以盡早的對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的實(shí)施流程,對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
如圖2所示,為本申請(qǐng)具體實(shí)施例提出的一種按鍵事件監(jiān)控服務(wù)的示意圖。
由圖可知,本申請(qǐng)?zhí)岢龅陌存I事件監(jiān)控服務(wù)的功能主要由按鍵事件注冊(cè)管理模塊以及輸入事件處理模塊來實(shí)現(xiàn)。其中各模塊的主要功能介紹如下:
(1)按鍵事件注冊(cè)管理模塊
該模塊主要負(fù)責(zé)接收應(yīng)用的按鍵事件注冊(cè)請(qǐng)求,并將應(yīng)用請(qǐng)求監(jiān)控的按鍵事件的監(jiān)控指示加入到監(jiān)控隊(duì)列中。同時(shí),在收到解除按鍵事件的請(qǐng)求后,該模塊會(huì)將該按鍵事件從監(jiān)控的隊(duì)列中移除。
需要說明的是,應(yīng)用的按鍵事件注冊(cè)請(qǐng)求的內(nèi)容包括有:事件代碼、動(dòng)作類型以及回傳內(nèi)容。其中:
事件代碼是指應(yīng)用請(qǐng)求監(jiān)控的按鍵事件(按鍵的鍵值);
動(dòng)作類型包括,通知并分發(fā),通知并屏蔽。該項(xiàng)內(nèi)容應(yīng)用可以根據(jù)自身的需求進(jìn)行更改。
回傳內(nèi)容:應(yīng)用自定義的Inter(意圖)。一般情況下,回傳內(nèi)容直接的原封回傳給應(yīng)用,以方便應(yīng)用根據(jù)實(shí)際需要進(jìn)行定制。
(2)輸入事件處理模塊
該模塊的核心服務(wù)繼承自智能終端中的按鍵分發(fā)系統(tǒng)(Input Manager Service),其能夠在按鍵分發(fā)系統(tǒng)之前獲取按鍵事件。如果收到的按鍵事件不在其監(jiān)控隊(duì)列內(nèi),就會(huì)直接傳遞給按鍵分發(fā)系統(tǒng),交由按鍵分發(fā)系統(tǒng)進(jìn)行正常的處理;如果該事件在監(jiān)控的范圍內(nèi),則會(huì)根據(jù)用戶的注冊(cè)請(qǐng)求中的動(dòng)作類型,對(duì)按鍵事件進(jìn)行對(duì)應(yīng)的處理。具體的處理過程如下:
在注冊(cè)請(qǐng)求中的動(dòng)作類型為通知并分發(fā)時(shí),則在第一時(shí)間將該按鍵事件發(fā)生的消息通知應(yīng)用,并將該按鍵事件發(fā)送給按鍵分發(fā)系統(tǒng),使其進(jìn)入按鍵分發(fā)系統(tǒng)的按鍵事件處理隊(duì)列。此時(shí),應(yīng)用后續(xù)會(huì)正常接收到該按鍵事件。
在注冊(cè)請(qǐng)求中的動(dòng)作類型為通知并分發(fā)時(shí),則在:第一時(shí)間將該按鍵事件發(fā)生的消息通知應(yīng)用,然后將該按鍵事件直接拋棄,不讓其進(jìn)入按鍵分發(fā)系統(tǒng)的按鍵事件處理隊(duì)列。此時(shí),應(yīng)用不會(huì)再接收到該按鍵事件。
通過本申請(qǐng)公開的按鍵事件監(jiān)控服務(wù),智能終端的系統(tǒng)平臺(tái)可以選擇性的將該服務(wù)提供給可以信任的應(yīng)用開發(fā)者。使其在無權(quán)修改系統(tǒng)底層的情況下,應(yīng)用可以將自己在某些場(chǎng)景下需要特別關(guān)注的按鍵事件進(jìn)行注冊(cè),從而可以直接在底層將某些按鍵事件屏蔽,或者在第一時(shí)間得知該事件的發(fā)生,主動(dòng)及時(shí)地進(jìn)行處理。
由以上具體實(shí)施例的描述可知,通過應(yīng)用本申請(qǐng)的技術(shù)方案,在檢測(cè)到按鍵事件時(shí),首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。在判斷結(jié)果為是時(shí),將按鍵事件告知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于該按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。從而實(shí)現(xiàn)將應(yīng)用急需獲取的按鍵事件,及時(shí)地告知給應(yīng)用,進(jìn)而使得應(yīng)用可以盡早的對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
為了達(dá)到以上的技術(shù)目的,如圖3所示為本申請(qǐng)?zhí)岢龅囊环N智能終端的結(jié)構(gòu)示意圖,包括:
判斷模塊301,用于在檢測(cè)到按鍵事件時(shí),判斷所述按鍵事件是否為所述智能終端的應(yīng)用注冊(cè)的緊急按鍵事件;
通知模塊302,用于在判斷結(jié)果為是時(shí),將所述按鍵事件發(fā)生的消息通知給所述應(yīng)用,并根據(jù)所述應(yīng)用對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求對(duì)所述按鍵事件進(jìn)行處理;
發(fā)送模塊303,用于在判斷結(jié)果為否時(shí),將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列。
優(yōu)選地,還包括:
接收模塊,用于接收所述應(yīng)用發(fā)送的對(duì)于所述按鍵事件的注冊(cè)請(qǐng)求;
添加模塊,用于在監(jiān)控列表中加入所述按鍵事件的監(jiān)控指示。
優(yōu)選地,所述判斷模塊具體用于:
判斷所述監(jiān)控列表中是否存在所述按鍵事件的監(jiān)控指示;
在判斷結(jié)果為存在時(shí),確認(rèn)所述按鍵事件為所述應(yīng)用注冊(cè)的緊急按鍵事件;
在判斷結(jié)果為不存在時(shí),則確認(rèn)所述按鍵事件不是所述應(yīng)用注冊(cè)的緊急按鍵事件。
優(yōu)選地,所述注冊(cè)請(qǐng)求中包含對(duì)于所述按鍵事件的處理動(dòng)作,所述處理動(dòng)作具體包括分發(fā)以及屏蔽,所述通知模塊具體用于:
獲取所述注冊(cè)請(qǐng)求包含的對(duì)于所述按鍵事件的處理動(dòng)作;
在所述處理動(dòng)作為所述分發(fā)時(shí),將所述按鍵事件發(fā)送給所述智能終端的按鍵分發(fā)隊(duì)列;
在所述處理動(dòng)作為所述屏蔽時(shí),丟棄所述按鍵事件。
優(yōu)選地,還包括:
刪除模塊,用于在接收到所述應(yīng)用對(duì)所述按鍵事件的解除監(jiān)控請(qǐng)求時(shí),將所述監(jiān)控列表中所述按鍵事件的監(jiān)控指示刪除。
由以上具體智能終端的描述可知通過應(yīng)用本申請(qǐng)的技術(shù)方案,在檢測(cè)到按鍵事件時(shí),首先判斷該按鍵事件是否為應(yīng)用注冊(cè)的緊急按鍵事件。在判斷結(jié)果為是時(shí),將按鍵事件告知給應(yīng)用,并根據(jù)應(yīng)用對(duì)于該按鍵事件的注冊(cè)請(qǐng)求對(duì)該按鍵事件進(jìn)行處理。從而實(shí)現(xiàn)將應(yīng)用急需獲取的按鍵事件,及時(shí)地告知給應(yīng)用,進(jìn)而使得應(yīng)用可以盡早的對(duì)該按鍵事件采取恰當(dāng)?shù)膽?yīng)對(duì)措施。
最后說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明權(quán)利要求所限定的范圍。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施場(chǎng)景所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn)行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施場(chǎng)景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。