拓展安卓系統(tǒng)支持多手柄的方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及移動互聯(lián)網(wǎng)領(lǐng)域,特別地,涉及一種拓展安卓系統(tǒng)支持多手柄的方法與系統(tǒng)。
【背景技術(shù)】
[0002]Android (安卓)操控,尤其是觸摸方式,對于移動互聯(lián)網(wǎng)用戶體驗而言是巨大的突破。正是基于這種觸摸操控,在移動終端尤其是手機、PAD上具有廣闊的市場、提升了用戶體驗、為移動互聯(lián)網(wǎng)時代的到來打下了堅實的基礎(chǔ)。
[0003]隨著Android逐步占領(lǐng)智能電視,其原有觸摸操控受到終端使用習(xí)慣、成本和靈活性方面的影響而難以發(fā)揮有效作用,才有手柄等外設(shè)操控的必要性。Android系統(tǒng)本身需要對Windows系統(tǒng)手柄采取映射關(guān)聯(lián),但是,當(dāng)前Android系統(tǒng)僅能支持單一手柄,導(dǎo)致無法有效支持多人對戰(zhàn)和互動應(yīng)用,對Android系統(tǒng)增值應(yīng)用市場的拓展帶來了嚴重的影響和制約。
【發(fā)明內(nèi)容】
[0004]本公開鑒于以上問題中的至少一個提出了新的技術(shù)方案。
[0005]本公開在其一個方面提供了一種拓展安卓系統(tǒng)支持多手柄的方法,其使得安卓系統(tǒng)能夠支持多手柄操控。
[0006]本公開在其另一方面提供了一種拓展安卓系統(tǒng)支持多手柄的系統(tǒng),其使得安卓系統(tǒng)能夠支持多手柄操控。
[0007]根據(jù)本公開,提供一種拓展安卓系統(tǒng)支持多手柄的方法,包括:
[0008]USB接收器接收多個手柄發(fā)送的連接建立請求;
[0009]在USB接收器與手柄的連接建立成功后,USB接收器響應(yīng)于對來自各個信道的手柄操控指令的接收,為來自不同信道的手柄操控指令添加上不同的手柄標識后進行數(shù)字化處理;
[0010]將數(shù)字化處理后的信息分別沿不同的信道發(fā)送至安卓終端;
[0011]安卓終端屏蔽安卓系統(tǒng)自身對手柄操控指令的解析,將自不同信道接收的數(shù)字化信息解析成真實的操控指令;
[0012]依據(jù)各個操控指令攜帶的手柄標識發(fā)送給安卓系統(tǒng)內(nèi)的應(yīng)用程序,以實現(xiàn)多手柄共同操控同一應(yīng)用程序。
[0013]在本公開的一些實施例中,該方法還包括:
[0014]USB接收器接收各個手柄發(fā)送的心跳信息,以對多個手柄的狀態(tài)進行實時監(jiān)聽。
[0015]在本公開的一些實施例中,該方法還包括:
[0016]在USB接收器無法獲取手柄所發(fā)送的心跳信息后,向安卓終端發(fā)送相應(yīng)手柄斷開的信息;
[0017]安卓終端根據(jù)手柄斷開的信息終止相應(yīng)手柄對同一應(yīng)用程序的操控。
[0018]在本公開的一些實施例中,安卓終端通過Linux核底層的USB驅(qū)動通道對來自USB接收器的數(shù)字化信息進行解析。
[0019]根據(jù)本公開,還提供了一種拓展安卓系統(tǒng)支持多手柄的系統(tǒng),包括安卓終端和與安卓終端相連的USB接收器,其中,
[0020]USB接收器,用于接收多個手柄發(fā)送的連接建立請求,在與手柄的連接建立成功后,響應(yīng)于對來自各個信道的手柄操控指令的接收,為來自不同信道的手柄操控指令添加上不同的手柄標識后進行數(shù)字化處理,并將數(shù)字化處理后的信息分別沿不同的信道發(fā)送至安卓終端;
[0021]安卓終端,用于屏蔽安卓系統(tǒng)自身對手柄操控指令的解析,將自不同信道接收的數(shù)字化信息解析成真實的操控指令,依據(jù)各個操控指令攜帶的手柄標識發(fā)送給安卓系統(tǒng)內(nèi)的應(yīng)用程序,以實現(xiàn)多手柄共同操控同一應(yīng)用程序。
[0022]在本公開的一些實施例中,USB接收器還用于接收各個手柄發(fā)送的心跳信息,以對多個手柄的狀態(tài)進行實時監(jiān)聽。
[0023]在本公開的一些實施例中,USB接收器還用于在無法獲取手柄所發(fā)送的心跳信息后,向安卓終端發(fā)送相應(yīng)手柄斷開的信息;
[0024]安卓終端還用于根據(jù)手柄斷開的信息終止相應(yīng)手柄對同一應(yīng)用程序的操控。
[0025]在本公開的一些實施例中,安卓終端通過Linux核底層的USB驅(qū)動通道對來自USB接收器的數(shù)字化信息進行解析。
[0026]在本公開的技術(shù)方案中,安卓終端屏蔽了安卓系統(tǒng)中現(xiàn)有的自身對手柄操控指令的解析,而是通過USB接收器與多個手柄分別建立多個通道來傳遞各手柄所發(fā)出的手柄操控指令,在USB接收器自各個通道接收到來自不同手柄的操控指令后,分別為各個手柄所發(fā)送的操控指令添加上相應(yīng)的手柄標識并數(shù)字化后發(fā)送至安卓終端,這樣安卓終端可以經(jīng)多個通道接收到來自不同手柄的操控指令,并將這些來自不同手柄的操控指令分別發(fā)送給應(yīng)用程序,進而實現(xiàn)多個手柄對同一應(yīng)用程序的控制。
【附圖說明】
[0027]此處所說明的附圖用來提供對本公開的進一步理解,構(gòu)成本申請的一部分。在附圖中:
[0028]圖1是本公開各實施例的總體架構(gòu)示意圖。
[0029]圖2是本公開一個實施例的拓展安卓系統(tǒng)支持多手柄的方法的流程示意圖。
[0030]圖3是本公開一個實施例的拓展安卓系統(tǒng)支持多手柄的系統(tǒng)的結(jié)構(gòu)示意圖。
[0031]圖4是本公開拓展安卓系統(tǒng)支持多手柄的功能示意圖。
[0032]圖5是本公開拓展安卓系統(tǒng)支持多手柄的系統(tǒng)的總體流程示意圖。
【具體實施方式】
[0033]下面將參照附圖描述本公開。要注意的是,以下的描述在本質(zhì)上僅是解釋性和示例性的,決不作為對本公開及其應(yīng)用或使用的任何限制。除非另外特別說明,否則,在實施例中闡述的部件和步驟的相對布置以及數(shù)字表達式和數(shù)值并不限制本公開的范圍。另外,本領(lǐng)域技術(shù)人員已知的技術(shù)、方法和裝置可能不被詳細討論,但在適當(dāng)?shù)那闆r下意在成為說明書的一部分。
[0034]本公開下述實施例要解決的技術(shù)問題是原生Android系統(tǒng)僅能支持單個手柄,無法基于原生Android系統(tǒng)實現(xiàn)多人、多手柄的對抗與競爭。發(fā)明人發(fā)現(xiàn),可以從Android系統(tǒng)底層的Linux Kernel構(gòu)建多手柄支持的解決方案,并通過與內(nèi)置USB處理器的指令處理機制對應(yīng),可以實現(xiàn)Android系統(tǒng)支持2個以上的游戲手柄。
[0035]本公開中的實施例需要擯棄原有Android系統(tǒng)對手柄操控的映射解析。因為原有Android系統(tǒng)無法無縫支持手柄通用的基于Windows標準的D input或X input協(xié)議,其中,D input (即DirectInput)或X input都是基于windows系統(tǒng)的手柄操控標準接口,現(xiàn)有Android系統(tǒng)無法直接支持和識別,因此,采用對協(xié)議解析模式實現(xiàn)手柄鍵值映射。如果多手柄操控時,因Android系統(tǒng)無法識別到具體手柄,僅通過映射健值方法會導(dǎo)致多個手柄被解析成為一個手柄,導(dǎo)致操控混亂。
[0036]鑒于現(xiàn)有技術(shù)存在的問題,本公開提出了擴展Android系統(tǒng)支持多手柄的技術(shù)方案,以實現(xiàn)對Android系統(tǒng)操控功能的拓展?;赨SB接收器內(nèi)置多手柄指令處理和終端內(nèi)置的多手柄操控處理機制,實現(xiàn)基于Android底層Linux Kernel的USB Driver,系統(tǒng)多手柄外設(shè)功能添加,拓展Android系統(tǒng)多手柄外設(shè)支持能力。
[0037]本公開的機制包括兩大組成部分:USB指令處理和Android系統(tǒng)操控功能拓展。
[0038](I)USB指令處理:是將處理軟件內(nèi)置到手柄USB接收器內(nèi),實現(xiàn)對不同手柄通信的建立/維持連線、指令監(jiān)聽和斷線處理等,實現(xiàn)與多個手柄連線并實時監(jiān)聽操控狀況;
[0039](2)Android系統(tǒng)操控功能拓展:在Android終端內(nèi),基于Linux Kernel底層USBDriver實現(xiàn)接收和處理USB接收器傳輸?shù)闹噶?屏蔽原有Android系統(tǒng)的默認解析,本公開的機制包括多手柄解析、數(shù)字化操控指令映射為手柄按鍵操作、多手柄狀態(tài)監(jiān)控和將多手柄操控與應(yīng)用對接等,實現(xiàn)對Android系統(tǒng)拓展多手柄外設(shè)支持功能。
[0040]其中,第(I)步實現(xiàn)多手柄指令處理和接收