CN110865894A - 跨终端控制应用程序的方法及装置 - Google Patents

跨终端控制应用程序的方法及装置 Download PDF

Info

Publication number
CN110865894A
CN110865894A CN201911158537.XA CN201911158537A CN110865894A CN 110865894 A CN110865894 A CN 110865894A CN 201911158537 A CN201911158537 A CN 201911158537A CN 110865894 A CN110865894 A CN 110865894A
Authority
CN
China
Prior art keywords
event
control
belonging
event type
control event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911158537.XA
Other languages
English (en)
Other versions
CN110865894B (zh
Inventor
杨学营
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911158537.XA priority Critical patent/CN110865894B/zh
Publication of CN110865894A publication Critical patent/CN110865894A/zh
Application granted granted Critical
Publication of CN110865894B publication Critical patent/CN110865894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种跨终端控制应用程序的方法及装置。其中,该方法包括:获取目标应用程序的运行进程,其中,目标应用程序是通过属于第一事件类型的控制事件进行控制的;通过运行进程获取控制器输入的属于第二事件类型的控制事件;将属于第二事件类型的控制事件转换为属于第一事件类型的控制事件;将属于第一事件类型的控制事件注入至运行进程,以控制目标应用程序。本发明解决了控制器无法控制不同操作类型的应用程序的技术问题。

Description

跨终端控制应用程序的方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种跨终端控制应用程序的方法及装置。
背景技术
随着移动终端应用(比如:手游)越来越便捷,能够提供越来越多的服务,移动终端应用也越来越流行,用户群越来越多。手机,平板电脑等移动终端的屏幕都较小,用户可以将手机,平板电脑等移动终端的屏幕投射到智能设备(比如:智能电视、智能显示屏等等)上,或者,直接在智能设备上安装手机应用,但是,对于应用的控制,如果仍然使用触屏控制会较为不方便,可以使用其他终端(比如:控制器等)对安装在智能设备上的应用程序进行控制。
现有的使用控制器控制智能设备的应用程序的技术方案中,控制器无法对不同操作类型的应用进行控制,比如,在使用手柄在智能电视上玩游戏时,手柄只能够控制游戏主机支持的游戏,能够操作的游戏非常有限。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种跨终端控制应用程序的方法及装置,以至少解决控制器无法控制不同操作类型的应用程序的技术问题。
根据本发明实施例的一个方面,提供了一种跨终端控制应用程序的方法,包括:获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
根据本发明实施例的另一方面,还提供了一种跨终端控制应用程序的装置,包括:第一获取模块,用于获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
第二获取模块,用于通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
转换模块,用于将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
注入模块,用于将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
可选地,所述第二获取模块,用于:通过事件读取进程获取所述控制器输入的所述属于第二事件类型的控制事件;
所述转换模块,用于:通过所述控制进程将所述属于第二事件类型的控制事件传递给事件转换进程;通过所述事件转换进程将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
所述注入模块,用于:通过所述控制进程将所述属于第一事件类型的控制事件传递给事件注入进程;通过所述事件注入进程将所述属于第一事件类型的控制事件注入至所述运行进程。
在本发明实施例中,采用获取目标应用程序的运行进程,其中,目标应用程序是通过属于第一事件类型的控制事件进行控制的;通过运行进程获取控制器输入的属于第二事件类型的控制事件;将属于第二事件类型的控制事件转换为属于第一事件类型的控制事件;将属于第一事件类型的控制事件注入至运行进程,以控制目标应用程序的方式,获取与控制器所采用的操作方式不同的目标应用程序的运行进程,将对控制器进行操作形成的属于第二事件类型的控制事件转换为目标应用程序能够识别的属于第一事件类型的控制事件,将属于第一事件类型的控制事件注入到目标应用程序的运行进程中,通过对目标应用程序的运行进程的控制实现了通过不同事件类型的控制事件对目标应用程序的控制,从而实现了控制器对不同操作类型的应用程序的控制,进而解决了控制器无法控制不同操作类型的应用程序的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的跨终端控制应用程序的方法的示意图;
图2是根据本发明实施例的一种可选的跨终端控制应用程序的方法的应用环境示意图;
图3是根据本发明可选的实施方式的通过手柄控制智能电视的示意图一;
图4是根据本发明可选的实施方式的通过手柄控制智能电视的示意图二;
图5是根据本发明可选的实施方式的一种可选的获取游戏手柄输入的控制事件的过程的示意图;
图6是根据本发明可选的实施方式的一种可选的将控制事件注入游戏运行进程的过程的示意图;
图7是根据本发明可选的实施方式的一种可选的控制事件转换过程的示意图;
图8是根据本发明可选的实施方式的一种可选的手柄控制智能设备上手机游戏的过程的示意图;
图9是根据本发明实施例的一种可选的跨终端控制应用程序的装置的示意图;
图10是根据本发明实施例的一种可选的跨终端控制应用程序的方法的应用场景示意图;以及
图11是根据本发明实施例的一种可选的电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种跨终端控制应用程序的方法,如图1所示,该方法包括:
步骤S102,获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
步骤S104,通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
步骤S106,将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
步骤S108,将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
可选地,在本实施例中,上述跨终端控制应用程序的方法可以应用于如图2所示的设备202所构成的硬件环境中。如图2所示,设备202获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;通过运行进程获取控制器200输入的属于第二事件类型的控制事件;将属于第二事件类型的控制事件转换为属于第一事件类型的控制事件;将属于第一事件类型的控制事件注入至运行进程,以控制所述目标应用程序。
可选地,在本实施例中,上述跨终端控制应用程序的方法可以但不限于应用于通过控制器控制终端设备上安装的应用程序的场景中。其中,上述终端设备可以但不限于为各种类型的终端设备,例如,手机、智能电视、智能家居、智能穿戴设备等等,上述应用程序可以但不限于为各种类型的应用程序,例如,在线教育应用、即时通讯应用、社区空间应用、游戏应用、购物应用、浏览器应用、金融应用、多媒体应用、直播应用等。具体的,可以但不限于应用于通过控制器控制智能电视上的多媒体应用的场景中,或还可以但不限于应用于通过控制器控制智能电视上的游戏应用的场景中,以提高对文本信息进行类型识别的识别效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述控制器可以但不限于是任何与运行目标应用程序的设备不同的控制设备,比如:游戏手柄,遥控器,能够控制智能电视的手机、平板电脑、智能穿戴设备等等。
可选地,在本实施例中,上述控制器的操作方式是与目标应用程序不同的操作方式,上述事件类型可以但不限于用于表示产生控制事件所采用的操作方式。第一事件类型和第二事件类型是不同的事件类型。比如:第一事件类型的控制事件可以是通过触屏操作产生的控制事件,第二事件类型的控制事件可以是通过按键操作产生的控制事件,例如:使用游戏手柄控制智能电视上安装的手机游戏。或者,第一事件类型的控制事件可以是通过按键操作产生的控制事件,第二事件类型的控制事件可以是通过触屏操作产生的控制事件,例如:使用手机控制智能电视上安装的电视应用,该电视应用需要使用电视遥控器进行控制。
可选地,在本实施例中,上述目标应用程序可以但不限于运行在沙箱运行环境中。沙箱运行环境是一种虚拟运行技术,在操作系统上的表现是可以同时运行一个或多个同样的应用。在沙箱运行环境里面,可以获取到更多系统界别的权限,可以监控应用的运行情况,修改应用的运行逻辑,从而突破系统的限制,实现更多功能。
在一个可选的实施方式中,如图3所示,用手柄在智能电视上玩手游,智能电视上安装了游戏平台应用,用户可以在游戏平台应用中安装手游,如图4所示,游戏平台应用可以控制手柄和智能电视的连接,可以连接虚拟手柄,蓝牙手柄,有线手柄等等,通过游戏平台应用可以实现手柄对手游的控制。例如:游戏平台应用上启动游戏A,游戏平台应用获取游戏A的运行进程,其中,游戏A是通过触控类型的控制事件进行控制的应用程序;游戏平台应用通过该运行进程获取手柄输入的按键类型的控制事件;游戏平台应用将按键类型的控制事件转换为触控类型的控制事件,游戏平台应用将触控类型的控制事件注入至游戏A的运行进程中,以控制游戏A。
可见,通过上述步骤,获取与控制器所采用的操作方式不同的目标应用程序的运行进程,将对控制器进行操作形成的属于第二事件类型的控制事件转换为目标应用程序能够识别的属于第一事件类型的控制事件,将属于第一事件类型的控制事件注入到目标应用程序的运行进程中,通过对目标应用程序的运行进程的控制实现了通过不同事件类型的控制事件对目标应用程序的控制,从而实现了控制器对不同操作类型的应用程序的控制,进而解决了控制器无法控制不同操作类型的应用程序的技术问题。
作为一种可选的方案,获取所述目标应用程序的所述运行进程,包括:
S1,在所述目标应用程序处于启动状态的情况下,对所述目标应用程序运行的窗口管理器进行获取;
S2,将所述窗口管理器的第一窗口会话替换为第二窗口会话;
S3,通过所述第二窗口会话获取所述运行进程的窗口。
可选地,在本实施例中,上述窗口管理器可以但不限于为WindowManager。窗口会话可以但不限于为WindowSession。窗口可以但不限于为Window。
可选地,在本实施例中,可以通过Hook的方式获取窗口管理器WindowManager。
作为一种可选的方案,通过所述运行进程获取控制器输入的属于第二事件类型的控制事件,包括:
S1,将所述窗口所持有的第一输入接收器替换为操作系统的第二输入接收器,其中,所述目标应用程序安装在所述操作系统上;
S2,通过所述第二输入接收器从事件输入接口获取所述控制器输入的所述属于第二事件类型的控制事件。
可选地,在本实施例中,输入接收器可以但不限于为InputReceiver。事件输入接口可以但不限于为onInputEvent接口。
在上述可选的实施方式中,如图5所示,获取通过游戏手柄输入的控制事件的过程包括以下步骤:
步骤S502,手柄通过蓝牙与智能电视建立连接,这样智能电视就可以接收到手柄输入的控制事件了。
步骤S504,在沙箱运行环境中启动游戏,通过沙箱运行环境对游戏进行的窗口管理器WindowManager进行Hook。
步骤S506,把窗口管理器WindowManager的WindowSession(第一窗口会话)替换成沙箱运行环境构造的WindowSession(第二窗口会话),这样就可以获取到游戏进程的窗口Window。
步骤S508,把窗口Window所持有的InputReceiver(第一输入接收器)替换成沙箱运行环境的InputReceiver(第二输入接收器),这样就可以通过事件输入接口onInputEvent接口获取到当前游戏进程的手柄输入的属于第二事件类型的控制事件。
作为一种可选的方案,将所述属于第一事件类型的控制事件注入至所述运行进程,包括:
S1,将所述属于第一事件类型的控制事件发送至所述窗口;
S2,通过所述窗口将所述属于第一事件类型的控制事件注入至所述运行进程。
可选地,在本实施例中,对于Android系统中运行的目标应用程序来说,事件注入过程针对不同的Android系统版本有不同的处理方案:
方案a,Android系统版本大于或等于4.4,采用以下接口进行注入:
接口所在类:android.view.Window
接口定义:
Figure BDA0002285439410000081
Figure BDA0002285439410000091
方案b,Android系统版本小于4.4,采用反射调用android.view.ViewRootImpl#enqueueInputEvent接口进行事件注入:
Object viewRoot=window.getDecorView().getParent();
ReflectCenter.Rf_ViewRootImpl.M_enqueueInputEvent.invoke(viewRoo t,motionEvent,null,0,true)。
在一个可选的实施方式中,如图6所示,通过事件注入服务进程将属于第一事件类型的控制事件的注入游戏的运行进程的过程包括以下步骤:
步骤S602,在沙箱运行环境中提供事件注入服务进程,事件注入服务进程接收经过转换映射的屏幕触摸类型的控制事件(即属于第一事件类型的控制事件)。
步骤S604,将触摸类型的控制事件注入到当前运行在沙箱运行环境里的游戏进程的窗口window。
步骤S606,通过窗口window把触摸类型的控制事件注入到游戏的运行进程,从而实现控制游戏的目的。
作为一种可选的方案,将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件,包括:
S1,获取属于所述第二事件类型的控制事件与属于所述第一事件类型的控制事件之间的对应关系;
S2,从所述对应关系中查找属于第二事件类型的控制事件所对应的所述属于第一事件类型的控制事件。
可选地,在本实施例中,通过提供控制事件的对应关系来进行控制事件的转换。比如:对于将手柄操作转换成触屏操作来说,可以根据手柄设计中的操作标准确定手柄操作的控制事件与触屏操作的控制事件之间的对应关系,对于每个应用程序提供一组手柄操作与触屏操作的对应关系,例如:在MOBA游戏中,手柄A键对应一技能,手柄B键对应普通攻击,手柄X键对应二技能,手柄Y键对应三技能等等。
在一个可选的实施方式中,如图7所示,通过事件转换服务进程将属于第二事件类型的控制事件转换为属于第一事件类型的控制事件的过程包括以下步骤:
步骤S702,在沙箱运行环境中提供事件转换服务进程,事件转换服务进程的输入是获取到的手柄原始输入的属于第二事件类型的控制事件。
步骤S704,从按键映射规则库中获取与游戏应用和控制器对应的控制事件的对应规则。
步骤S706,通过事件映射转换器从对应规则中查找手柄输入的属于第二事件类型的控制事件所对应的属于第一事件类型的控制事件。
通过事件映射转换器获取这里提供了一个按键规则映射规则库,映射规则库定义了手柄输入的控制事件和游戏操作的控制事件之间的对应关系。
比如:手柄输入的按键A(其id为10105),通过映射规则转换器转换后,会映射到屏幕上的(CenterX,CenterY)位置上。对于每个不同的游戏,会有一套或多套按键规则,通过按键规则库进行解释,再通过事件映射转换器转换成屏幕触摸事件,即为操作系统可以识别的MotionEvent,此控制事件对于游戏来说是有意义的,它对应某个操作。MOBA游戏的一技能通过手柄上的按键A进行操作释放的代码如下:
Figure BDA0002285439410000101
Figure BDA0002285439410000111
上述代码表示将手柄上id为10105的按键A,映射到屏幕上的(CenterX为0.774,CenterY为0.872)位置上的id为10201的一技能。
作为一种可选的方案,获取目标应用程序的运行进程,包括:
S1,通过控制进程获取所述目标应用程序的所述运行进程;
可选地,在本实施例中,在沙箱运行环境中,可以进行多个进程的并行运行,通过控制进程对目标应用程序的运行进程进行获取。
作为一种可选的方案,通过所述运行进程获取控制器输入的所述属于第二事件类型的控制事件,包括:通过事件读取进程获取所述控制器输入的所述属于第二事件类型的控制事件;
将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件,包括:通过所述控制进程将所述属于第二事件类型的控制事件传递给事件转换进程;通过所述事件转换进程将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
将所述属于第一事件类型的控制事件注入至所述运行进程,包括:通过所述控制进程将所述属于第一事件类型的控制事件传递给事件注入进程;通过所述事件注入进程将所述属于第一事件类型的控制事件注入至所述运行进程。
可选地,在本实施例中,通过创建不同的进程来实现应用程序的控制过程中的不同操作流程,不同的进程能够在沙箱运行环境中并行执行,并且能够通过沙箱运行环境对多个进程进行控制。比如:属于第二事件类型的控制事件的获取过程由事件读取进程来执行,属于第二事件类型的控制事件到属于第一事件类型的控制事件的转换过程通过事件转换进程来执行,事件的注入过程通过事件注入进程来执行,并且通过控制进程完成各个进程之间的交互控制。
在一个可选的实施方式中,如图8所示,通过游戏手柄控制手机游戏的过程包括以下步骤:
步骤S802,将游戏手柄连接到智能设备上。游戏手柄可以为蓝牙手柄,或者,有线手柄等等。游戏手柄通过按键方式发送控制事件来控制智能设备。智能设备包括智能电视,智能机顶盒,智能移动终端等等。智能设备上安装了各种应用程序,即时通信应用,手机游戏,视频应用等等。这些应用程序有些是通过触屏方式的控制事件进行控制的,比如:手机游戏。
步骤S804,在智能设备上的沙箱运行环境中启动并运行手机游戏,通过沙箱运行环境获取手机游戏的运行进程。
步骤S806,对游戏运行进程的WindowManager进行Hook。
步骤S808,将WindowManager的WindowSession替换成沙箱运行环境构造的WindowSession。
步骤S810,通过沙箱运行环境构造的WindowSession获取到游戏进程的Window。
步骤S812,将Window所持有的InputReceiver替换成沙箱运行环境的InputReceiver。
步骤S814,通过onInputEvent接口获取到当前游戏进程的手柄输入的控制事件。
步骤S816,获取与当前游戏和手柄对应的映射规则库。以手机游戏为MOBA游戏,游戏手柄包括:方向键,按键A,按键B,按键X,按键Y,辅助键L和辅助键R等为例,映射规则库中记录了将手柄按键中的方向键分别映射为触摸游戏的方向轮盘,将按键A映射为触摸一技能所在位置,按键B映射为触摸普通攻击所在位置,按键X映射为触摸二技能所在位置,按键Y映射为触摸三技能所在位置,辅助键L映射为触摸购买装备的图标,辅助键R映射为触摸开启地图的图标等等。
步骤S818,从映射规则库中查找手柄输入的控制事件对应的触屏控制事件。手柄输入的控制事件为按键A被触发,查找到其对应的触屏控制事件为触摸一技能所在位置。
步骤S820,将触屏控制事件注入游戏的运行进程中,从而实现使用手柄对智能设备上安装的手机游戏的控制。将上述触摸一技能所在位置的控制事件注入到游戏的运行进程中。游戏的运行进程执行触摸一技能所在位置的控制事件,从而控制游戏角色释放一技能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述跨终端控制应用程序的方法的跨终端控制应用程序的装置,如图9所示,该装置包括:
第一获取模块92,用于获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
第二获取模块94,用于通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
转换模块96,用于将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
注入模块98,用于将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
可选地,所述第一获取模块,包括:
第一获取单元,用于在所述目标应用程序处于启动状态的情况下,对所述目标应用程序运行的窗口管理器进行获取;
第一替换单元,用于将所述窗口管理器的第一窗口会话替换为第二窗口会话;
第二获取单元,用于通过所述第二窗口会话获取所述运行进程的窗口。
可选地,所述第二获取模块,包括:
第一替换单元,用于将所述窗口所持有的第一输入接收器替换为操作系统的第二输入接收器,其中,所述目标应用程序安装在所述操作系统上;
第三获取单元,用于通过所述第二输入接收器从事件输入接口获取所述控制器输入的所述属于第二事件类型的控制事件。
可选地,所述注入模块,包括:
发送单元,用于将所述属于第一事件类型的控制事件发送至所述窗口;
注入单元,用于通过所述窗口将所述属于第一事件类型的控制事件注入至所述运行进程。
可选地,所述转换模块,包括:
第四获取单元,用于获取属于所述第二事件类型的控制事件与属于所述第一事件类型的控制事件之间的对应关系;
查找单元,用于从所述对应关系中查找属于第二事件类型的控制事件所对应的所述属于第一事件类型的控制事件。
可选地,所述第一获取模块,用于:
通过控制进程获取所述目标应用程序的所述运行进程。
可选地,所述第二获取模块,用于:通过事件读取进程获取所述控制器输入的所述属于第二事件类型的控制事件;
所述转换模块,用于:通过所述控制进程将所述属于第二事件类型的控制事件传递给事件转换进程;通过所述事件转换进程将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
所述注入模块,用于:通过所述控制进程将所述属于第一事件类型的控制事件传递给事件注入进程;通过所述事件注入进程将所述属于第一事件类型的控制事件注入至所述运行进程。
作为一种可选的实施例,上述跨终端控制应用程序的方法可以但不限于应用于如图10所示的手柄控制智能电视上运行的手游的场景中。在本场景中,提供了一种基于沙箱运行环境的用手柄在智能电视上玩手游的技术架构。如图10所示,上述架构包括以下服务模块:
游戏手柄,是用来操作游戏的设备,通过蓝牙使得手柄和电视建立连接。事件接收服务模块,用于读取手柄输入的原始控制事件。事件转换服务模块,用于把手柄的输入事件转换成游戏屏幕的触摸事件。事件注入服务模块,用于把转换后的屏幕触摸事件注入到游戏进程,达到操作游戏的目的。游戏模块,即运行在手机上的游戏,比如MOBA类游戏、第一人称设计类游戏等。沙箱运行环境是一种虚拟运行技术,在操作系统上可以同时运行一个或多个同样的应用。
根据本发明实施例的又一个方面,还提供了一种用于实施上述跨终端控制应用程序的方法的电子装置,如图11所示,该电子装置包括:一个或多个(图中仅示出一个)处理器1102、存储器1104、传感器1106、编码器1108以及传输装置1110,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
S2,通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
S3,将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
S4,将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
其中,存储器1104可用于存储软件程序以及模块,如本发明实施例中的跨终端控制应用程序的方法和装置对应的程序指令/模块,处理器1102通过运行存储在存储器1104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标组件的控制方法。存储器1104可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1104可进一步包括相对于处理器1102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1110用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1110包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1110为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1104用于存储应用程序。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
S2,通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
S3,将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
S4,将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种跨终端控制应用程序的方法,其特征在于,包括:
获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
2.根据权利要求1所述的方法,其特征在于,获取所述目标应用程序的所述运行进程,包括:
在所述目标应用程序处于启动状态的情况下,对所述目标应用程序运行的窗口管理器进行获取;
将所述窗口管理器的第一窗口会话替换为第二窗口会话;
通过所述第二窗口会话获取所述运行进程的窗口。
3.根据权利要求2所述的方法,其特征在于,通过所述运行进程获取控制器输入的属于第二事件类型的控制事件,包括:
将所述窗口所持有的第一输入接收器替换为操作系统的第二输入接收器,其中,所述目标应用程序安装在所述操作系统上;
通过所述第二输入接收器从事件输入接口获取所述控制器输入的所述属于第二事件类型的控制事件。
4.根据权利要求2所述的方法,其特征在于,将所述属于第一事件类型的控制事件注入至所述运行进程,包括:
将所述属于第一事件类型的控制事件发送至所述窗口;
通过所述窗口将所述属于第一事件类型的控制事件注入至所述运行进程。
5.根据权利要求1所述的方法,其特征在于,将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件,包括:
获取属于所述第二事件类型的控制事件与属于所述第一事件类型的控制事件之间的对应关系;
从所述对应关系中查找属于第二事件类型的控制事件所对应的所述属于第一事件类型的控制事件。
6.根据权利要求1至5中任一项所述的方法,其特征在于,获取目标应用程序的运行进程,包括:
通过控制进程获取所述目标应用程序的所述运行进程。
7.根据权利要求6所述的方法,其特征在于,
通过所述运行进程获取控制器输入的所述属于第二事件类型的控制事件,包括:通过事件读取进程获取所述控制器输入的所述属于第二事件类型的控制事件;
将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件,包括:通过所述控制进程将所述属于第二事件类型的控制事件传递给事件转换进程;通过所述事件转换进程将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
将所述属于第一事件类型的控制事件注入至所述运行进程,包括:通过所述控制进程将所述属于第一事件类型的控制事件传递给事件注入进程;通过所述事件注入进程将所述属于第一事件类型的控制事件注入至所述运行进程。
8.一种跨终端控制应用程序的装置,其特征在于,包括:
第一获取模块,用于获取目标应用程序的运行进程,其中,所述目标应用程序是通过属于第一事件类型的控制事件进行控制的;
第二获取模块,用于通过所述运行进程获取控制器输入的属于第二事件类型的控制事件;
转换模块,用于将所述属于第二事件类型的控制事件转换为所述属于第一事件类型的控制事件;
注入模块,用于将所述属于第一事件类型的控制事件注入至所述运行进程,以控制所述目标应用程序。
9.根据权利要求8所述的装置,其特征在于,所述第一获取模块,包括:
第一获取单元,用于在所述目标应用程序处于启动状态的情况下,对所述目标应用程序运行的窗口管理器进行获取;
第一替换单元,用于将所述窗口管理器的第一窗口会话替换为第二窗口会话;
第二获取单元,用于通过所述第二窗口会话获取所述运行进程的窗口。
10.根据权利要求9所述的装置,其特征在于,所述第二获取模块,包括:
第一替换单元,用于将所述窗口所持有的第一输入接收器替换为操作系统的第二输入接收器,其中,所述目标应用程序安装在所述操作系统上;
第三获取单元,用于通过所述第二输入接收器从事件输入接口获取所述控制器输入的所述属于第二事件类型的控制事件。
11.根据权利要求9所述的装置,其特征在于,所述注入模块,包括:
发送单元,用于将所述属于第一事件类型的控制事件发送至所述窗口;
注入单元,用于通过所述窗口将所述属于第一事件类型的控制事件注入至所述运行进程。
12.根据权利要求8所述的装置,其特征在于,所述转换模块,包括:
第四获取单元,用于获取属于所述第二事件类型的控制事件与属于所述第一事件类型的控制事件之间的对应关系;
查找单元,用于从所述对应关系中查找属于第二事件类型的控制事件所对应的所述属于第一事件类型的控制事件。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述第一获取模块,用于:
通过控制进程获取所述目标应用程序的所述运行进程。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN201911158537.XA 2019-11-22 2019-11-22 跨终端控制应用程序的方法及装置 Active CN110865894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911158537.XA CN110865894B (zh) 2019-11-22 2019-11-22 跨终端控制应用程序的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911158537.XA CN110865894B (zh) 2019-11-22 2019-11-22 跨终端控制应用程序的方法及装置

Publications (2)

Publication Number Publication Date
CN110865894A true CN110865894A (zh) 2020-03-06
CN110865894B CN110865894B (zh) 2023-09-22

Family

ID=69655145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911158537.XA Active CN110865894B (zh) 2019-11-22 2019-11-22 跨终端控制应用程序的方法及装置

Country Status (1)

Country Link
CN (1) CN110865894B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111841008A (zh) * 2020-06-30 2020-10-30 海尔优家智能科技(北京)有限公司 事件执行方法和装置、存储介质及电子装置
CN113457119A (zh) * 2021-06-10 2021-10-01 深圳市腾讯网络信息技术有限公司 一种游戏控制方法、装置、计算机设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117858A1 (en) * 2002-12-12 2004-06-17 Boudreau Paul A. Data enhanced multi-media system for an external device
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
US20080250429A1 (en) * 2007-04-06 2008-10-09 Microsoft Corporation Application-specific mapping of input device elements
WO2015196756A1 (zh) * 2014-06-25 2015-12-30 中兴通讯股份有限公司 一种运行应用程序的方法及设备
CN106662975A (zh) * 2014-09-02 2017-05-10 三星电子株式会社 用于处理触摸输入的方法和装置
CN108008992A (zh) * 2017-11-24 2018-05-08 南昌黑鲨科技有限公司 一种输入操作处理方法、处理装置及计算机可读存储介质
CN109173238A (zh) * 2018-07-27 2019-01-11 深圳闪电鸟网络科技有限公司 一种双输入事件同时执行的方法及计算机存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117858A1 (en) * 2002-12-12 2004-06-17 Boudreau Paul A. Data enhanced multi-media system for an external device
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
US20080250429A1 (en) * 2007-04-06 2008-10-09 Microsoft Corporation Application-specific mapping of input device elements
WO2015196756A1 (zh) * 2014-06-25 2015-12-30 中兴通讯股份有限公司 一种运行应用程序的方法及设备
CN106662975A (zh) * 2014-09-02 2017-05-10 三星电子株式会社 用于处理触摸输入的方法和装置
CN108008992A (zh) * 2017-11-24 2018-05-08 南昌黑鲨科技有限公司 一种输入操作处理方法、处理装置及计算机可读存储介质
CN109173238A (zh) * 2018-07-27 2019-01-11 深圳闪电鸟网络科技有限公司 一种双输入事件同时执行的方法及计算机存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111841008A (zh) * 2020-06-30 2020-10-30 海尔优家智能科技(北京)有限公司 事件执行方法和装置、存储介质及电子装置
CN113457119A (zh) * 2021-06-10 2021-10-01 深圳市腾讯网络信息技术有限公司 一种游戏控制方法、装置、计算机设备
CN113457119B (zh) * 2021-06-10 2024-02-27 深圳市腾讯网络信息技术有限公司 一种游戏控制方法、装置、计算机设备

Also Published As

Publication number Publication date
CN110865894B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN106375865B (zh) 一种基于社交信息的弹幕交互方法、系统及终端
CN102932695A (zh) 一种遥控方法、智能终端及智能遥控系统
MX2014012325A (es) Habilidad de clientes web para proporcionar servicios web.
TWI488537B (zh) 連接無線網路基地台的設定方法與電子裝置
CN106649446B (zh) 信息推送方法和装置
WO2015048457A1 (en) Method and apparatus for real-time sharing of multimedia content between wireless devices
CN111324275B (zh) 显示画面中元素的播报方法及装置
CN202930019U (zh) 一种卡拉ok系统
CN103686387A (zh) 智能电视系统中的多账户管理控制方法及系统
US20170277526A1 (en) Software categorization method and electronic device
CN113810732B (zh) 直播内容显示方法、装置、终端、存储介质及程序产品
CN106385277A (zh) 加密装置、方法及系统
CN110865894B (zh) 跨终端控制应用程序的方法及装置
CN107433040A (zh) 游戏数据更改方法及系统
CN103686385A (zh) 用于智能电视的播放控制方法及装置
WO2013133764A1 (en) Mobile device and remote control connection for electronic device via near field communication
CN109491723A (zh) 一种应用程序运行方法、应用程序运行装置及移动终端
CN113596798A (zh) 资源共享方法及装置
CN104378674A (zh) 建立智能手持装置和智能电视之间的通信连接的方法和系统
US20110238731A1 (en) Method to provide an unlimited number of customized user interfaces
CN117318937A (zh) 一种加密方法、解密方法、加密解密系统、设备及介质
JP6546088B2 (ja) 物理オブジェクトと通信デバイスとの間の許可された通信を確立するための方法
EP3731530A1 (en) Method and device for providing video stream
CN113908533A (zh) 云游戏交互方法、装置、终端及处理器
CN104967637A (zh) 操作处理方法、装置及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021420

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant