功能,內(nèi)置于USB接收器硬件,確保以較低成本實(shí)現(xiàn)多手柄與Android終端平臺的信息交互。第(2)步可以采用中間件模式,基于Linux Kernel底層,通過USB Driver通道傳遞多手柄操控指令,并與應(yīng)用對接,完成多手柄連接、通信到應(yīng)用操控的功能一體化。
[0041]圖1是本公開各實(shí)施例的總體架構(gòu)示意圖。
[0042]如圖1所示,主要描述了本公開各實(shí)施例實(shí)現(xiàn)的各硬件設(shè)備組成部分,包括游戲手柄、USB接收器和Android終纟而設(shè)備。其中,
[0043]游戲手柄:采用和支持市面通用手柄,因?yàn)樾枰ㄟ^USB接收器進(jìn)行指令處理,需要接入為無線手柄,手柄本身支持的操控協(xié)議沒有特別要求,可以包括但不限于D input和X input兩種協(xié)議模式。
[0044]USB接收器:在通用的手柄USB接收器內(nèi)置多手柄指令處理模塊,實(shí)現(xiàn)與多個手柄對接和通信,完成對多個手柄指令和狀態(tài)的監(jiān)控。
[0045]Android終端設(shè)備:內(nèi)置多手柄支持功能拓展中間件,與硬件接口連接的USB接收器通信,實(shí)現(xiàn)基于Linux Kernel底層USB Driver通道多手柄操控映射和功能支持。
[0046]圖2是本公開一個實(shí)施例的拓展安卓系統(tǒng)支持多手柄的方法的流程示意圖。
[0047]如圖2所示,該實(shí)施例可以包括以下步驟:
[0048]S202, USB接收器接收多個手柄發(fā)送的連接建立請求;
[0049]具體地,在手柄想要控制安卓終端上的某一支持多手柄操控的應(yīng)用程序時,手柄會首先發(fā)出連接請求,每個手柄分別發(fā)出連接請求,一般地,可以通過無線、紅外等方式發(fā)起連接請求,連接在安卓終端上的USB接收器上電后就一直檢測無線或紅外信號,在檢測到接收信號后與相應(yīng)手柄建立連接信道。其中,不同類型手柄的發(fā)射頻率可能會不同,因此可以基于發(fā)射頻率區(qū)分不同手柄,此外,針對同一類型的手柄,其接入碼不同,因此還可以基于接入碼來區(qū)分不同手柄。
[0050]S204,在USB接收器與手柄的連接建立成功后,USB接收器響應(yīng)于對來自各個信道的手柄操控指令的接收,為來自不同信道的手柄操控指令添加上不同的手柄標(biāo)識后進(jìn)行數(shù)字化處理;
[0051]具體地,在各手柄與USB接收器建立好連接后,手柄可以隨時接收用戶發(fā)出的操控指令,并將該操控指令通過已建立好的通道發(fā)送至USB接收器。USB根據(jù)各個通道的不同為各個手柄設(shè)置不同的手柄標(biāo)識,并將設(shè)置好的手柄標(biāo)識與相應(yīng)手柄發(fā)出的操控指令一起進(jìn)行數(shù)字化處理。
[0052]S206,將數(shù)字化處理后的信息分別沿不同的信道發(fā)送至安卓終端,其中,每個信道中傳輸?shù)臄?shù)字化處理后的信息包括相應(yīng)手柄發(fā)出的對應(yīng)用程序的操控指令以及相應(yīng)手柄的標(biāo)識。
[0053]S208,安卓終端屏蔽安卓系統(tǒng)自身對手柄操控指令的解析,將自不同信道接收的數(shù)字化信息解析成真實(shí)的操控指令;
[0054]具體地,為了使安卓終端能夠執(zhí)行本公開的技術(shù)方案,需要安卓終端屏蔽掉現(xiàn)有安卓系統(tǒng)中自身對手柄操控指令的解析,以避免將多手柄發(fā)出的操控指令解析為單手柄的操控指令。
[0055]安卓終端在自不同信道接收到來自不同手柄的操控指令后,為了能夠識別手柄并且可被應(yīng)用程序所識別,對接收的數(shù)字化信息進(jìn)行解析,以還原出手柄標(biāo)識和相應(yīng)的操控指令。
[0056]S210,依據(jù)各個操控指令攜帶的手柄標(biāo)識發(fā)送給安卓系統(tǒng)內(nèi)的應(yīng)用程序,以實(shí)現(xiàn)多手柄共同操控同一應(yīng)用程序。
[0057]在該實(shí)施例中,安卓終端屏蔽了安卓系統(tǒng)中現(xiàn)有的自身對手柄操控指令的解析,而是通過USB接收器與多個手柄分別建立多個通道來傳遞各手柄所發(fā)出的手柄操控指令,在USB接收器自各個通道接收到來自不同手柄的操控指令后,分別為各個手柄所發(fā)送的操控指令添加上相應(yīng)的手柄標(biāo)識并數(shù)字化后發(fā)送至安卓終端,這樣安卓終端可以經(jīng)多個通道接收到來自不同手柄的操控指令,并將這些來自不同手柄的操控指令分別發(fā)送給應(yīng)用程序,進(jìn)而實(shí)現(xiàn)多個手柄對同一應(yīng)用程序的控制。
[0058]進(jìn)一步地,由于各手柄可能并不持續(xù)地向應(yīng)用程序發(fā)出操控指令,為了使得USB接收器實(shí)時了解手柄的當(dāng)前狀態(tài),即,手柄與USB接收器是處于連接狀態(tài)還是斷開狀態(tài),各個手柄可以周期性地發(fā)送心跳信息,USB接收器接收各個手柄發(fā)送的心跳信息,以對多個手柄的狀態(tài)進(jìn)行實(shí)時監(jiān)聽。
[0059]進(jìn)一步地,在USB接收器無法獲取手柄所發(fā)送的心跳信息后,向安卓終端發(fā)送相應(yīng)手柄斷開的信息;
[0060]安卓終端根據(jù)手柄斷開的信息終止相應(yīng)手柄對同一應(yīng)用程序的操控。
[0061]此外,安卓終端通過Linux核底層的USB驅(qū)動通道對來自USB接收器的數(shù)字化信息進(jìn)行解析。
[0062]在本公開拓展安卓系統(tǒng)支持多手柄的方法的另一實(shí)施例中,可以包括以下步驟:
[0063]步驟I,建立連接:多個無線游戲手柄首先與USB接收器建立連接;
[0064]步驟2,手柄監(jiān)聽:在連接持續(xù)過程中,USB接收器監(jiān)聽各手柄發(fā)出的操控指令,并進(jìn)行數(shù)字化處理;
[0065]步驟3,終端標(biāo)識:終端上借助Linux Kernel底層USB Driver通道實(shí)現(xiàn)對多個手柄的解析,得到各個手柄的標(biāo)識和相應(yīng)手柄發(fā)出的操控指令;
[0066]步驟4,指令映射:將各個手柄完成數(shù)字的指令,映射成為對應(yīng)真實(shí)的操控指令;
[0067]步驟5,應(yīng)用對接:將完成應(yīng)用的操控指令與Android應(yīng)用進(jìn)行對接,實(shí)現(xiàn)多個手柄共同操控應(yīng)用互動;
[0068]步驟6,斷開處理:手柄沒電或者斷開連接時,首先在USB接收器發(fā)送斷開狀況信息,之后再完成與應(yīng)用的對應(yīng)。
[0069]本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述方法實(shí)施例的全部和部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算設(shè)備可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟,而前述的存儲介質(zhì)可以包括ROM、RAM、磁碟和光盤等各種可以存儲程序代碼的介質(zhì)。
[0070]圖3是本公開一個實(shí)施例的拓展安卓系統(tǒng)支持多手柄的系統(tǒng)的結(jié)構(gòu)示意圖。
[0071]如圖3所示,該實(shí)施例中的系統(tǒng)30可以包括安卓終端302和與安卓終端302相連的USB接收器304,其中,
[0072]USB接收器304,用于接收多個手柄發(fā)送的連接建立請求,在與手柄的連接建立成功后,響應(yīng)于對來自各個信道的手柄操控指令的接收,為來自不同信道的手柄操控指令添加上不同的手柄標(biāo)識后進(jìn)行數(shù)字化處理,并將數(shù)字化處理后的信息分別沿不同的信道發(fā)送至安卓終端;
[0073]安卓終端302,用于屏蔽安卓系統(tǒng)自身對手柄操控指令的解析,將自不同信道接收的數(shù)字化信息解析成真實(shí)的操控指令,依據(jù)各個操控指令攜帶的手柄標(biāo)識發(fā)送給安卓系統(tǒng)內(nèi)的應(yīng)用程序,以實(shí)現(xiàn)多手柄共同操控同一應(yīng)用程序。
[0074]在該實(shí)施例中,安卓終端屏蔽了安卓系統(tǒng)中現(xiàn)有的自身對手柄操控指令的解析,而是通過USB接收器與多個手柄分別建立多個通道來傳遞各手柄所發(fā)出的手柄操控指令,在USB接收器自各個通道接收到來自不同手柄的操控指令后,分別為各個手柄所發(fā)送的操控指令添加上相應(yīng)的手柄標(biāo)識并數(shù)字化后發(fā)送至安卓終端,這樣安卓終端可以經(jīng)多個通道接收到來自不同手柄的操控指令,并將這些來自不同手柄的操控指令分別發(fā)送給應(yīng)用程序,進(jìn)而實(shí)現(xiàn)多個手柄對同一應(yīng)用程序的控制。
[0075]進(jìn)一步地,USB接收器還用于接收各個手柄發(fā)送的心跳信息,以對多個手柄的狀態(tài)進(jìn)行實(shí)時監(jiān)聽。
[0076]進(jìn)一步地,USB接收器還用于在無法獲取手柄所發(fā)送的心跳信息后,向安卓終端發(fā)送相應(yīng)手柄斷開的信息;
[0077]安卓終端還用于根據(jù)手柄斷開的信息終止相應(yīng)手柄對同一應(yīng)用程序的操控。
[0078]需要指出的是,安卓終端通過Linux核底層的USB驅(qū)動通道對來自