本發(fā)明涉及電視技術(shù),尤其涉及一種基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法及電視。
背景技術(shù):
智能電視相比于傳統(tǒng)的電視,為用戶提供了更加豐富的功能,以滿足用戶觀看電視節(jié)目、使用智能電視所提供的各種應(yīng)用等要求。智能電視通過內(nèi)置的操作系統(tǒng)來支持上述各種功能,例如安卓操作系統(tǒng)。在用戶打開智能電視時,會同時啟動操作系統(tǒng)。
現(xiàn)有技術(shù)中,在啟動智能電視的過程中,操作系統(tǒng)的啟動時間最長。為降低操作系統(tǒng)的長時間啟動帶給用戶的不良體驗(yàn),在操作系統(tǒng)啟動過程中,會在智能電視屏幕上持續(xù)顯示一些圖片、視頻等內(nèi)容。在此過程中,用戶如果按下智能電視的遙控器的某個按鍵,例如,降低音量的按鍵,由于智能電視接收到的按鍵事件需要分發(fā)給處于運(yùn)行狀態(tài)的上層應(yīng)用程序進(jìn)行處理,因此,在智能電視系統(tǒng)初始化完成啟動應(yīng)用之前,智能電視并不會響應(yīng)這些按鍵操作,即不會根據(jù)用戶的指令執(zhí)行對應(yīng)的操作,用戶只能選擇觀看或者等待。
因此,現(xiàn)有的智能電視在啟動過程中,是不能響應(yīng)用戶通過遙控器所發(fā)出的指令,導(dǎo)致用戶的體驗(yàn)差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法及電視,用于解決現(xiàn)有技術(shù)中在電視的啟動過程中不能響應(yīng)遙控按鍵的問題。
本發(fā)明第一方面提供一種基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法,包括:
在安卓操作系統(tǒng)初始化時創(chuàng)建第一進(jìn)程;
執(zhí)行所述第一進(jìn)程,所述第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及,根據(jù)所述設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作。
進(jìn)一步地,所述讀取設(shè)備節(jié)點(diǎn)信息,包括:
掃描第一目錄下的設(shè)備節(jié)點(diǎn),將掃描到的設(shè)備節(jié)點(diǎn)保存到設(shè)備列表中;
讀取所述設(shè)備列表中的設(shè)備節(jié)點(diǎn)對應(yīng)的按鍵信息;
若所述按鍵信息滿足預(yù)設(shè)的遙控按鍵事件的條件,則讀取所述遙控按鍵事件的按鍵值,其中,所述遙控按鍵事件的條件包括:所述遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。
進(jìn)一步地,所述根據(jù)所述設(shè)備節(jié)點(diǎn)中包含的遙控按鍵信息執(zhí)行遙控按鍵響應(yīng)操作,包括:
判斷所述遙控按鍵事件的按鍵值是否為第一按鍵值,若是,則調(diào)用所述第一按鍵值對應(yīng)的接口執(zhí)行按鍵響應(yīng)操作。
進(jìn)一步地,所述第一按鍵值為音量調(diào)節(jié)按鍵對應(yīng)的按鍵值。
進(jìn)一步地,所述第一進(jìn)程為BootAnimation進(jìn)程。
進(jìn)一步地,所述調(diào)用所述第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理,包括:
調(diào)用所述第一按鍵值對應(yīng)的位于電視接口層的對接接口;
將所述對接接口的按鍵值傳遞給位于中間接口層的處理接口;
將所述處理接口接收到的按鍵值傳遞給位于硬件對接層的芯片控制接口,以使所述芯片控制接口控制芯片執(zhí)行按鍵處理。
本發(fā)明第二方面提供一種電視,包括:
創(chuàng)建模塊,用于在安卓操作系統(tǒng)初始化時創(chuàng)建第一進(jìn)程;
執(zhí)行模塊,用于執(zhí)行所述第一進(jìn)程,所述第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及,根據(jù)所述設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作。
進(jìn)一步地,所述執(zhí)行模塊包括:
掃描單元,用于掃描第一目錄下的設(shè)備節(jié)點(diǎn),將掃描到的設(shè)備節(jié)點(diǎn)保存到設(shè)備列表中;
第一讀取單元,用于讀取所述設(shè)備列表中的設(shè)備節(jié)點(diǎn)對應(yīng)的按鍵信息;
第二讀取單元,用于在所述按鍵信息滿足預(yù)設(shè)的遙控按鍵事件的條件時,讀取所述遙控按鍵事件的按鍵值,其中,所述遙控按鍵事件的條件包括:所述遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。
進(jìn)一步地,所述執(zhí)行模塊還包括:
調(diào)用單元,用于判斷所述遙控按鍵事件的按鍵值是否為第一按鍵值,若是,則調(diào)用所述第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理。
進(jìn)一步地,所述第一按鍵值為音量調(diào)節(jié)按鍵對應(yīng)的按鍵值。
進(jìn)一步地,所述第一進(jìn)程為BootAnimation進(jìn)程。
進(jìn)一步地,第三判斷單元具體用于:
調(diào)用所述第一按鍵值對應(yīng)的位于電視接口層的對接接口;將所述對接接口的按鍵值傳遞給位于中間接口層的處理接口;將所述處理接口接收到的按鍵值傳遞給位于硬件對接層的芯片控制接口,以使所述芯片控制接口控制芯片執(zhí)行按鍵處理。
本發(fā)明所提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法及電視,在安卓操作系統(tǒng)初始化過程中創(chuàng)建并執(zhí)行第一進(jìn)程,該第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作,由于本方案是通過第一進(jìn)程主動在安卓操作系統(tǒng)初始化過程中讀取設(shè)備節(jié)點(diǎn)中的遙控按鍵事件,進(jìn)而實(shí)現(xiàn)按鍵響應(yīng)的操作,而不必等到操作系統(tǒng)完成啟動后,電視才將接收到的按鍵分發(fā)給處于運(yùn)行狀態(tài)的上層應(yīng)用程序去處理,由于在操作系統(tǒng)啟動過程中已經(jīng)可以處理按鍵信息,從而實(shí)現(xiàn)了在電視啟動過程中響應(yīng)遙控按鍵,尤其針對開機(jī)動畫或者視頻,使用戶可以與電視進(jìn)行按鍵交互,極大地提升了用戶感受。
附圖說明
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為安裝了安卓操作系統(tǒng)的電視的啟動示意圖;
圖2為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例一的流程示意圖;
圖3為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例二的流程示意圖;
圖4為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例三的流程示意圖;
圖5為本發(fā)明所提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法的一個完整處理流程圖;
圖6為本發(fā)明提供的電視的實(shí)施例一的模塊結(jié)構(gòu)圖;
圖7為本發(fā)明提供的電視的實(shí)施例二的模塊結(jié)構(gòu)圖;
圖8為本發(fā)明提供的電視的實(shí)施例二的模塊結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為安裝了安卓操作系統(tǒng)的電視的啟動示意圖,如圖1所示,當(dāng)電視開機(jī)后,首先運(yùn)行BootLoader,即電視開機(jī)后的引導(dǎo)程序,隨后,電視啟動,即TV啟動,TV啟動時主要處理電視的各種輸入和輸出信號,在TV啟動的同時,操作系統(tǒng)開始啟動,在操作系統(tǒng)啟動完成后,上層應(yīng)用才開始啟動,從而完成電視的啟動。現(xiàn)有技術(shù)中,在電視啟動過程中,如果用戶按下遙控器的按鍵,電視端并不會對用戶的指令進(jìn)行響應(yīng),只有在電視的上層應(yīng)用啟動完成后,電視才能對用戶的指令進(jìn)行響應(yīng)。
具體地,現(xiàn)有技術(shù)中,在上層應(yīng)用啟動之后,當(dāng)用戶按下遙控器的按鍵之后,電視端會接收到遙控信號,并由WindowManagerServer解析出遙控信號對應(yīng)的按鍵信息,并將按鍵信息分發(fā)到對應(yīng)的應(yīng)用,例如,當(dāng)前正在運(yùn)行的應(yīng)用。再由按鍵所分發(fā)到的應(yīng)用在OnKeyDown或OnKeyUp事件中對按鍵進(jìn)行處理響應(yīng)。即,現(xiàn)有技術(shù)中,只能等到電視的應(yīng)用啟動之后,才由應(yīng)用對遙控按鍵進(jìn)行響應(yīng)處理,而在電視啟動過程中,應(yīng)用還未啟動,因此,無法響應(yīng)遙控按鍵。
圖2為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例一的流程示意圖,如圖2所示,該方法包括:
S101、在安卓操作系統(tǒng)初始化時創(chuàng)建第一進(jìn)程。
需要說明的是,對于電視啟動完成后的遙控按鍵響應(yīng),可以沿用現(xiàn)有技術(shù)中的按鍵響應(yīng)方法,本實(shí)施例的方法應(yīng)用于電視啟動過程中的遙控按鍵響應(yīng)。
具體地,在電視啟動過程中,當(dāng)用戶按下遙控器的按鍵之后,遙控器可以使用紅外或藍(lán)牙等方式發(fā)射出遙控信號,電視端的遙控接收器會接收到該遙控信號。并由驅(qū)動中斷處理,將遙控信號對應(yīng)的模擬信號轉(zhuǎn)化為數(shù)字信號,并將數(shù)字信號保存到特定的目錄下。在安卓操作系統(tǒng)中,驅(qū)動一般會將轉(zhuǎn)化成的數(shù)字信號保存到/dev/input下,該目錄用于保存所有外部設(shè)備所輸入的信號,例如,遙控、鍵盤、鼠標(biāo)等對應(yīng)的信號,該目錄下的每個子目錄對應(yīng)一個外部設(shè)備的一個信號輸入,每個子目錄可以看成一個設(shè)備節(jié)點(diǎn)。需要說明的是,一個外部設(shè)備同時可能存在多個信號輸入,因此,一個設(shè)備可能對應(yīng)/dev/input下的多個設(shè)備節(jié)點(diǎn)。
舉例來說,用戶在遙控器上按下音量調(diào)節(jié)鍵之后,驅(qū)動會將音量調(diào)節(jié)按鍵對應(yīng)的信號轉(zhuǎn)化為數(shù)字信號,并將該數(shù)字信號保存到/dev/input下的event1這個設(shè)備節(jié)點(diǎn)上,則event1這個設(shè)備節(jié)點(diǎn)上所保存的信號的含義為“按下音量調(diào)節(jié)鍵”。
上述處理過程可以在安卓操作系統(tǒng)初始化時進(jìn)行,即在安卓操作系統(tǒng)啟動過程中,驅(qū)動會獲取并保存外部設(shè)備的輸入信號。
同時,在安卓操作系統(tǒng)初始化時,會創(chuàng)建第一進(jìn)程。例如,播放開機(jī)動畫的過程中的任意時刻創(chuàng)建一個第一進(jìn)程。
S102、執(zhí)行上述第一進(jìn)程,上述第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及,根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作。
如前所述,現(xiàn)有技術(shù)中,要等到電視的應(yīng)用啟動完成后,由應(yīng)用來響應(yīng)按鍵,而實(shí)際上,在電視啟動過程中,在應(yīng)用啟動之前,驅(qū)動已經(jīng)啟動完成,即,即使操作系統(tǒng)正在啟動,驅(qū)動也可以正常的獲取遙控信號,并將信號保存到設(shè)備節(jié)點(diǎn)上。同時,第一進(jìn)程已經(jīng)被創(chuàng)建。在此基礎(chǔ)上,第一進(jìn)程會執(zhí)行。具體地,第一進(jìn)程會周期性地讀取設(shè)備節(jié)點(diǎn)信息,并根據(jù)所讀取的設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件來執(zhí)行遙控按鍵響應(yīng)操作。其中,該第一進(jìn)程可以是操作系統(tǒng)啟動過程中執(zhí)行的一個原有進(jìn)程,在該原有進(jìn)程上增加按鍵處理對應(yīng)的操作即可。或者,該第一進(jìn)程也可以是一個新增的專用進(jìn)程,專用于進(jìn)行按鍵處理。無論第一進(jìn)程是使用原有進(jìn)程還是新增進(jìn)程,其都會在安卓操作系統(tǒng)初始化過程中執(zhí)行,以獲取遙控信號對應(yīng)的按鍵信息,進(jìn)而,根據(jù)按鍵信息執(zhí)行對應(yīng)的按鍵處理。從而實(shí)現(xiàn)在電視啟動過程中響應(yīng)遙控按鍵。
本實(shí)施例中,在安卓操作系統(tǒng)初始化過程中創(chuàng)建并執(zhí)行第一進(jìn)程,該第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作,由于本實(shí)施例是通過第一進(jìn)程主動在安卓操作系統(tǒng)初始化過程中讀取設(shè)備節(jié)點(diǎn)中的遙控按鍵事件,進(jìn)而實(shí)現(xiàn)按鍵響應(yīng)的操作,而不必等到操作系統(tǒng)完成啟動后,電視才將接收到的按鍵分發(fā)給處于運(yùn)行狀態(tài)的上層應(yīng)用程序去處理,由于在操作系統(tǒng)啟動過程中已經(jīng)可以處理按鍵信息,從而實(shí)現(xiàn)了在電視啟動過程中響應(yīng)遙控按鍵,尤其針對開機(jī)動畫或者視頻,使用戶可以與電視進(jìn)行按鍵交互,極大地提升了用戶感受。
在上述實(shí)施例的基礎(chǔ)上,本實(shí)施例涉及讀取設(shè)備節(jié)點(diǎn)信息的具體過程,即,圖3為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例二的流程示意圖,如圖3所示,上述步驟S102中讀取設(shè)備節(jié)點(diǎn)信息的具體方法為:
S201、掃描第一目錄下的設(shè)備節(jié)點(diǎn),將掃描到的設(shè)備節(jié)點(diǎn)保存到設(shè)備列表中。
其中,第一目錄即為前述的保存轉(zhuǎn)化后的數(shù)字信號的目錄,例如安卓操作系統(tǒng)中的/dev/input。當(dāng)?shù)谝贿M(jìn)程執(zhí)行時,第一進(jìn)程會不斷地掃描第一目錄下的設(shè)備節(jié)點(diǎn),并將掃描到的設(shè)備節(jié)點(diǎn)信息保存到設(shè)備列表中。即,每進(jìn)行一次第一目錄的掃描,就會更新一次設(shè)備列表。通過將掃描結(jié)果保存到特定的設(shè)備列表中,能夠使得后續(xù)的判斷和處理更加方便。
S202、讀取設(shè)備列表中的設(shè)備節(jié)點(diǎn)對應(yīng)的按鍵信息。
在掃描設(shè)備節(jié)點(diǎn)時,可能出現(xiàn)不存在設(shè)備節(jié)點(diǎn)的情況。例如,如果電視沒有外部設(shè)備,或者,所有的外部設(shè)備都沒有輸入信號,則第一目錄下就不會存在設(shè)備節(jié)點(diǎn),相應(yīng)地,設(shè)備列表中就不會存在設(shè)備節(jié)點(diǎn)信息。
因此,本步驟中,在掃描完設(shè)備節(jié)點(diǎn)之后,首先判斷設(shè)備列表中是否存在設(shè)備節(jié)點(diǎn),如果不存在,則認(rèn)為此時用戶并沒有執(zhí)行遙控按鍵操作,因此不需要執(zhí)行后續(xù)處理,而會繼續(xù)進(jìn)行下一輪的掃描。如果設(shè)備列表中存在設(shè)備節(jié)點(diǎn),則會讀取設(shè)備節(jié)點(diǎn)中的按鍵信息。
具體地,如前所述,遙控器通過紅外或藍(lán)牙等發(fā)射出遙控信號,該遙控信號為模擬信號,驅(qū)動會將該模擬信號轉(zhuǎn)化為數(shù)字信號并保存在設(shè)備節(jié)點(diǎn)中。而設(shè)備節(jié)點(diǎn)中所保存的數(shù)字信號實(shí)際上對應(yīng)一個事件,該事件包括三個屬性,分別為:事件類型、彈起或按下,以及事件的值。其中,事件類型包括遙控按鍵事件、鍵盤事件、鼠標(biāo)事件等。遙控按鍵事件對應(yīng)的信息即為按鍵信息。對于遙控按鍵事件,還需要區(qū)分是彈起還是按下。對于遙控按鍵事件,事件的值用于標(biāo)識具體是哪個按鍵,例如,“音量調(diào)節(jié)鍵”、“5號數(shù)字鍵”等。
S203、若上述按鍵信息滿足預(yù)設(shè)的遙控按鍵事件的條件,則讀取遙控按鍵事件的按鍵值,其中,遙控按鍵事件的條件包括:遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。
當(dāng)讀取到按鍵信息后,判斷按鍵信息是否符合預(yù)設(shè)條件,即,遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。例如,判斷該遙控按鍵事件是否是“音量調(diào)節(jié)鍵”的向下按鍵,如果是,則認(rèn)為滿足遙控按鍵事件的條件。當(dāng)滿足遙控按鍵的條件之后,則讀取該事件的值,即遙控按鍵事件的按鍵值。進(jìn)而根據(jù)該按鍵值執(zhí)行后續(xù)的按鍵處理。
需要說明的是,如果設(shè)備列表中存在多個設(shè)備節(jié)點(diǎn),則需要對所有設(shè)備節(jié)點(diǎn)逐個執(zhí)行讀取按鍵值以及按鍵處理操作。
本實(shí)施例中,通過將設(shè)備節(jié)點(diǎn)信息保存到特定的設(shè)備列表中,從而使得后續(xù)的判斷和處理更加方便。而通過判斷事件的屬性信息來獲取按鍵值,能夠保證獲取到正確并且有效的遙控按鍵值。
在上述實(shí)施例的基礎(chǔ)上,本實(shí)施例涉及遙控按鍵響應(yīng)操作的具體過程。即,上述步驟S102中,根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵信息執(zhí)行遙控按鍵響應(yīng)操作的具體方法為:
判斷上述遙控按鍵事件的按鍵值是否為第一按鍵值,若是,則調(diào)用該第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理。
具體地,在安卓操作系統(tǒng)初始化過程中,用戶可能用到的按鍵相比于電視啟動之后要少,因此,本實(shí)施例中,將遙控按鍵做一限定,只有用戶按下了電視所允許的按鍵,第一進(jìn)程才會繼續(xù)對該按鍵調(diào)用對應(yīng)的接口進(jìn)行后續(xù)處理。而如果用戶按下的是電視不允許的按鍵,則第一進(jìn)程不會繼續(xù)執(zhí)行后續(xù)的處理。以減少由于用戶的誤操作等原因而產(chǎn)生的無用操作,避免系統(tǒng)資源的浪費(fèi)。
在一種可選的實(shí)施方式中,第一按鍵值為音量調(diào)節(jié)鍵對應(yīng)的按鍵值。
在電視啟動過程中,通常會播放一些圖片、視頻等,如果是播放視頻,則可能存在聲音過大或過小的情況,在本實(shí)施例中將音量調(diào)節(jié)鍵設(shè)置為第一按鍵值,則在電視啟動過程中,當(dāng)用戶按下音量調(diào)節(jié)鍵后,會對該按鍵進(jìn)行按鍵響應(yīng),以完成對用戶的按鍵操作的響應(yīng)。
在另一種可選的實(shí)施方式中,第一按鍵值也可以根據(jù)用戶設(shè)置得到。
具體地,用戶可以通過電視提供的設(shè)置功能,來設(shè)置電視啟動過程中可以響應(yīng)哪些遙控按鍵,從而提升第一按鍵值的設(shè)置的靈活性。例如,用戶可以設(shè)置頻道按鍵、上下方向鍵、數(shù)字按鍵等。
在上述實(shí)施例的基礎(chǔ)上,本實(shí)施例涉及調(diào)用第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理的具體過程,即,圖4為本發(fā)明提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法實(shí)施例三的流程示意圖,如圖4所示,上述實(shí)施例中調(diào)用第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理的具體過程為:
S301、調(diào)用第一按鍵值對應(yīng)的位于電視接口層的對接接口。
S302、將對接接口的按鍵值傳遞給位于中間接口層的處理接口。
S303、將處理接口接收到的按鍵值傳遞給位于硬件對接層的芯片控制接口,以使芯片控制接口控制芯片執(zhí)行按鍵處理。
具體地,本實(shí)施例中提供了三個接口層,從上向下分別為:電視接口層、中間接口層以及硬件對接層,每層都提供多個接口。其中,電視接口層為最上層接口,供第一進(jìn)程調(diào)用。當(dāng)?shù)谝贿M(jìn)程確定第一按鍵值之后,首先對接接口,再將第一按鍵值傳遞給中間接口層的處理接口,處理接口會執(zhí)行按鍵值的處理,并將處理結(jié)果傳遞給硬件對接層的芯片控制接口,進(jìn)而芯片控制接口會觸發(fā)底層芯片執(zhí)行最終的按鍵響應(yīng)。
另一實(shí)施例中,針對前述的任意實(shí)施例,第一進(jìn)程優(yōu)選可以為BootAnimation進(jìn)程。
在電視啟動過程中,操作系統(tǒng)的啟動時間最長,為減少操作系統(tǒng)啟動時間過長而帶給用戶的不良體驗(yàn),在操作系統(tǒng)啟動過程中,會執(zhí)行BootAnimation進(jìn)程,BootAnimation進(jìn)程可以展示變化的圖片、進(jìn)度條或視頻。本發(fā)明中,在現(xiàn)有的BootAnimation進(jìn)程中增加對于按鍵響應(yīng)的處理過程,即可以實(shí)現(xiàn)電視啟動過程中的遙控按鍵響應(yīng)。在現(xiàn)有的BootAnimation中直接增加按鍵響應(yīng)處理過程,無需再增加和啟動新的進(jìn)程,因此,可以提升系統(tǒng)的執(zhí)行效率,同時節(jié)省系統(tǒng)的資源開銷。
圖5為本發(fā)明所提供的基于安卓操作系統(tǒng)的電視遙控按鍵響應(yīng)方法的一個完整處理流程圖,如圖5所示,該完整處理流程為:
S401、接收用戶在電視啟動過程中通過遙控器發(fā)送的遙控信號。
S402、將遙控信號轉(zhuǎn)換為數(shù)字信號并保存到第一目錄的設(shè)備節(jié)點(diǎn)中。
S403、掃描第一目錄下的設(shè)備節(jié)點(diǎn),將掃描到的設(shè)備節(jié)點(diǎn)保存到設(shè)備列表中。
S404、判斷上述設(shè)備列表中是否存在設(shè)備節(jié)點(diǎn),若是,則讀取設(shè)備節(jié)點(diǎn)中的事件信息。
否則繼續(xù)執(zhí)行S403。
S405、判斷上述事件信息是否滿足遙控按鍵事件的條件,若是,則讀取該遙控按鍵事件的按鍵值,其中,該遙控按鍵事件的條件包括:事件的類型為遙控按鍵事件,并且該遙控按鍵事件為向下按鍵。
否則,判斷所有設(shè)備節(jié)點(diǎn)是否都已處理完成,若是,則繼續(xù)執(zhí)行S403,否則針對下一個設(shè)備節(jié)點(diǎn)繼續(xù)執(zhí)行S404的操作。
S406、判斷上述遙控按鍵事件的按鍵值是否為第一按鍵值,若是,則調(diào)用該第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理。
否則,判斷所有設(shè)備節(jié)點(diǎn)是否都已處理完成,若是,則繼續(xù)執(zhí)行S403,否則針對下一個設(shè)備節(jié)點(diǎn)繼續(xù)執(zhí)行S405-S406的操作。
圖6為本發(fā)明提供的電視的實(shí)施例一的模塊結(jié)構(gòu)圖,如圖6所示,該電視包括:
創(chuàng)建模塊501,用于在安卓操作系統(tǒng)初始化時創(chuàng)建第一進(jìn)程。
具體地,在電視啟動過程中,當(dāng)用戶按下遙控器的按鍵之后,遙控器可以使用紅外或藍(lán)牙等方式發(fā)射出遙控信號,電視端的遙控接收器會接收到該遙控信號。并由接收模塊501中斷處理,將遙控信號對應(yīng)的模擬信號轉(zhuǎn)化為數(shù)字信號,并將數(shù)字信號保存到特定的目錄下。在安卓操作系統(tǒng)中,驅(qū)動一般會將轉(zhuǎn)化成的數(shù)字信號保存到/dev/input下,該目錄用于保存所有外部設(shè)備所輸入的信號,例如,遙控、鍵盤、鼠標(biāo)等對應(yīng)的信號,該目錄下的每個子目錄對應(yīng)一個外部設(shè)備的一個信號輸入,每個子目錄可以看成一個設(shè)備節(jié)點(diǎn)。需要說明的是,一個外部設(shè)備同時可能存在多個信號輸入,因此,一個設(shè)備可能對應(yīng)/dev/input下的多個設(shè)備節(jié)點(diǎn)。
舉例來說,用戶在遙控器上按下音量調(diào)節(jié)鍵之后,驅(qū)動會將音量調(diào)節(jié)按鍵對應(yīng)的信號轉(zhuǎn)化為數(shù)字信號,并將該數(shù)字信號保存到/dev/input下的event1這個設(shè)備節(jié)點(diǎn)上,則event1這個設(shè)備節(jié)點(diǎn)上所保存的信號的含義為“按下音量調(diào)節(jié)鍵”。
上述處理過程可以在安卓操作系統(tǒng)初始化時進(jìn)行,即在安卓操作系統(tǒng)啟動過程中,驅(qū)動會獲取并保存外部設(shè)備的輸入信號。
同時,在安卓操作系統(tǒng)初始化時,會創(chuàng)建第一進(jìn)程。例如,播放開機(jī)動畫的過程中的任意時刻創(chuàng)建一個第一進(jìn)程。
執(zhí)行模塊502,用于執(zhí)行上述第一進(jìn)程,上述第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及,根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作。
如前所述,現(xiàn)有技術(shù)中,要等到電視的應(yīng)用啟動完成后,由應(yīng)用來響應(yīng)按鍵,而實(shí)際上,在電視啟動過程中,在應(yīng)用啟動之前,驅(qū)動已經(jīng)啟動完成,即,即使操作系統(tǒng)正在啟動,驅(qū)動也可以正常的獲取遙控信號,并將信號保存到設(shè)備節(jié)點(diǎn)上。同時,第一進(jìn)程已經(jīng)被創(chuàng)建。在此基礎(chǔ)上,第一進(jìn)程會執(zhí)行。具體地,第一進(jìn)程會周期性地讀取設(shè)備節(jié)點(diǎn)信息,并根據(jù)所讀取的設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件來執(zhí)行遙控按鍵響應(yīng)操作。其中,該第一進(jìn)程可以是操作系統(tǒng)啟動過程中執(zhí)行的一個原有進(jìn)程,在該原有進(jìn)程上增加按鍵處理對應(yīng)的操作即可?;蛘?,該第一進(jìn)程也可以是一個新增的專用進(jìn)程,專用于進(jìn)行按鍵處理。無論第一進(jìn)程是使用原有進(jìn)程還是新增進(jìn)程,其都會在安卓操作系統(tǒng)初始化過程中執(zhí)行,以獲取遙控信號對應(yīng)的按鍵信息,進(jìn)而,根據(jù)按鍵信息執(zhí)行對應(yīng)的按鍵處理。從而實(shí)現(xiàn)在電視啟動過程中響應(yīng)遙控按鍵。
本實(shí)施例中,在安卓操作系統(tǒng)初始化過程中創(chuàng)建并執(zhí)行第一進(jìn)程,該第一進(jìn)程用于周期性讀取設(shè)備節(jié)點(diǎn)信息,以及根據(jù)設(shè)備節(jié)點(diǎn)中包含的遙控按鍵事件執(zhí)行遙控按鍵響應(yīng)操作,從而實(shí)現(xiàn)了在電視啟動過程中響應(yīng)遙控按鍵,極大地提升了用戶感受。
圖7為本發(fā)明提供的電視的實(shí)施例二的模塊結(jié)構(gòu)圖,如圖7所示,執(zhí)行模塊502包括:
掃描單元5021,用于掃描第一目錄下的設(shè)備節(jié)點(diǎn),將掃描到的設(shè)備節(jié)點(diǎn)保存到設(shè)備列表中。
其中,第一目錄即為前述的保存轉(zhuǎn)化后的數(shù)字信號的目錄,例如安卓操作系統(tǒng)中的/dev/input。當(dāng)?shù)谝贿M(jìn)程執(zhí)行時,通過掃描單元5021不斷地掃描第一目錄下的設(shè)備節(jié)點(diǎn),并將掃描到的設(shè)備節(jié)點(diǎn)信息保存到設(shè)備列表中。即,每進(jìn)行一次第一目錄的掃描,就會更新一次設(shè)備列表。通過將掃描結(jié)果保存到特定的設(shè)備列表中,能夠使得后續(xù)的判斷和處理更加方便。
第一讀取單元5022,用于讀取設(shè)備列表中的設(shè)備節(jié)點(diǎn)對應(yīng)的按鍵信息。
在掃描設(shè)備節(jié)點(diǎn)時,可能出現(xiàn)不存在設(shè)備節(jié)點(diǎn)的情況。例如,如果電視沒有外部設(shè)備,或者,所有的外部設(shè)備都沒有輸入信號,則第一目錄下就不會存在設(shè)備節(jié)點(diǎn),相應(yīng)地,設(shè)備列表中就不會存在設(shè)備節(jié)點(diǎn)信息。
因此,本步驟中,在掃描完設(shè)備節(jié)點(diǎn)之后,首先判斷設(shè)備列表中是否存在設(shè)備節(jié)點(diǎn),如果不存在,則認(rèn)為此時用戶并沒有執(zhí)行遙控按鍵操作,因此不需要執(zhí)行后續(xù)處理,而會繼續(xù)進(jìn)行下一輪的掃描。如果設(shè)備列表中存在設(shè)備節(jié)點(diǎn),則會讀取設(shè)備節(jié)點(diǎn)中的按鍵信息。
具體地,如前所述,遙控器通過紅外或藍(lán)牙等發(fā)射出遙控信號,該遙控信號為模擬信號,驅(qū)動會將該模擬信號轉(zhuǎn)化為數(shù)字信號并保存在設(shè)備節(jié)點(diǎn)中。而設(shè)備節(jié)點(diǎn)中所保存的數(shù)字信號實(shí)際上對應(yīng)一個事件,該事件包括三個屬性,分別為:事件類型、彈起或按下,以及事件的值。其中,事件類型包括遙控按鍵事件、鍵盤事件、鼠標(biāo)事件等。遙控按鍵事件對應(yīng)的信息即為按鍵信息。對于遙控按鍵事件,還需要區(qū)分是彈起還是按下。對于遙控按鍵事件,事件的值用于標(biāo)識具體是哪個按鍵,例如,“音量調(diào)節(jié)鍵”、“5號數(shù)字鍵”等。
第二讀取單元5023,用于在按鍵信息滿足預(yù)設(shè)的遙控按鍵事件的條件時,讀取遙控按鍵事件的按鍵值,其中,遙控按鍵事件的條件包括:遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。
當(dāng)讀取到按鍵信息后,判斷按鍵信息是否符合預(yù)設(shè)條件,即,遙控按鍵事件為預(yù)設(shè)按鍵的向下按鍵事件。例如,判斷該遙控按鍵事件是否是“音量調(diào)節(jié)鍵”的向下按鍵,如果是,則認(rèn)為滿足遙控按鍵事件的條件。當(dāng)滿足遙控按鍵的條件之后,則讀取該事件的值,即遙控按鍵事件的按鍵值。進(jìn)而根據(jù)該按鍵值執(zhí)行后續(xù)的按鍵處理。
需要說明的是,如果設(shè)備列表中存在多個設(shè)備節(jié)點(diǎn),則需要對所有設(shè)備節(jié)點(diǎn)逐個執(zhí)行讀取按鍵值以及按鍵處理操作。
本實(shí)施例中,通過將設(shè)備節(jié)點(diǎn)信息保存到特定的設(shè)備列表中,從而使得后續(xù)的判斷和處理更加方便。而通過判斷事件的屬性信息來獲取按鍵值,能夠保證獲取到正確并且有效的遙控按鍵值。
圖8為本發(fā)明提供的電視的實(shí)施例二的模塊結(jié)構(gòu)圖,如圖8所示,執(zhí)行模塊502還包括:
調(diào)用單元5024,用于判斷上述遙控按鍵事件的按鍵值是否為第一按鍵值,若是,則調(diào)用第一按鍵值對應(yīng)的接口執(zhí)行按鍵處理。
具體地,在安卓操作系統(tǒng)初始化過程中,用戶可能用到的按鍵相比于電視啟動之后要少,因此,本實(shí)施例中,將遙控按鍵做一限定,只有用戶按下了電視所允許的按鍵,第一進(jìn)程才會繼續(xù)對該按鍵調(diào)用對應(yīng)的接口進(jìn)行后續(xù)處理。而如果用戶按下的是電視不允許的按鍵,則第一進(jìn)程不會繼續(xù)執(zhí)行后續(xù)的處理。以減少由于用戶的誤操作等原因而產(chǎn)生的無用操作,避免系統(tǒng)資源的浪費(fèi)。
另一實(shí)施例中,上述第一按鍵值為音量調(diào)節(jié)按鍵對應(yīng)的按鍵值。
在電視啟動過程中,通常會播放一些圖片、視頻等,如果是播放視頻,則可能存在聲音過大或過小的情況,在本實(shí)施例中將音量調(diào)節(jié)鍵設(shè)置為第一按鍵值,則在電視啟動過程中,當(dāng)用戶按下音量調(diào)節(jié)鍵后,會對該按鍵進(jìn)行按鍵響應(yīng),以完成對用戶的按鍵操作的響應(yīng)。
在另一種可選的實(shí)施方式中,第一按鍵值也可以根據(jù)用戶設(shè)置得到。
具體地,用戶可以通過電視提供的設(shè)置功能,來設(shè)置電視啟動過程中可以響應(yīng)哪些遙控按鍵,從而提升第一按鍵值的設(shè)置的靈活性。例如,用戶可以設(shè)置頻道按鍵、上下方向鍵、數(shù)字按鍵等。
另一實(shí)施例中,上述第一進(jìn)程為BootAnimation進(jìn)程。
在電視啟動過程中,操作系統(tǒng)的啟動時間最長,為減少操作系統(tǒng)啟動時間過長而帶給用戶的不良體驗(yàn),在操作系統(tǒng)啟動過程中,會執(zhí)行BootAnimation進(jìn)程,BootAnimation進(jìn)程可以展示變化的圖片、進(jìn)度條或視頻。本發(fā)明中,在現(xiàn)有的BootAnimation進(jìn)程中增加對于按鍵響應(yīng)的處理過程,即可以實(shí)現(xiàn)電視啟動過程中的遙控按鍵響應(yīng)。在現(xiàn)有的BootAnimation中直接增加按鍵響應(yīng)處理過程,無需再增加和啟動新的進(jìn)程,因此,可以提升系統(tǒng)的執(zhí)行效率,同時節(jié)省系統(tǒng)的資源開銷。
另一實(shí)施例中,第三判斷單元5024具體用于:
調(diào)用所述第一按鍵值對應(yīng)的位于電視接口層的對接接口;將所述對接接口的按鍵值傳遞給位于中間接口層的處理接口;將所述處理接口接收到的按鍵值傳遞給位于硬件對接層的芯片控制接口,以使所述芯片控制接口控制芯片執(zhí)行按鍵處理。
本實(shí)施例中提供了三個接口層,從上向下分別為:電視接口層、中間接口層、以及硬件對接層,每層都提供多個接口。其中,電視接口層為最上層接口,供第一進(jìn)程調(diào)用。當(dāng)?shù)谝贿M(jìn)程確定第一按鍵值之后,會調(diào)用電視接口層中對應(yīng)的第一接口,第一接口根據(jù)第一按鍵值會繼續(xù)調(diào)用中間接口層的第二接口,第二接口會執(zhí)行按鍵值的處理,并根據(jù)處理結(jié)果調(diào)用硬件對接層的第三接口,進(jìn)而第三接口會觸發(fā)底層芯片執(zhí)行最終的按鍵響應(yīng)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。