一种基于HID通道的Android游戏手柄虚拟化适配方法及装置与流程

文档序号:11205133阅读:2077来源:国知局
本发明涉及大屏智能终端及tv盒子控制
技术领域
:,特别是涉及一种基于hid通道的android游戏手柄虚拟化适配方法及装置。
背景技术
::目前市面上的物理外设各式各样,如手柄、遥控器、方向盘等,游戏的操作方式也不尽相同,如按键游戏、sensor游戏、触屏游戏等。当物理外设的类型与游戏的操作方式不匹配时,部分游戏需要用到特定的物理外设才能正常操作,会给玩家在使用上和经济上带来诸多的不便。因此,提出一种基于hid通道的android游戏手柄虚拟化适配方法及装置,能够将一种物理设备模拟成另外一种虚拟外设,实现物理设备与不同操作模式的游戏之间的适配,成为亟待解决的问题。技术实现要素:为了解决现有技术存在的不足,本发明的目的在于提供一种基于hid通道的android游戏手柄虚拟化适配方法及装置,能够将一种物理设备模拟成另外一种虚拟外设,从而实现物理设备与不同操作模式的游戏之间的适配。为实现上述目的,本发明提供的基于hid通道的android游戏手柄虚拟化适配方法,包括以下步骤:(1)基于手柄设备的手柄事件及游戏的操作模式,将所述手柄设备模拟成虚拟手柄;(2)根据手柄事件的类型及用户选择的场景,进行事件模式的切换;(3)将切换后事件分发至相应的应用或游戏。所述步骤(1)进一步包括:利用所述手柄设备的唯一标识码做区分媒介,将所述手柄设备模拟成虚拟手柄。进一步地,步骤(2)中所述进行事件模式的切换,是将所述手柄设备的手柄事件转换为与游戏的操作模式匹配的虚拟事件。进一步地,所述游戏的操作模式包括:感应模式、触屏模式及按键模式。所述将所述手柄设备的手柄事件转换为与所述游戏的操作模式匹配的虚拟事件,进一步包括以下步骤:(21)读取所述手柄设备的手柄事件的数据;(22)接收读取到的所述手柄事件的数据,及接收所述游戏的操作模式的数据;(23)将所述手柄事件转换为与所述游戏的操作模式匹配的虚拟事件。为实现上述目的,本发明提供的基于hid通道的android游戏手柄虚拟化适配装置,包括,模式转换模块和虚拟手柄模块,所述模式转换模块,其根据手柄设备的手柄事件及游戏的操作模式,将所述手柄设备模拟成虚拟手柄;所述虚拟手柄模块,其将手柄设备的手柄事件转换为与游戏的操作模式匹配的虚拟事件。进一步地,所述虚拟手柄模块,其根据虚拟事件的类型将所述虚拟事件分发至相应的应用或不同操作模式的游戏。为实现上述目的,本发明提供的一种android系统的电视,包括所述基于hid通道的android游戏手柄虚拟化适配装置。为实现上述目的,本发明提供的一种android系统的机顶盒,包括所述基于hid通道的android游戏手柄虚拟化适配装置。本发明的基于hid通道的android游戏手柄虚拟化适配方法及装置,能够以插件程序的方式存在于系统之中,将基于hid通道的android游戏手柄模拟成一款新型虚拟设备,并且此新型虚拟设备涵盖了市面上主要的操作模式(触屏、鼠标、传感器等),从而使物理设备与不同操作模式的游戏之间适配。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:图1为根据本发明的基于hid通道的android游戏手柄虚拟化适配方法流程图;图2为根据发明的基于hid通道的android游戏手柄虚拟化适配装置原理框图;图3为根据本发明的android系统中将手柄事件转换为虚拟事件的具体流程图。具体实施方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。图1为根据本发明的基于hid通道的android游戏手柄虚拟化适配方法流程图,下面将参考图1,对本发明的基于hid通道的android游戏手柄虚拟化适配方法进行详细描述。在步骤101,手柄设备连接至android系统的电视或机顶盒,获取手柄设备的读写权限。在该步骤中,在android系统中framework层安置一个插件程序(app),并将此程序交由android系统中的init.rc启动,从而使插件程序获得读写手柄设备节点的权限。在步骤102,基于手柄设备的手柄事件及游戏的操作模式,将手柄设备模拟成虚拟手柄。在该步骤中,根据android系统中插件程序获取到的手柄事件,及用户在游戏界面上可选择的操作模式,利用手柄设备的唯一标识码做区分媒介,将与android游戏相连的手柄设备模拟成系统内置的标准虚拟手柄或者服务器中的自定义虚拟手柄。在步骤103,根据手柄事件的类型及用户选择的场景,进行事件模式的切换。该步骤中,根据手柄事件的类型及用户选择的场景,将手柄事件转换为与操作模式匹配的虚拟事件,从而实现通过同一手柄设备控制多款不同操作模式的游戏的技术效果,达到一物多用的有益效果。其中,游戏的操作模式包括:sensor模式(感应模式)、touch模式(触屏模式)及keyboard模式(按键模式)。虚拟事件包括:感应事件、触屏事件及按键事件。在步骤104,将切换后事件分发至相应的应用或游戏。该步骤中,根据虚拟事件的类型将其分发到与之相对应的应用或游戏,例如:将虚拟事件的感应事件分发给sensor模式的应用或游戏;将虚拟事件的触屏事件发给touch模式的应用或游戏;将虚拟事件的按键事件发给keyboard模式的应用或游戏。图2为根据发明的基于hid通道的android游戏手柄虚拟化适配装置原理框图,如图2所示,本发明的基于hid通道的android游戏手柄虚拟化适配装置10,包括,模式转换模块11和虚拟手柄模块12,其中,模式转换模块11,其输入端与外部游戏手柄连接,接收外部游戏手柄的手柄事件,并根据该手柄事件及游戏的操作模式,将外部游戏手柄转换为虚拟手柄发送给虚拟手柄模块12。本发明中,模式转换模块11可以与多个不同形式的游戏手柄相连接,游戏手柄可以是手柄,遥控器,方向盘等。虚拟手柄模块12,其接收模式转换模块11发送的手柄事件,根据手柄事件的类型及用户选择的场景,进行事件模式的切换(将手柄事件切换为与操作模式匹配的虚拟事件),并将切换后的虚拟事件分发至相应的应用或不同操作模式的游戏。虚拟手柄模块12,其涵盖市面上主要的操作模式,并能够将手柄事件转换为与操作模式匹配的虚拟事件,从而实现通过同一手柄设备控制多款不同操作模式的游戏的技术效果,达到一物多用的有益效果。其中,游戏的操作模式包括:sensor模式(感应模式)、touch模式(触屏模式)及keyboard模式(按键模式)。具体而言,当操作模式为sensor模式时,将手柄事件转换为感应事件;当操作模式为touch模式时,将手柄事件转换为触屏事件;当操作模式为keyboard模式时,将手柄事件转换为按键事件。图3为根据本发明的android系统中将手柄事件转换为虚拟事件具体流程图,下面结合图3,详细说明本发明的android系统中将手柄事件转换为虚拟事件的具体流程。在android系统中,将手柄事件转换为虚拟事件,主要分为以下四个部分:第一部分:android中的service部分,用于读取eventhub中的数据;在该部分中,创建线程,从eventhub中读取手柄设备的手柄事件;在本实施例中,读取的手柄事件为按键与摇杆事件。并创建手柄设备的com.inputmapper服务。第二部分:app中的jni部分,用于通过binder机制接收service中的数据;在该部分中,通过getevent接收eventhub中的手柄事件;通过getdevinfo获取游戏的操作模式,根据游戏的操作模式,确定手柄事件转换的虚拟事件。在本实施例中,获取的游戏的操作模式为触屏模式,相应的虚拟事件为触屏事件(touch事件)。第三部分:app中的java部分,用于将按键与摇杆事件转为touch事件;在该部分中,获取按键与摇杆事件中的按键与摇杆数据;将按键与摇杆数据转化为触屏事件。其中,获取按键与摇杆数据的具体方式为:检测手柄事件的table文件;调用jni接口;读取table文件中的手柄事件;获得手柄事件中的按键与摇杆数据的坐标值。第四部分:app中的write部分,用于通过aidi通道向android系统的inputdispatcher插入触屏事件。在该部分中,通过回调java,将touch事件发送到android系统中,调用的代码包括:sendtouchevent;再通过aidi通道,将touch事件插入到android系统中,调用的代码包括:writertouch;inputmanager.getinstance().injectinputevent。本发明的基于hid通道的android游戏手柄虚拟化适配方法及装置,能够以插件程序的方式存在于系统之中,将基于hid通道的android游戏手柄模拟成一款新型虚拟设备,并且此新型虚拟设备涵盖了市面上主要的操作模式(触屏、鼠标、传感器等),从而使物理设备与不同操作模式的游戏之间适配。本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1