一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和智能電視的制作方法
【專利摘要】本發(fā)明實(shí)施例提供了一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和智能電視,其中的方法具體包括:智能電視通過(guò)接收器接收遙控器發(fā)送的按鍵指令;所述智能電視中運(yùn)行的輸入指令讀取模塊檢測(cè)上述按鍵指令;其中,所述輸入指令讀取模塊采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn);當(dāng)檢測(cè)到所述按鍵指令時(shí),所述智能電視中運(yùn)行的統(tǒng)計(jì)模塊對(duì)所述按鍵指令對(duì)應(yīng)的按鍵次數(shù)進(jìn)行統(tǒng)計(jì),得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn);所述智能電視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果;其中,所述獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn);向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。本發(fā)明實(shí)施例能夠提高按鍵統(tǒng)計(jì)速度,提高處理的靈活性。
【專利說(shuō)明】一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和智能電視
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及按鍵檢測(cè)【技術(shù)領(lǐng)域】,特別是涉及一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和 一種智能電視。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,智能電視業(yè)務(wù)也得到迅速發(fā)展,所謂的智能電視如智能手 機(jī)一樣,具有全開(kāi)放式的平臺(tái),搭載有操作系統(tǒng)(如國(guó)內(nèi)自建操作系統(tǒng)、安卓系統(tǒng)、蘋果i〇S 系統(tǒng)和Windows系統(tǒng)等),可以由用戶自行安裝和卸載第三方服務(wù)商提供的程序(如辦公軟 件、游戲客戶端等),通過(guò)安裝程序?qū)﹄娨暤墓δ苓M(jìn)行擴(kuò)充,并可以連接網(wǎng)絡(luò)進(jìn)行上網(wǎng)沖浪 等。
[0003] 智能電視作為一種新興產(chǎn)品,對(duì)已投入市場(chǎng)的智能電視之上遙控器按鍵的使用情 況進(jìn)行統(tǒng)計(jì),可以作為下一代遙控器的設(shè)計(jì)基礎(chǔ),例如,可以利用分析結(jié)果進(jìn)行按鍵的優(yōu) 化,并對(duì)按鍵的位置做出更合理的位置排列。
[0004] 現(xiàn)有的一種按鍵統(tǒng)計(jì)方案,按照各統(tǒng)計(jì)項(xiàng)對(duì)用戶的遙控器按鍵使用行為進(jìn)行統(tǒng) 計(jì),并在統(tǒng)計(jì)時(shí)長(zhǎng)達(dá)到時(shí)長(zhǎng)閾值時(shí),觸發(fā)向云服務(wù)器上報(bào)統(tǒng)計(jì)信息的過(guò)程。然而,該方案在 應(yīng)用于安卓系統(tǒng)時(shí),往往會(huì)出現(xiàn)按鍵統(tǒng)計(jì)速度慢的問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和智能電視,能夠提高按鍵 統(tǒng)計(jì)速度,提高處理的靈活性。
[0006] 本發(fā)明公開(kāi)了一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法,包括:
[0007] 智能電視通過(guò)接收器接收遙控器發(fā)送的按鍵指令;
[0008] 所述智能電視中運(yùn)行的輸入指令讀取模塊檢測(cè)上述按鍵指令;其中,所述輸入指 令讀取模塊米用C++語(yǔ)目或C語(yǔ)目實(shí)現(xiàn);
[0009] 當(dāng)檢測(cè)到所述按鍵指令時(shí),所述智能電視中運(yùn)行的統(tǒng)計(jì)模塊對(duì)所述按鍵指令對(duì)應(yīng) 的按鍵次數(shù)進(jìn)行統(tǒng)計(jì),得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ)言或C語(yǔ) 言實(shí)現(xiàn);
[0010] 所述智能電視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按 鍵統(tǒng)計(jì)結(jié)果;其中,所述獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn);
[0011] 所述智能電視向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
[0012] 優(yōu)選的,所述智能電視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取 所述按鍵統(tǒng)計(jì)結(jié)果的步驟,包括:
[0013] 按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理,其中,所述消息的處理包括:通過(guò)JNI接 口獲取所述按鍵統(tǒng)計(jì)結(jié)果,所述消息循環(huán)處理包括:在每次處理完消息后,按照預(yù)置的時(shí)間 間隔延時(shí)向自身發(fā)送該消息。
[0014] 優(yōu)選的,所述按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理的步驟,包括:
[0015] 按照J(rèn)NI接口規(guī)范,在JNI接口文件中增加用于獲取所述按鍵統(tǒng)計(jì)結(jié)果的第一函 數(shù);
[0016] 在接收到自身發(fā)送的消息后,調(diào)用所述第一函數(shù)以獲取所述按鍵統(tǒng)計(jì)結(jié)果。
[0017] 優(yōu)選的,所述方法還包括:
[0018] 將所述按鍵統(tǒng)計(jì)結(jié)果保存至哈希圖Hash-Map中。
[0019] 優(yōu)選的,所述按鍵指令包括按鍵的抬起指令。
[0020] 另一方面,本發(fā)明還公開(kāi)了一種智能電視,包括:
[0021] 接收模塊,用于通過(guò)接收器接收遙控器發(fā)送的按鍵指令;
[0022] 輸入指令讀取模塊,用于檢測(cè)上述按鍵指令;其中,所述輸入指令讀取模塊采用 C++語(yǔ)目或C語(yǔ)目實(shí)現(xiàn);
[0023] 統(tǒng)計(jì)模塊,用于當(dāng)檢測(cè)到所述按鍵指令時(shí),對(duì)所述按鍵指令對(duì)應(yīng)的按鍵次數(shù)進(jìn)行 統(tǒng)計(jì),得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn);
[0024] 獲取模塊,用于按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果;其中, 所述獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn);及
[0025] 上報(bào)模塊,用于向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
[0026] 優(yōu)選的,所述獲取模塊,包括:
[0027] 消息循環(huán)處理子模塊,用于按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理,其中,所述消 息的處理包括:通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果,所述消息循環(huán)處理包括:在每次處理 完消息后,按照預(yù)置的時(shí)間間隔延時(shí)向自身發(fā)送該消息。
[0028] 優(yōu)選的,所述消息循環(huán)處理子模塊,包括:
[0029] 增加單元,用于按照J(rèn)NI接口規(guī)范,在JNI接口文件中增加用于獲取所述按鍵統(tǒng)計(jì) 結(jié)果的第一函數(shù);
[0030] 調(diào)用單元,用于在接收到自身發(fā)送的消息后,調(diào)用所述第一函數(shù)以獲取所述按鍵 統(tǒng)計(jì)結(jié)果。
[0031] 優(yōu)選的,所述智能電視還包括:
[0032] 保存模塊,用于將所述按鍵統(tǒng)計(jì)結(jié)果保存至哈希圖Hash-Map中。
[0033] 優(yōu)選的,所述按鍵指令包括按鍵的抬起指令。
[0034] 本發(fā)明提供的基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法和智能電視,采用C++語(yǔ)言或C語(yǔ)言 實(shí)現(xiàn)按鍵統(tǒng)計(jì),以及,采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接口獲取按鍵統(tǒng)計(jì)結(jié)果;由于C++語(yǔ)言或 C語(yǔ)目為編譯執(zhí)行語(yǔ)目,而JAVA語(yǔ)目為解釋執(zhí)行語(yǔ)目,故上述米用C++語(yǔ)目或C語(yǔ)目實(shí)現(xiàn)按 鍵統(tǒng)計(jì)邏輯,能夠提高按鍵統(tǒng)計(jì)的速度和效率;而采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接口獲取按 鍵統(tǒng)計(jì)結(jié)果,則能夠符合向服務(wù)器上報(bào)數(shù)據(jù)所使用JAVA接口的要求;并且,由于實(shí)現(xiàn)了按 鍵統(tǒng)計(jì)和獲取按鍵統(tǒng)計(jì)結(jié)果的分離,故還能降低軟件的耦合性。
【專利附圖】
【附圖說(shuō)明】
[0035] 圖1是本發(fā)明的一種安卓系統(tǒng)的結(jié)構(gòu)示意圖;
[0036] 圖2是本發(fā)明的一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法實(shí)施例一的步驟流程圖;
[0037] 圖3是本發(fā)明的一種智能電視實(shí)施例的結(jié)構(gòu)框圖;以及
[0038] 圖4是本發(fā)明的一種智能電視的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
[0040] 參照?qǐng)D1,示出了本發(fā)明的一種安卓系統(tǒng)的結(jié)構(gòu)示意圖,具體可以包括:驅(qū)動(dòng)層 101、Framework(框架)層102和應(yīng)用層103,其中,驅(qū)動(dòng)層101可用于進(jìn)行硬件的驅(qū)動(dòng),可 以采用C++語(yǔ)言和C語(yǔ)言;Framework層102可用于向應(yīng)用層103提供業(yè)務(wù)邏輯的封裝,可 以米用JAVA語(yǔ)目、C++語(yǔ)目和C語(yǔ)目;應(yīng)用層103可用于負(fù)責(zé)對(duì)Framework層102的調(diào)用, 一般采用JAVA語(yǔ)言。
[0041] 應(yīng)用層103負(fù)責(zé)與服務(wù)器的交互,故應(yīng)用層103向服務(wù)器上報(bào)數(shù)據(jù)所使用的接口 為JAVA接口;另外,基于安卓系統(tǒng)的Event Input (指令輸入)特性,按照系統(tǒng)中所有的按 鍵都由Framework層102封裝的InputReader類處理;
[0042] 因此,本發(fā)明可以將Framework層102封裝的InputReader類作為按鍵統(tǒng)計(jì)的切 入點(diǎn),并且,為了符合向服務(wù)器上報(bào)數(shù)據(jù)所使用JAVA接口的要求,通過(guò)JNI接口實(shí)現(xiàn)按鍵統(tǒng) 計(jì)和獲取按鍵統(tǒng)計(jì)結(jié)果的分離,也即,實(shí)現(xiàn)++語(yǔ)言或C語(yǔ)言按鍵統(tǒng)計(jì),以及,采用JAVA語(yǔ)言 實(shí)現(xiàn)通過(guò)JNI接口獲取按鍵統(tǒng)計(jì)結(jié)果;由于C++語(yǔ)言或C語(yǔ)言為編譯執(zhí)行語(yǔ)言,而JAVA語(yǔ) 言為解釋執(zhí)行語(yǔ)言,故上述采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn)按鍵統(tǒng)計(jì)邏輯,能夠提高按鍵統(tǒng)計(jì)的 速度;而采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接口獲取按鍵統(tǒng)計(jì)結(jié)果,則能夠符合向服務(wù)器上報(bào)數(shù) 據(jù)所使用JAVA接口的要求。
[0043] 實(shí)施例一
[0044] 參照?qǐng)D2,示出了本發(fā)明的一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法實(shí)施例一的步驟流 程圖,具體可以包括如下步驟:
[0045] 步驟201、智能電視通過(guò)接收器接收遙控器發(fā)送的按鍵指令;
[0046] 本發(fā)明實(shí)施例可以應(yīng)用于智能電視、智能手機(jī)等各種搭載有安卓系統(tǒng)的智能設(shè) 備,用于統(tǒng)計(jì)上述智能設(shè)備之上的按鍵指令。本發(fā)明實(shí)施例主要以智能電視適用遙控器的 按鍵統(tǒng)計(jì)為例進(jìn)行說(shuō)明,其它智能設(shè)備的按鍵統(tǒng)計(jì)相互參照即可。
[0047] 對(duì)于智能電視而言,其適用的遙控器具體可以包括:39鍵遙控器,超級(jí)遙控器等 等,那么,本發(fā)明實(shí)施例可以只檢測(cè)一種遙控器的按鍵指令,也可以同時(shí)檢測(cè)兩種或兩種以 上遙控器的按鍵指令。
[0048] 在實(shí)際應(yīng)用中,智能電視通常包括接收上述按鍵指令接收器,以39鍵遙控器為 例,上述接收器可以為紅外接收器,以超級(jí)遙控器為例,上述接收器可以為2. 4G接收器。上 述接收器接收到的按鍵指令可以經(jīng)過(guò)驅(qū)動(dòng)層101的轉(zhuǎn)化到達(dá)Framework層102的輸入指令 讀取模塊。
[0049] 步驟202、所述智能電視中運(yùn)行的輸入指令讀取模塊檢測(cè)上述按鍵指令;其中,所 述輸入指令讀取模塊采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn);
[0050] 步驟203、當(dāng)檢測(cè)到所述按鍵指令時(shí),所述智能電視中運(yùn)行的統(tǒng)計(jì)模塊對(duì)所述按鍵 指令對(duì)應(yīng)的按鍵次數(shù)進(jìn)行統(tǒng)計(jì),得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ) 言或C語(yǔ)言實(shí)現(xiàn);
[0051] 在實(shí)際應(yīng)用中,所述輸入指令讀取模塊和所述統(tǒng)計(jì)模塊均可以在智能電視的CPU 中央處理器和內(nèi)存中運(yùn)行,且均可以采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn)。
[0052] 在實(shí)際應(yīng)用中,對(duì)于用戶的一次按鍵,相應(yīng)的按鍵指令具體可以包括:KEY UP(按 鍵抬起)指令和KEY DOWN (按鍵按下)指令等等。
[0053] 考慮到某些安卓系統(tǒng)在長(zhǎng)按按鍵的時(shí)候會(huì)發(fā)送一系列的DOWN指令,也即按鍵次 數(shù)與DOWN指令不一定是一對(duì)一的關(guān)系;而每次按鍵對(duì)應(yīng)的UP指令通常只有一個(gè),也即,KEY UP和按鍵次數(shù)存在存在一對(duì)一的關(guān)系,因此,在本發(fā)明的一種優(yōu)選實(shí)施例中,可以只針對(duì) KEY UP指令進(jìn)行統(tǒng)計(jì),以提高按鍵統(tǒng)計(jì)的準(zhǔn)確性。
[0054] 在具體實(shí)現(xiàn)中,所述輸入指令讀取模塊可通過(guò)上述InputReader類檢測(cè)按鍵的 KEY UP指令,所述統(tǒng)計(jì)模塊可通過(guò)KeyCounter類統(tǒng)計(jì)KEY UP指令對(duì)應(yīng)的按鍵次數(shù);具體 地,在檢測(cè)到一次按鍵的KEY UP指令時(shí),可以在InputReader類的processKey函數(shù)中調(diào)用 KeyCounter 類的 API :setKeyCounterPlus ;
[0055] setKeyCounterPlus這個(gè)函數(shù)的功能是對(duì)按鍵進(jìn)行計(jì)數(shù);
[0056] void setKeyCounterPlus(REM0TE_C0NTR0LLER_TYPE type, int keyCode);
[0057] 其中,REM0TE_C0NTR0LLER_TYPE type表示遙控器類型(如39鍵遙控器和超級(jí)遙 控器等等),keyCode表示對(duì)應(yīng)的按鍵值,也即可以對(duì)各種遙控器類型分別進(jìn)行計(jì)數(shù)。
[0058] 在本發(fā)明的一種優(yōu)選實(shí)施例中,可以將上述按鍵統(tǒng)計(jì)結(jié)果保存至Hash-Map中。 Hash-Map(哈希圖)是一種數(shù)據(jù)結(jié)構(gòu),使用該數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)上述按鍵統(tǒng)計(jì)結(jié)果,可以大大加 快上述按鍵統(tǒng)計(jì)結(jié)果檢索的速度。Hash-Map的數(shù)目可與遙控器類型的數(shù)目相同,以實(shí)現(xiàn)一 種或多種遙控器類型的計(jì)數(shù)和統(tǒng)計(jì)。
[0059] 步驟204、所述智能電視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲 取所述按鍵統(tǒng)計(jì)結(jié)果;其中,所述獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn);
[0060] JNI (JAVA本地接口,Java Native Interface)提供了若干的API (應(yīng)用程序編程 接口,Application Programming Interface)以實(shí)現(xiàn)JAVA與其他語(yǔ)言的通信;因此,本發(fā) 明可以采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接口獲取上述按鍵統(tǒng)計(jì)結(jié)果。
[0061] 例如,在本發(fā)明的一種應(yīng)用示例中,所述獲取模塊可以通過(guò)InputManager類來(lái)實(shí) 現(xiàn)基于JAVA語(yǔ)言的預(yù)置的時(shí)間間隔的定時(shí)器功能。由于整個(gè)安卓系統(tǒng)對(duì)InputManager類 具有很周全的管理,具體可以包括初始化和異常處理等,所以可以直接復(fù)用InputManager 類的初始化和異常處理等部分的邏輯,以滿足按鍵統(tǒng)計(jì)的健壯性要求。
[0062] 步驟205、所述智能電視向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
[0063] 在具體實(shí)現(xiàn)中,所述智能電視可以通過(guò)無(wú)線通信模塊或者有線通信模塊向服務(wù)器 上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
[0064] 在本發(fā)明的一種應(yīng)用示例中,所述智能電視可以按照日志上報(bào)接口格式將通過(guò) JNI接口獲得的按鍵統(tǒng)計(jì)結(jié)果發(fā)送到服務(wù)器,如果預(yù)置的時(shí)間間隔內(nèi)沒(méi)有任何按鍵則不上 報(bào);如果預(yù)置的時(shí)間間隔內(nèi)有按鍵,則相應(yīng)的上報(bào)數(shù)據(jù)接口格式可以使用如下字符串按照 'key-value (鍵-值)'對(duì)方式,key與value之間的分隔符可以為,也可以為其他自定 義的特殊字符,只需與服務(wù)器端相同即可,也即本發(fā)明實(shí)施例對(duì)key與value之間的分隔符 不加以限制:
[0065] String postmsg = ''type = l&keycodehome = 2&keycodeback = 3" ;
[0066] 其中,type = I為39鍵遙控器,type = 2為超級(jí)遙控器,故上述字符串表示的是 在預(yù)置的時(shí)間間隔內(nèi),39鍵遙控器的home按鍵按了 2次,back按鍵按了 3次。
[0067] 在具體實(shí)現(xiàn)中,可以米用 postMessageToServer (LetvManager manager,String postMsg)函數(shù)向服務(wù)器發(fā)送所獲取的按鍵統(tǒng)計(jì)結(jié)果,其中,LetvManager manager是一個(gè)公 用???,用于向服務(wù)器發(fā)送消息。
[0068] 綜上,本發(fā)明實(shí)施例具有如下優(yōu)點(diǎn):
[0069] 首先,采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn)按鍵統(tǒng)計(jì),以及,采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接 口獲取按鍵統(tǒng)計(jì)結(jié)果;由于C++語(yǔ)言或C語(yǔ)言為編譯執(zhí)行語(yǔ)言,而JAVA語(yǔ)言為解釋執(zhí)行語(yǔ) 言,故上述采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn)按鍵統(tǒng)計(jì)邏輯,能夠提高按鍵統(tǒng)計(jì)的速度和效率;而 采用JAVA語(yǔ)言實(shí)現(xiàn)通過(guò)JNI接口獲取按鍵統(tǒng)計(jì)結(jié)果,則能夠符合向服務(wù)器上報(bào)數(shù)據(jù)所使用 JAVA接口的要求;并且,由于實(shí)現(xiàn)了按鍵統(tǒng)計(jì)和獲取按鍵統(tǒng)計(jì)結(jié)果的分離,故還能降低軟 件的耦合性;
[0070] 并且,采用JAVA語(yǔ)言實(shí)現(xiàn)按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié) 果,由于安卓系統(tǒng)中自帶有處理Timer (定時(shí)器)功能的類,故相對(duì)于采用C++語(yǔ)言或C語(yǔ) 言實(shí)現(xiàn)定時(shí)器功能,能夠增加開(kāi)發(fā)的便利性;
[0071] 綜上,相對(duì)于現(xiàn)有的按鍵統(tǒng)計(jì)方案,本發(fā)明的按鍵統(tǒng)計(jì)方案處理更靈活,更適用于 安卓系統(tǒng),因此能夠在靈活,方便,高效的情況下,統(tǒng)計(jì)到用戶的按鍵信息,為后續(xù)的大數(shù)據(jù) 分析提供了基礎(chǔ)數(shù)據(jù),且為下一代遙控器的設(shè)計(jì)提供了科學(xué)依據(jù)。
[0072] 實(shí)施例二
[0073] 實(shí)施例二為實(shí)施例一的可選實(shí)施例,其在實(shí)施例一的基礎(chǔ)上,細(xì)化了所述智能電 視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果的過(guò)程,其 具體可以包括:按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理,其中,所述消息的處理具體可以包 括:通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果,所述消息循環(huán)處理具體可以包括:在每次處理完 消息后,按照預(yù)置的時(shí)間間隔延時(shí)向自身發(fā)送該消息。
[0074] 在具體實(shí)現(xiàn)中,所述按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理的步驟,具體可以包 括:在Hander的繼承類中定義時(shí)間間隔和消息類型,并在所述定義的消息類型中實(shí)現(xiàn)消息 循環(huán)處理。
[0075] 例如,可以在Hander類中增加一個(gè)Message Hander實(shí)現(xiàn)每隔15分鐘調(diào)用按鍵統(tǒng) 計(jì)結(jié)果一次,以實(shí)現(xiàn)按鍵統(tǒng)計(jì)結(jié)果的獲?。?br>
[0076]
【權(quán)利要求】
1. 一種基于安卓系統(tǒng)的按鍵統(tǒng)計(jì)方法,其特征在于,包括: 智能電視通過(guò)接收器接收遙控器發(fā)送的按鍵指令; 所述智能電視中運(yùn)行的輸入指令讀取模塊檢測(cè)上述按鍵指令;其中,所述輸入指令讀 取模塊米用C++語(yǔ)目或C語(yǔ)目實(shí)現(xiàn); 當(dāng)檢測(cè)到所述按鍵指令時(shí),所述智能電視中運(yùn)行的統(tǒng)計(jì)模塊對(duì)所述按鍵指令對(duì)應(yīng)的按 鍵次數(shù)進(jìn)行統(tǒng)計(jì),得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ)言或C語(yǔ)言實(shí) 現(xiàn); 所述智能電視中運(yùn)行的獲取模塊按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng) 計(jì)結(jié)果;其中,所述獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn); 所述智能電視向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述智能電視中運(yùn)行的獲取模塊按照預(yù) 置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果的步驟,包括: 按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理,其中,所述消息的處理包括:通過(guò)JNI接口獲 取所述按鍵統(tǒng)計(jì)結(jié)果,所述消息循環(huán)處理包括:在每次處理完消息后,按照預(yù)置的時(shí)間間隔 延時(shí)向自身發(fā)送該消息。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán) 處理的步驟,包括: 按照J(rèn)NI接口規(guī)范,在JNI接口文件中增加用于獲取所述按鍵統(tǒng)計(jì)結(jié)果的第一函數(shù); 在接收到自身發(fā)送的消息后,調(diào)用所述第一函數(shù)以獲取所述按鍵統(tǒng)計(jì)結(jié)果。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 將所述按鍵統(tǒng)計(jì)結(jié)果保存至哈希圖Hash-Map中。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按鍵指令包括按鍵的抬起指令。
6. -種智能電視,其特征在于,包括: 接收模塊,用于通過(guò)接收器接收遙控器發(fā)送的按鍵指令; 輸入指令讀取模塊,用于檢測(cè)上述按鍵指令;其中,所述輸入指令讀取模塊采用C++語(yǔ) 言或C語(yǔ)言實(shí)現(xiàn); 統(tǒng)計(jì)模塊,用于當(dāng)檢測(cè)到所述按鍵指令時(shí),對(duì)所述按鍵指令對(duì)應(yīng)的按鍵次數(shù)進(jìn)行統(tǒng)計(jì), 得到相應(yīng)的按鍵統(tǒng)計(jì)結(jié)果;其中,所述統(tǒng)計(jì)模塊采用C++語(yǔ)言或C語(yǔ)言實(shí)現(xiàn); 獲取模塊,用于按照預(yù)置的時(shí)間間隔通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果;其中,所述 獲取模塊采用JAVA語(yǔ)言實(shí)現(xiàn);及 上報(bào)模塊,用于向服務(wù)器上報(bào)所獲取的按鍵統(tǒng)計(jì)結(jié)果。
7. 根據(jù)權(quán)利要求6所述的智能電視,其特征在于,所述獲取模塊,包括: 消息循環(huán)處理子模塊,用于按照預(yù)置的時(shí)間間隔進(jìn)行消息循環(huán)處理,其中,所述消息的 處理包括:通過(guò)JNI接口獲取所述按鍵統(tǒng)計(jì)結(jié)果,所述消息循環(huán)處理包括:在每次處理完消 息后,按照預(yù)置的時(shí)間間隔延時(shí)向自身發(fā)送消息。
8. 根據(jù)權(quán)利要求7所述的智能電視,其特征在于,所述消息循環(huán)處理子模塊,包括: 增加單元,用于按照J(rèn)NI接口規(guī)范,在JNI接口文件中增加用于獲取所述按鍵統(tǒng)計(jì)結(jié)果 的第一函數(shù); 調(diào)用單元,用于在接收到自身發(fā)送的消息后,調(diào)用所述第一函數(shù)以獲取所述按鍵統(tǒng)計(jì) 結(jié)果。
9. 根據(jù)權(quán)利要求6所述的智能電視,其特征在于,還包括: 保存模塊,用于將所述按鍵統(tǒng)計(jì)結(jié)果保存至哈希圖Hash-Map中。
10. 根據(jù)權(quán)利要求6所述的智能電視,其特征在于,所述按鍵指令包括按鍵的抬起指 令。
【文檔編號(hào)】H04N21/422GK104378682SQ201410649226
【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2014年11月14日 優(yōu)先權(quán)日:2014年11月14日
【發(fā)明者】劉曉民, 張海朋 申請(qǐng)人:樂(lè)視致新電子科技(天津)有限公司