CN112882850A - 按键事件处理方法、装置、设备和存储介质 - Google Patents

按键事件处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112882850A
CN112882850A CN202110258214.9A CN202110258214A CN112882850A CN 112882850 A CN112882850 A CN 112882850A CN 202110258214 A CN202110258214 A CN 202110258214A CN 112882850 A CN112882850 A CN 112882850A
Authority
CN
China
Prior art keywords
event
key
pressing
press
preset time
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
CN202110258214.9A
Other languages
English (en)
Other versions
CN112882850B (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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110258214.9A priority Critical patent/CN112882850B/zh
Publication of CN112882850A publication Critical patent/CN112882850A/zh
Application granted granted Critical
Publication of CN112882850B publication Critical patent/CN112882850B/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/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G06F3/0489Interaction 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 using dedicated keyboard keys or combinations thereof
    • 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/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

本公开实施例涉及一种按键事件处理方法、装置、设备和存储介质,该方法包括:与被控端建立通讯连接;获取用户输入的关于第一按键的第一按下事件;基于第一按下事件中的第一时间戳,统计预设时长;响应于在预设时长内未获取到关于第一按键的第一抬起事件,向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件;向被控端发送第一模拟按下事件。本公开实施例避免了现有方案中因通讯网络质量不稳定引起的抬起事件传输延迟,使得被控端误将按键单击操作判断为长按操作,提高了按键长按操作的判断准确性以及键值连续输入的准确性。

Description

按键事件处理方法、装置、设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种按键事件处理方法、装置、设备和存储介质。
背景技术
无线网络键盘是指在无线网络条件下,例如在WiFi网络条件下,将物理连接在一台设备A(可以称为Client端)上的键盘,映射到另一设备B(可以称为Server端)上,从而达到通过设备A的键盘远程控制设备B的效果。例如,用户在Client端的键盘上执行某个按键的单击操作,Client端将该按键的按下事件和抬起事件发送至Server端,Server端基于该按键的按下事件和抬起事件,实现该按键的单次输入。
然而,在无线网络键盘的应用环境下,由于网络传输有时候会受到各种因素的干扰,因此网络延迟抖动现象不可避免,传输至Server端中的按键的抬起事件很容易延迟接收,抬起事件的延迟接收会导致Server端的输入(Input)系统把用户的键盘单击操作错误判断为长按操作,从而将字符的一次输入操作变更为该字符的连续多次输入操作,严重影响用户体验。
因此,如何优化Client端和Server端之间的按键事件(或称为键盘事件)传输效果,提高Server端中键值输入的准确性,仍是亟待解决的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种按键事件处理方法、装置、设备和存储介质。
第一方面,本公开实施例提供了一种按键事件处理方法,包括:
与被控端建立通讯连接;
获取用户输入的关于第一按键的第一按下事件;
基于所述第一按下事件中的第一时间戳,统计预设时长;
响应于在所述预设时长内未获取到关于所述第一按键的第一抬起事件,向所述被控端发送所述第一按下事件,并基于所述预设时长的结束时刻,按照预设时间间隔生成关于所述第一按键的第一模拟按下事件;
向所述被控端发送所述第一模拟按下事件。
第二方面,本公开实施例还提供了一种按键事件处理装置,包括:
通讯连接建立模块,用于与被控端建立通讯连接;
第一按下事件获取模块,用于获取用户输入的关于第一按键的第一按下事件;
第一预设时长统计模块,用于基于所述第一按下事件中的第一时间戳,统计预设时长;
事件发送与模拟模块,用于响应于在所述预设时长内未获取到关于所述第一按键的第一抬起事件,向所述被控端发送所述第一按下事件,并基于所述预设时长的结束时刻,按照预设时间间隔生成关于所述第一按键的第一模拟按下事件;
第一模拟按下事件发送模块,用于向所述被控端发送所述第一模拟按下事件。
第三方面,本公开实施例还提供了一种电子设备,包括存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备实现本公开实施例提供的任一所述的按键事件处理方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现本公开实施例提供的任一所述的按键事件处理方法。
本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
在本公开实施例中,控制端与被控端建立通讯连接,获取用户输入的关于第一按键的第一按下事件后,判断在基于第一按下事件中的第一时间戳统计的预设时长内是否收到关于第一按键的抬起事件,如果未收到,则说明第一按键为长按键(即用户长时间地按压该键),向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件,然后向被控端发送第一模拟按下事件,被控端直接基于接收的第一按下事件和第一模拟按下事件,实现第一按键值的连续输入,避免了现有方案中因通讯网络质量不稳定引起的抬起事件传输延迟,使得被控端误将按键单击操作判断为长按操作(或者连击操作),优化了控制端和被控端之间的按键事件的传输方式以及传输效果,提高了控制端和被控端交互过程中针对按键长按操作的判断准确性,提高了被控端中键值连续性输入的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种控制端与被控端的交互示意图;
图2为本公开实施例提供的一种按键事件处理方法的流程图;
图3为本公开实施例提供的另一种按键事件处理方法的流程图;
图4为本公开实施例提供的一种关于键值和时间戳的更新记录的方法流程图;
图5为本公开实施例提供的一种关于确定长按键的方法流程图;
图6为本公开实施例提供的一种按键事件处理装置的结构示意图;
图7为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为本公开实施例提供的一种控制端与被控端的交互示意图,用于对本公开实施例进行示例性说明,但不应理解为对本公开实施例的具体限定。控制端(Client端)和被控端(Server端)可以是任意能够进行交互的不同电子设备,并且,控制端上连接有键盘,支持用户的按键操作,控制端可以将按键事件(包括按键的按下事件和抬起事件)传输至被控端,使得被控端根据接收的按键事件实现相应键值的输入。示例性地,控制端可以是连接有实体键盘的无线屏设备,被控端可以是移动终端,例如手机,无线屏设备可以基于用户在键盘上的按键操作,将按键事件传输至手机,手机接收按键事件,从而实现相应键值的输入。
区别于现有技术中被控端接收特定按键的按下事件,并基于该按下事件的时间戳进行一定时长统计,然后根据统计时长确定当前按键是否为长按键,如果是,则利用按下事件模拟软件(具体可以根据现有实现原理实现)生成当前按键的模拟按下事件(即模拟生成多个按下事件),从而基于多个模拟按下事件实现当前按键值的连续性输入,直至接收到当前按键的抬起事件为止,在本公开实施例中,如图1所示,被控端中的模拟按下事件的生成功能被预先禁止(例如在Android系统中可以通过调用POLICY_FLAG_DISABLE_KEY_REPEAT实现,具体可以参考现有技术),被控端直接根据接收的特定按键的按下事件和模拟按下事件,实现特定按键值的连续性输入,直至接收到该特定按键的抬起事件为止,被控端中无需执行长按键的判断以及按下事件的模拟生成操作,而是将长按键的判断以及按下事件的模拟生成操作均在控制端执行,也即区别于现有技术中控制端只向被控端发送所接收的按下事件和抬起事件的情况,本公开实施例中控制端向被控端发送所接收的按下事件、模拟生成的模拟按下事件以及接收的抬起事件,从而避免现有方案中因通讯网络质量不稳定引起的抬起事件传输延迟,使得被控端误将按键单击操作判断为长按操作(或者连击操作),提高了按键长按操作的判断准确性以及键值连续性输入的准确性。
图2为本公开实施例提供的一种按键事件处理方法的流程图,该方法可以由按键事件处理装置执行,该装置可以采用软件和/或硬件实现,并可集成在控制端,该控制端可以是任意能够与被控端交互的电子设备,例如控制端是连接有实体键盘的无线屏设备,被控端是移动终端,具体地,可以根据实际应用场景而定,本公开实施例不作具体限定。
如图2所示,本公开实施例提供的按键事件处理方法可以包括:
S200、与被控端建立通讯连接。
控制端可以基于现有方案中可适用的任意通讯协议,与被控端建立通讯连接,以实现控制端和被控端之间的数据交互,例如界面内容的同步展示、按键事件数据的传输等。关于通讯连接的具体实现原理本公开实施例不作具体限定。
示例性地,控制端可以基于无线网络,例如WiFi网络,与被控端建立通讯连接,并显示被控端的界面内容。基于无线网络的通讯方式,提高了控制端和被控端之间的通讯便捷性。控制端和被控端建立无线连接后,可以在自身显示屏幕上同步显示被控端的界面内容,被控端中的键值输入操作同时会在控制端的显示屏幕上进行显示。以控制端为连接有实体键盘的无线屏设备,被控端为移动终端为例,无线屏设备与移动终端建立无线连接后,无线屏设备可以同步显示移动终端中的界面内容,然后无线屏设备根据用户在键盘上的按键操作,获取按键按下事件并向移动终端发送,从而实现移动终端中的键值输入的远程控制。
S201、获取用户输入的关于第一按键的第一按下事件。
其中,第一按键可以是连接在控制端的键盘上的任意按键。控制端可以根据用户在键盘上的触控操作,例如用户点击键盘上的H键,或者根据用户针对键盘的语音控制操作,例如用户输入语音“输入键盘上的H键”,生成第一按下事件(即对应键盘上按键的按下操作)并存储在键盘设备文件中,然后可以从该键盘设备文件中获取第一按下事件。在Android/Linux系统中,键盘上的按下事件或抬起事件中均包括时间戳(用于表征当前事件对应的时间)、事件类型(即按下或抬起)、事件代码、事件数值等元素。
S202、基于第一按下事件中的第一时间戳,统计预设时长。
控制端在获取第一按下事件后,基于第一事件中的第一时间戳,例如将第一时间戳作为时间起点,统计预设时长,例如预设时长可以设置为统计500ms,具体可以根据需求灵活设置,然后根据在预设时长内是否获取到关于第一按键的第一抬起事件(即对应键盘上按键的抬起操作,表示用户结束键值的输入),确定当前第一按键是否为长按键。
S203、响应于在预设时长内未获取到关于第一按键的第一抬起事件,向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件。
如果在预设时长内未获取到关于第一按键的第一抬起事件,表示当前第一按键是长按键,也即用户希望连续输入第一按键值(与第一按键对应的键值),控制端向被控端发送关于第一按键的第一按下事件,同时执行关于第一按键的按下事件模拟操作。示例性地,基于关于第一按键的第一按下事件中的时间戳t0,调用定时器进行预设时长统计,如果统计时长达到500ms时,未获取到关于第一按键的第一抬起事件,则表示当前第一按键为长按键,向被控端发送第一按下事件,同时基于时刻t0+500ms继续进行计时,每隔预设时间间隔(具体可以根据需求而定,例如可以设置为50ms),模拟生成一次关于第一按键的第一模拟按下事件,并向被控端发送该第一模拟按下事件,例如可以在时刻t0+550ms模拟生成一次第一模拟按下事件并向被控端发送,在时刻t0+600ms模拟生成一次第一模拟按下事件并向被控端发送,根据时间间隔重复执行前述模拟按下事件的生成以及发送,直至获取到关于第一按键的第一抬起事件或者获取到关于其他按键的按键事件,则结束前述模拟按下事件的生成以及发送操作。当控制端中结束前述模拟按下事件的生成以及发送操作后,被控端中相应地结束键值的输入操作。即本公开实施例提供的按键事件处理方法还可以包括:响应于在预设时长之后获取到关于第一按键的第一抬起事件,结束第一模拟按下事件的生成;向被控端发送第一抬起事件;其中,第一抬起事件用于指示被控端结束第一按键值的输入。
如果在预设时长内获取到关于第一按键的第一抬起事件,表示当前第一按键不是长按键,而是短按键(或称为单击键),控制端中无需执行模拟按下事件的生成以及发送,可以直接将获取的第一抬起事件发送至被控端,使得被控端结束第一按键值的输入操作。
S204、向被控端发送第一模拟按下事件。
其中,被控端用于基于第一按下事件和第一模拟按下事件,执行第一按键值的连续输入操作。一次第一按下事件和一次第一模拟按下事件,分别对应被控端中第一按键值的一次输入操作。第一按下事件和一次第一模拟按下事件的事件总数决定了被控端中第一按键值的连续输入次数。
控制端在向被控端发送按键事件(包括第一按下事件、第一模拟按下事件或者第一抬起事件)的过程中,可以确定传输按键事件对应的网络Socket句柄,然后将按键事件写入,并传输至被控端。
在一种可选实施方式中,在获取用户输入的关于第一按键的第一按下事件之后,本公开实施例提供的按键事件处理方法还可以包括:
记录第一按下事件中的第一按键值和第一时间戳;
响应于获取到关于第二按键的第二按下事件,利用第二按下事件中的第二按键值和第二时间戳,更新在先记录的第一按键值和第一时间戳,以基于第二时间戳重新统计预设时长。
其中,第二按键是指区别于第一按键的任意按键。控制端在获取到关于第一按键的第一按下事件之后,可以记录第一按下事件中的第一按键值和第一时间戳,以便于后续调用定时器执行预设时长的统计操作、按下事件的模拟生成以及发送操作,确保第一按键是否为长按键的判断准确性、第一按键值的连续输入的准确性。如果在第一按下事件之后获取到关于第二按键的第二按下事件,说明用户的按键操作存在变更,需要利用第二按下事件中的第二按键值和第二时间戳更新在先记录的信息,并基于第二按下事件中的第二时间戳进行预设时长的统计,以确定第二按键是否为长按键,如果是,则需要模拟生成关于第二按键的第二模拟按下事件,并向被控端发送。
进一步地,在本公开实施例中,可以在基于第一时间戳统计的预设时长之后,获取关于第二按键的第二按下事件;相应地,本公开实施例提供的按键事件处理方法还可以包括:响应于获取到关于第二按键的第二按下事件,结束第一模拟按下事件的生成。即获取关于第二按键的第二按下事件后,如果控制端中已经执行了关于第一按键的第一模拟按下事件的生成操作,则结束第一模拟按下事件的生成,相应地,被控端中也将不再接收到第一模拟按下事件,并在接收到第一抬起事件后结束第一按键值的输入操作,此时,控制端基于第二按下事件中的第二时间戳进行预设时长的统计,以确定第二按键是否为长按键。通过结束第一模拟按下事件的生成,可以避免被控端中连续键值输入的错误执行。
当然,如果在基于第一时间戳统计的预设时长之内,获取关于第二按键的第二按下事件,此时控制端中未执行关于第一按键的第一模拟按下事件的生成操作,控制端在更新键值和时间戳的记录后,可以直接基于第二按下事件中的第二时间戳进行预设时长的统计。
在一种可选实施方式中,利用第二按下事件中的第二按键值和第二时间戳,更新在先记录的第一按键值和第一时间戳,包括:如果第二按键包括多个,例如用户同时按下了多个按键,则利用多个第二按下事件中目标按下事件中的目标键值和目标时间戳,更新在先记录的第一按键值和第一时间戳,以基于目标时间戳重新统计预设时长;其中,目标按下事件是与多个第二按键中最后按下的按键对应的按下事件。即如果用户在一定时间内同时执行了多个按键操作,则将用户最后执行的按键操作对应的按键作为有效的目标按键,该目标按键对应的按下事件作为目标按下事件,后续需要判断目标按键是否为长按键。
并且,在确定多个第二按键中的目标按键为长按键后,用户抬起任意按键,即控制端获取到关于任意按键的抬起事件后,可以停止关于目标按键的模拟按下事件的生成与发送操作,相应地,被控端在收到抬起事件后结束关于目标按键值的输入操作。
图3为本公开实施例提供的另一种按键事件处理方法的流程图,用于结合图2对本公开实施例进行示例性说明,但不应理解为对本公开实施例的具体限定。如图3所示,控制端可以根据用户按键操作,生成按键事件(包括按下事件和抬起事件),并存储在键盘设备文件中,然后控制端可以从键盘设备文件中获取当前按下事件数据,包括键值信息(即键值和时间戳),并更新记录的键值和时间戳,同时可以调用定时器读取当前更新记录的按下键值以及对应的时间戳,并基于时间戳进行预设时长的统计,以判断当前按下键值对应的按键是否为长按键;如果是,则利用按下事件模拟软件,基于预设时长的结束时刻,按照预设时间间隔执行关于当前按下键值的模拟按下事件的生成;模拟按下事件生成后,可以基于传输按键事件对应的网络Socket句柄,将模拟按下事件数据写入,并传输至被控端;如果确定当前按下键值对应的按键不是长按键,则利用定时器基于下次新记录的时间戳,再次判断新记录的键值对应的按键是否为长按键。重复执行前述操作,从而实现在被控端连续输入多个相同键值。
图4为本公开实施例提供的一种关于键值和时间戳的更新记录的方法流程图,如图4所示,控制端可以从键盘设备文件中不断获取按键事件数据,然后根据当前获取的按键事件中的类型数据确定当前按键事件是否为按下事件,如果是,则可以利用当前获取的按下事件中的键值和时间戳更新在先已经记录的键值和时间戳,其中,控制端还可以进行键值的比对操作,如果键值相同,则可以只更新时间戳;如果不是,即当前按键事件可能是抬起事件,则可以清除在先已经记录的键值和时间戳,意味着在先键值对应的模拟按下事件的生成操作可以结束,进而相应的键值输入操作在被控端中可以结束。
图5为本公开实施例提供的一种关于确定长按键的方法流程图,用于对本公开实施例进一步进行示例性说明,但不应理解为对本公开实施例的具体限定。如图5所示,控制端可以从键盘设备文件中获取关于特定按键的按下事件数据,然后根据按下事件数据中的键值数据确定键值是否为空,如果为空,则表示按下事件对应的用户按键操作无效,可以结束流程;如果键值不为空,则继续判断按下事件数据中的键值和已经确定为长按键的键值是否相等,如果相等,则表示当前需要继续在被控端输入长按键的键值,控制端可以继续向被控端发送该长按键的按下事件;如果按下事件数据中的键值和已经确定为长按键的键值不相等,则可以清除在先记录的长按键的键值和时间戳,同时记录按下事件数据中的键值和时间戳,基于按键事件数据中的时间戳统计预设时长,例如500ms,在时长统计过程中,可以判断系统的实时时间戳和按下事件数据中的时间戳的差值是否大于500ms,如果大于500ms,且在该期间内未获取到关于特定按键的抬起事件数据,则可以确定该特定按键为新的长按键;如果在小于500ms的期间内获取到关于特定按键的抬起事件数据,则可以确定该特定按键不是长按键。
在本公开实施例中,控制端获与被控端建立通讯连接,取用户输入的关于第一按键的第一按下事件后,判断在基于第一按下事件中的第一时间戳统计的预设时长内是否收到关于第一按键的抬起事件,如果未收到,则说明第一按键为长按键(即用户长时间地按压该键),向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件,然后向被控端发送第一模拟按下事件,被控端直接基于接收的第一按下事件和第一模拟按下事件,实现第一按键值的连续输入,避免了现有方案中因通讯网络质量不稳定引起的抬起事件传输延迟,使得被控端误将按键单击操作判断为长按操作(或者连击操作),优化了控制端和被控端之间的按键事件的传输方式以及传输效果,提高了控制端和被控端交互过程中针对按键长按操作的判断准确性,提高了被控端中键值连续性输入的准确性,改善了无线键盘用户的使用体验,尤其是在通讯网络环境差的场景下,本公开实施例的方案优势尤为明显。并且,本公开实施例的技术方案与现有被控端中输入系统的匹配度很高,整体修改量很小,便于系统的集成。
图6为本公开实施例提供的一种按键事件处理装置的结构示意图,该装置可以采用软件和/或硬件实现,并可集成在控制端,该控制端可以是任意能够与被控端交互的电子设备,例如控制端是连接有实体键盘的无线屏设备,被控端是移动终端,具体地,可以根据实际应用场景而定,本公开实施例不作具体限定。
如图6所示,本公开实施例提供的按键事件处理装置600可以包括通讯连接建立模块601、第一按下事件获取模块602、第一预设时长统计模块603、事件发送与模拟模块604和第一模拟按下事件发送模块605,其中:
通讯连接建立模块601,用于与被控端建立通讯连接;
第一按下事件获取模块602,用于获取用户输入的关于第一按键的第一按下事件;
第一预设时长统计模块603,用于向被控端发送第一按下事件,并基于第一按下事件中的第一时间戳,统计预设时长;
事件发送与模拟模块604,用于响应于在预设时长内未获取到关于第一按键的第一抬起事件,向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件;
第一模拟按下事件发送模块605,用于向被控端发送第一模拟按下事件;
其中,被控端用于基于第一按下事件和第一模拟按下事件,执行第一按键值的连续输入操作。
可选地,被控端中的模拟按下事件的生成功能被预先禁止。
可选地,本公开实施例提供的按键事件处理装置600还包括:
第一模拟按下事件生成结束模块,用于响应于在预设时长之后获取到关于第一按键的第一抬起事件,结束第一模拟按下事件的生成;
第一抬起事件发送模块,用于向被控端发送第一抬起事件;其中,第一抬起事件用于指示被控端结束第一按键值的输入。
可选地,本公开实施例提供的按键事件处理装置600还包括:
按键值和时间戳记录模块,用于记录第一按下事件中的第一按键值和第一时间戳;
按键值和时间戳更新模块,用于响应于获取到关于第二按键的第二按下事件,利用第二按下事件中的第二按键值和第二时间戳,更新在先记录的第一按键值和第一时间戳,以基于第二时间戳重新统计预设时长。
可选地,本公开实施例提供的按键事件处理装置600还包括:
第二按下事件接收模块,用于在基于第一时间戳统计的预设时长之后,获取关于第二按键的第二按下事件;
第二模拟按下事件生成结束模块,用于响应于获取到关于第二按键的第二按下事件,结束第一模拟按下事件的生成。
可选地,按键值和时间戳更新模块,具体用于:
响应于获取到关于第二按键的第二按下事件,如果第二按键包括多个,则利用多个第二按下事件中目标按下事件中的目标键值和目标时间戳,更新在先记录的第一按键值和第一时间戳,以基于目标时间戳重新统计预设时长;
其中,目标按下事件是与多个第二按键中最后按下的按键对应的按下事件。
可选地,通讯连接建立模块601具体用于:
基于无线网络,与被控端建立通讯连接,并显示被控端的界面内容。
本公开实施例所提供的按键事件处理装置可执行本公开实施例所提供的任意按键事件处理方法,具备执行方法相应的功能模块和有益效果。本公开装置实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
图7为本公开实施例提供的一种电子设备的结构示意图,用于对实现本公开实施例提供的按键事件处理方法的电子设备进行示例性说明。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机、智能家居设备、可穿戴电子设备、服务器等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和占用范围带来任何限制。
如图7所示,电子设备700包括一个或多个处理器701和存储器702。
处理器701可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备700中的其他组件以执行期望的功能。
存储器702可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器701可以运行程序指令,以实现本公开实施例提供的按键事件处理方法,还可以实现其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
其中,本公开实施例提供的按键事件处理方法可以包括:与被控端建立通讯连接;获取用户输入的关于第一按键的第一按下事件;基于第一按下事件中的第一时间戳,统计预设时长;响应于在预设时长内未获取到关于第一按键的第一抬起事件,向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件;向被控端发送第一模拟按下事件。应当理解,电子设备700还可以执行本公开方法实施例提供的其他可选实施方案。
在一个示例中,电子设备700还可以包括:输入装置703和输出装置704,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置703还可以包括例如键盘、鼠标等等。
该输出装置704可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置704可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备700中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备700还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开实施例还提供一种计算机程序产品,其包括计算机程序或计算机程序指令,计算机程序或计算机程序指令在被计算设备执行时使得计算设备实现本公开实施例所提供的任意按键事件处理方法。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户电子设备上执行、作为一个独立的软件包执行、部分在用户电子设备上且部分在远程电子设备上执行、或者完全在远程电子设备上执行。
此外,本公开实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被计算设备执行时使得计算设备实现本公开实施例所提供的任意按键事件处理方法。
其中,本公开实施例提供的按键事件处理方法可以包括:与被控端建立通讯连接;获取用户输入的关于第一按键的第一按下事件;基于第一按下事件中的第一时间戳,统计预设时长;响应于在预设时长内未获取到关于第一按键的第一抬起事件,向被控端发送第一按下事件,并基于预设时长的结束时刻,按照预设时间间隔生成关于第一按键的第一模拟按下事件;向被控端发送第一模拟按下事件。应当理解,计算机程序指令在被计算设备执行时,还可以使得计算设备实现本公开方法实施例提供的其他可选实施方案。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种按键事件处理方法,其特征在于,包括:
与被控端建立通讯连接;
获取用户输入的关于第一按键的第一按下事件;
基于所述第一按下事件中的第一时间戳,统计预设时长;
响应于在所述预设时长内未获取到关于所述第一按键的第一抬起事件,向所述被控端发送所述第一按下事件,并基于所述预设时长的结束时刻,按照预设时间间隔生成关于所述第一按键的第一模拟按下事件;
向所述被控端发送所述第一模拟按下事件。
2.根据权利要求1所述的方法,其特征在于,所述被控端中的模拟按下事件的生成功能被预先禁止。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于在所述预设时长之后获取到关于所述第一按键的第一抬起事件,结束所述第一模拟按下事件的生成;
向所述被控端发送所述第一抬起事件;其中,所述第一抬起事件用于指示所述被控端结束所述第一按键值的输入。
4.根据权利要求1所述的方法,其特征在于,在获取用户输入的关于第一按键的第一按下事件之后,还包括:
记录所述第一按下事件中的所述第一按键值和所述第一时间戳;
响应于获取到关于第二按键的第二按下事件,利用所述第二按下事件中的第二按键值和第二时间戳,更新在先记录的所述第一按键值和所述第一时间戳,以基于所述第二时间戳重新统计所述预设时长。
5.根据权利要求4所述的方法,其特征在于,还包括:
在基于所述第一时间戳统计的预设时长之后,获取关于所述第二按键的第二按下事件;
响应于获取到关于所述第二按键的第二按下事件,结束所述第一模拟按下事件的生成。
6.根据权利要求4所述的方法,其特征在于,利用所述第二按下事件中的第二按键值和第二时间戳,更新在先记录的所述第一按键值和所述第一时间戳,包括:
如果所述第二按键包括多个,则利用多个第二按下事件中目标按下事件中的目标键值和目标时间戳,更新在先记录的所述第一按键值和所述第一时间戳,以基于所述目标时间戳重新统计所述预设时长;
其中,所述目标按下事件是与多个所述第二按键中最后按下的按键对应的按下事件。
7.根据权利要求1所述的方法,其特征在于,与被控端建立通讯连接,包括:
基于无线网络,与所述被控端建立通讯连接,并显示所述被控端的界面内容。
8.一种按键事件处理装置,其特征在于,包括:
通讯连接建立模块,用于与被控端建立通讯连接;
第一按下事件获取模块,用于获取用户输入的关于第一按键的第一按下事件;
第一预设时长统计模块,用于基于所述第一按下事件中的第一时间戳,统计预设时长;
事件发送与模拟模块,用于响应于在所述预设时长内未获取到关于所述第一按键的第一抬起事件,向所述被控端发送所述第一按下事件,并基于所述预设时长的结束时刻,按照预设时间间隔生成关于所述第一按键的第一模拟按下事件;
第一模拟按下事件发送模块,用于向所述被控端发送所述第一模拟按下事件。
9.一种电子设备,其特征在于,包括存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备实现权利要求1-7中任一项所述的按键事件处理方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现权利要求1-7中任一项所述的按键事件处理方法。
CN202110258214.9A 2021-03-09 2021-03-09 按键事件处理方法、装置、设备和存储介质 Active CN112882850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110258214.9A CN112882850B (zh) 2021-03-09 2021-03-09 按键事件处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110258214.9A CN112882850B (zh) 2021-03-09 2021-03-09 按键事件处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112882850A true CN112882850A (zh) 2021-06-01
CN112882850B CN112882850B (zh) 2023-08-25

Family

ID=76054003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110258214.9A Active CN112882850B (zh) 2021-03-09 2021-03-09 按键事件处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112882850B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116095A (zh) * 2021-11-10 2022-03-01 百度在线网络技术(北京)有限公司 一种输入方法、装置、电子设备、介质及产品
CN114413441A (zh) * 2022-01-04 2022-04-29 珠海格力电器股份有限公司 按键控制方法、装置、计算机设备、存储介质和程序产品
CN115471958A (zh) * 2021-06-10 2022-12-13 深圳市怡化时代科技有限公司 长按键的处理方法、装置、设备和介质
CN116700592A (zh) * 2022-09-27 2023-09-05 荣耀终端有限公司 一种单击操作的响应方法、电子设备及芯片系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105451077A (zh) * 2015-12-02 2016-03-30 Tcl集团股份有限公司 一种基于模块电视的按键处理方法及系统
WO2017063282A1 (zh) * 2015-10-13 2017-04-20 北京奇虎科技有限公司 终端数据分享系统、方法和输入设备、行车记录仪终端
CN112073778A (zh) * 2019-06-10 2020-12-11 海信视像科技股份有限公司 显示设备及按键传递的容错方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017063282A1 (zh) * 2015-10-13 2017-04-20 北京奇虎科技有限公司 终端数据分享系统、方法和输入设备、行车记录仪终端
CN105451077A (zh) * 2015-12-02 2016-03-30 Tcl集团股份有限公司 一种基于模块电视的按键处理方法及系统
CN112073778A (zh) * 2019-06-10 2020-12-11 海信视像科技股份有限公司 显示设备及按键传递的容错方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115471958A (zh) * 2021-06-10 2022-12-13 深圳市怡化时代科技有限公司 长按键的处理方法、装置、设备和介质
CN115471958B (zh) * 2021-06-10 2023-11-10 深圳市怡化时代科技有限公司 长按键的处理方法、装置、设备和介质
CN114116095A (zh) * 2021-11-10 2022-03-01 百度在线网络技术(北京)有限公司 一种输入方法、装置、电子设备、介质及产品
CN114116095B (zh) * 2021-11-10 2023-07-21 百度在线网络技术(北京)有限公司 一种输入方法、装置、电子设备、介质及产品
CN114413441A (zh) * 2022-01-04 2022-04-29 珠海格力电器股份有限公司 按键控制方法、装置、计算机设备、存储介质和程序产品
CN114413441B (zh) * 2022-01-04 2023-05-12 珠海格力电器股份有限公司 按键控制方法、装置、计算机设备、存储介质和程序产品
CN116700592A (zh) * 2022-09-27 2023-09-05 荣耀终端有限公司 一种单击操作的响应方法、电子设备及芯片系统
CN116700592B (zh) * 2022-09-27 2024-04-19 荣耀终端有限公司 一种单击操作的响应方法、电子设备及芯片系统

Also Published As

Publication number Publication date
CN112882850B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
CN112882850B (zh) 按键事件处理方法、装置、设备和存储介质
CN107896243B (zh) 网络数据加载的加速方法、装置、存储介质及移动终端
CN106708407A (zh) 防止触摸按键误触发的方法、装置及移动终端
US8832578B1 (en) Visual clipboard on soft keyboard
CN108027725B (zh) 指导终端设备操作的方法、装置和设备
CN110955631A (zh) 文件访问追踪方法、装置、存储介质及终端
CN110955584B (zh) 块设备访问追踪方法、装置、存储介质及终端
CN110222288B (zh) 页面展示方法、装置及存储介质
US20160162182A1 (en) Method and Terminal for Varying Keys of a Touch Keyboard
CN111372115A (zh) 应用程序的访问方法及装置、通讯系统
JP2020500352A (ja) 情報表示方法、端末及び記憶媒体
CN108933968B (zh) 一种消息格式的转换方法、装置、存储介质及安卓终端
WO2021017853A1 (zh) 推荐操作序列的方法、终端及计算机可读介质
CN114281288A (zh) 投屏处理方法、装置及电子设备
CN110889074B (zh) 页面显示方法、装置、存储介质及电子设备
CN105893624B (zh) 一种数据显示方法以及系统
CN110825303A (zh) 一种交互方法、装置、终端及计算机可读介质
CN113312119B (zh) 信息同步方法及装置、计算机可读存储介质、电子设备
CN108062401B (zh) 应用推荐方法、装置及存储介质
CN104024991A (zh) 使用单个输入源支持不同的事件模型
CN109107148B (zh) 控制方法、装置、存储介质及移动终端
CN113312122A (zh) 虚拟键盘调用方法、装置、计算机存储介质及电子设备
CN115760494A (zh) 基于数据处理的针对房地产营销的服务优化方法及装置
US20150234546A1 (en) Method for Quickly Displaying a Skype Contacts List and Computer Program Thereof and Portable Electronic Device for Using the Same
CN113157162B (zh) 一种用于撤回会话消息的方法、设备、介质及程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant