一种空鼠按键和遥控按键的操作事件的转换方法以及控制设备与流程

文档序号:11198779阅读:674来源:国知局
一种空鼠按键和遥控按键的操作事件的转换方法以及控制设备与流程

本申请涉及电子技术领域,特别涉及一种空鼠按键和遥控按键的操作事件的转换方法。本申请同时还涉及一种控制设备。



背景技术:

目前,随着安卓(android)技术的不断发展,产品的定制化越来越受到关注。用户对产品使用的不断要求,也使得产品的易用性越来越成为核心竞争力。

随着操控功能复杂化和设备自身简单化的双重技术进步,越来越多的功能需要越来越简便的操控方式来实现,因此,同样的操作方式,在不同的应用场景下,就可以实现不同的操作处理。例如,遥控器自身具有按键,按键的按下或抬起对应了具体按键事件的触发或结束,但是,由于遥控器在具体场景中充当了遥控器功能,所以,按键的按下或抬起又对应了鼠标的点击或释放。

现有技术中,设置了具体的映射规则,但具体映射规则只有在指定的应用场景被触发时才会生效,相反,如果没有相应的应用场景的触发,映射规则将处于未被激活的状态,例如,当遥控器被设置为启动空鼠功能时,遥控器中按键的按下就会被映射为鼠标的点击操作。

但是,当该映射关系一旦确定激活,则按键事件都只会被转换成已定义的点击事件,即使是正常的按键操作也无法实现。因此,这种操作事件转换方法具有一定限制,在转换过程上不够灵活。



技术实现要素:

本申请提供了一种空鼠按键和遥控按键的操作事件的转换方法以及控制设备,用以解决现有技术中事件转换过程具有限制且不够灵活的问题,所述转换方法包括如下步骤:

在接收到第一操作事件的操作指示时,基于当前应用所处的页面标识信息,判断所述第一操作事件是否需要转换为第二操作事件;

如果判断结果为是,将所述第一操作事件转换为第二操作事件;

其中,当所述第一操作事件具体为按键操作时,所述第二操作事件为空鼠操作,当所述第一操作事件具体为空鼠操作时,所述第二操作事件为按键操作。

相应的,本申请还提出了一种控制设备,包括:

接收模块,用于接收第一操作事件的操作指示;

第一判断模块,用于基于当前应用所处的页面标识信息,判断所述第一操作事件是否需要转换为第二操作事件;

转换模块,用于在所述第一判断模块的判断结果为是时,将所述第一操作事件转换为第二操作事件;

其中,当所述第一操作事件具体为按键操作时,所述第二操作事件为空鼠操作,当所述第一操作事件具体为空鼠操作时,所述第二操作事件为按键操作。

由此可见,通过应用本申请的技术方案,对于空鼠按键和遥控按键的操作事件存在转换可能的场景,可以在接收到第一操作事件的操作指示时,根据相应的转换规则,进行第一操作事件与第二操作事件之间的转换处理操作。由于转换规则自身内容的可设置性,以及其在不同应用场景之间切换的便捷性,避免了一种转换关系确定后,在任何场景下,操作事件都会被固定转换成已定义的另一种操作事件的问题。因此,这种空鼠按键和遥控按键的操作事件的转换方法能够按照需求进行设置,转换过程灵活。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一个实施例的事件的转换方法的示意性流程图。

图2为本申请一个实施例的控制模块的示意性流程图。

图3为本申请一个实施例的事件的转换流程的示意性流程图。

图4为本申请一个实施例的设备的示意框图。

具体实施方式

如背景技术所述,现有的事件转换方法中,当映射关系一旦确定,则任何场景下,按键事件都只会被转换成已定义的点击事件。这样的事件转换方法具有局限性,在转换过程中不够灵活。

有鉴于此,本申请提出了一种空鼠按键和遥控按键的操作事件的转换方法,可以在接收到第一操作事件的操作指示时,根据相应的转换规则,进行第一操作事件与第二操作事件之间的转换处理操作。由于转换规则自身内容的可设置性,以及其在不同应用场景之间切换的便捷性,避免了一种转换关系确定后,在任何场景下,操作事件都会被固定转换成已定义的另一种操作事件的问题。因此,这种空鼠按键和遥控按键的操作事件的转换方法能够按照需求进行设置,转换过程灵活。。

本申请可以在现有的点击事件的读取和映射流程中进行改进。现有的映射可以在synthesizebuttonkeys方法中进行,根据现有的synthesizebuttonkeys方法的处理规则,我们可以得出,该方法只是简单的将amotion_event_button_back(代表鼠标右键)、amotion_event_button_forward(代表鼠标快进键)和amotion_event_button_menu(代表鼠标中键)分别映射为按键事件中的back(返回)键、forward(快进)键和menu(菜单)键。因此,该方法具有局限性,转换过程不够灵活。

如图1所示,为本申请一个实施例的事件的转换方法的示意性流程图。具体地,本申请技术方案包括如下步骤:

s101,在接收到第一操作事件的操作指示时,基于当前应用所处的页面标识信息,判断所述第一操作事件是否需要转换为第二操作事件。

在具体的应用场景中,当所述第一操作事件具体为按键操作时,所述第二操作事件为空鼠操作,当所述第一操作事件具体为空鼠操作时,所述第二操作事件为按键操作。

如果判断结果为是,执行步骤s102;

如果判断结果为否,执行步骤s103。

其中,本步骤的具体判断过程具体包括:

在接收到第一操作事件的操作指示时,判断所述第一操作事件所对应的应用场景的标识信息与当前应用所处的页面标识信息是否匹配;

如果匹配,则确定所述第一操作事件不需要转换为第二操作事件;

如果不匹配,则确定所述第一操作事件需要转换为第二操作事件。

应理解,本申请可以在现有的映射过程中进行改进,也可以采用新的映射方法,本申请并不限于此。

应用可以设置转换信息,使得该转换信息能够满足不同场景的转换要求。应用可以设置在某个场景中,鼠标的点击事件需要转换成按键事件。举例来说,在电视上的直播界面下,用户正在全屏播放电视节目,按下遥控器的确认键,电视端在接收到确认键后,会调出节目列表。这样,用户可以通过在节目列表上选择频道进行快速的频道切换。但是,如果用户此时正在使用蓝牙遥控器的空鼠功能,那么在按下遥控器的确定键时,遥控器实际发给电视端的是鼠标的点击事件。这样,电视端就无法响应遥控器正常的确认键的功能。用户必须取消空鼠功能后,点击遥控器的确定键才可以正常发送确认键到电视端,而后电视端响应确定键的功能。本申请中,应用可以在直播界面进行设置,使得该场景下鼠标的点击事件需要转换成按键事件。这样,当用户在使用蓝牙遥控器的空鼠功能时,不需要取消空鼠功能,就可以将鼠标的点击事件转换成确定键,使得电视端能够响应确认键的功能。

还应理解,本申请可以应用在电视端,也可以应用在其他设备中。

可选地,作为一个实施例,设置的转换信息可以保存在系统的服务inputmanagerservice中。本申请的方法中,可以通过jni(javanativeinterface)技术,从c++层对保存的转换信息进行访问,从而获取该设置的转换信息。本申请还可以通过其他保存和获取方法来保存和获取设置的转换信息,本申请并不限于此。

转换信息可以包括用于指示点击事件是否转换为按键事件的第一转换信息。可选地,作为一个实施例,在具体实现方法中,该第一转换信息可以用布尔型变量表示,也可以用其他表示方法,只要能指示点击事件是否转换为按键事件即可。

s102,根据所述转换规则,将所述第一操作事件转换为第二操作事件。

需要说明的是,本步骤执行之前,还包括:

判断所述第一操作事件是操作周期的开始还是结束;

如果判断结果为所述第一操作事件是操作周期的开始,则标识当前的操作周期状态为开始状态;

如果判断结果为所述第一操作事件是操作周期的结束,则标识当前的操作周期状态为结束状态;

其中,所述按键操作的操作内容为按下按键时,对应按键操作周期的开始,所述按键操作的操作内容为抬起按键时,对应按键操作周期的结束,所述空鼠操作的操作内容为点击鼠标按键时,对应空鼠操作周期的开始,所述空鼠操作的操作内容为释放鼠标按键时,对应空鼠操作周期的结束。

s103,保持所述第一操作事件的操作内容不变。

需要说明的是,本步骤的操作还包括判断当前的操作周期状态是否为结束状态,如果不是,指示结束当前的操作周期。

由此可见,本申请可以在某些场景下,将点击事件转换为按键事件,或将按键事件转换为点击事件。在另外一些场景下,则不需要进行转换。本申请的事件转换方法不受局限,可以由应用自由设置,事件的转换过程比较灵活。

本申请中事件的转换方法的实现中,还包括其他现有的常规步骤,下文中将具体结合图2和图3以及上述现有的点击事件的读取和映射流程对本申请的具体方案进行详细描述。

本申请的事件转换方法中,可以在系统中添加一个控制模块,在现有的点击事件的读取和映射流程中添加一个转换模块。控制模块用于控制转换模块是否进行点击事件到按键事件的转换以及转换为什么按键事件。转换模块用于在控制模块的控制下,进行事件转换。

具体地,如图2所示,图2为本申请一个实施例的控制模块的示意性流程图。控制模块可以存在于系统的服务inputmanagerservice中,在该服务中提供接口给应用使用。这样,应用可以通过该接口对转换信息(包括第一转换信息和目标键值)进行设置,经过设置的转换信息可以保存在inputmangerservice中。

如下接口和代码设置了是否转换鼠标左键和待转换的目标键值,转换鼠标左键与转换其他按键相类似,为避免重复,本申请不一一列举。下面本文以鼠标左键的转换为例进行详细说明。

其中,convert参数为第一转换信息,指示了鼠标左键是否进行事件转换。keycode参数为目标键值,指示了鼠标左键待转换成的按键事件。

在本方法中,控制模块设置鼠标左键转化,通过setmouseleftbutton方法设置转换信息,并记录该转换信息。在本方法中,该转换信息可以包括第一转换信息和目标键值。

可选地,作为一个实施例,本申请中的方法可以通过jni(javanativeinterface)技术,从c++层对保存的值进行访问,转换模块进而可以访问到上层应用设置的转换信息。这样,保证了控制模块对转换模块的控制作用。

如图3所示,转换模块可以存在于现有点击事件的读取和映射流程中的inputreader中,在点击事件读取后的派发流程中调用。本申请中的事件转换方法提出了几个接口用于实现控制模块与转换模块的通信以及转换模块进行的转换过程。其中,needchangeleft方法用于获取转换信息,从转换信息中判断是否需要进行事件转换和获取目标键值。setincycle方法用于设置点击事件转化处于流程中。在该流程中个,一次按键派发流程以akey_event_action_down状态开始,以akey_event_action_up状态结束。getincycle方法用于获取当前状态是否处于事件转换流程中。

具体地,如图3所示,图3为本申请一个实施例的事件的转换流程的示意性流程图。包括:

301,转换模块接收点击事件。

302,获取转换信息。

具体地,转换模块在接收到点击事件后,首先利用jni技术通过c++层的nativeinputmanager中的needchangeleft方法来访问inputmangerservice,从而获取到控制模块中的转换信息。该转换信息可以包括第一转换信息、鼠标的原始键值和目标按键的目标键值。

303,判断是否需要转换。

转换模块根据转换信息,判断是否需要转换。

304,执行synthesizebuttonkeyscontrol方法。

当转换模块判断需要转换时,进入304执行synthesizebuttonkeyscontrol方法。synthesizebuttonkeyscontrol方法可以见上文代码描述。

305,判断事件转换流程是否处于开始状态。

具体地,当需要进行转换时,执行步骤304。在synthesizebuttonkeyscontrol方法中,如果是按下的鼠标左键(akey_event_action_down),则该转换流程处于开始状态,此时执行步骤306。

306,设置按键派发开始。

具体地,当步骤305中判断转换流程处于开始状态时,首先调用nativeinputmanager中的setincycle方法将按键正在派发周期中的标记设置为真(true),该标记标示该轮按键派发已经开始。

307,按键转换。

在步骤306之后进行按键转换,转换后的按键键值为通过needchangeleft方法获取的目标键值,状态为akey_event_action_down。

308,发送按键。

调用nativeinputmanger中的notifykey方法将转换后的按键发送出去,最终按键被发送到上层进行处理。

类似的,在synthesizebuttonkeyscontrol方法中,如果是弹起的鼠标左键(akey_event_action_up),则该转换流程不处于开始状态,此时执行步骤309。

309,设置按键派发结束。

具体地,当步骤305中判断转换流程不处于开始状态时,首先调用nativeinputmanager中的setincycle方法将按键正在派发周期中的标记设置为真(false),该标记标示该轮按键派发已经结束。

310,按键转换。

在步骤309之后进行按键转换,转换后的按键键值为通过needchangeleft方法获取的目标键值,状态为akey_event_action_up。

311,发送按键。

调用nativeinputmanger中的notifykey方法将转换后的按键发送出去,最终按键被发送到上层进行处理。

另外,在步骤303中,当转换模块根据转换信息,判断不需要转换。执行步骤312。

312,判断当前状态是否处于事件转换流程中。

如果不需要进行按键转换时,通过调用nativeinputmanager中的getincycle方法判断上一个转换后的发送周期是否结束。如果没有结束,执行步骤304。在304的synthesizebuttonkeyscontrol方法中,发送一个按键,按键键值为之前记录的鼠标键值,状态为akey_event_action_up,进而结束此轮发送周期。

由此可见,通过应用本申请的技术方案,可以在接收到第一操作事件的操作指示时,根据相应的转换规则,进行第一操作事件与第二操作事件之间的转换处理操作。由于转换规则自身内容的可设置性,以及其在不同应用场景之间切换的便捷性,避免了一种转换关系确定后,在任何场景下,操作事件都会被固定转换成已定义的另一种操作事件的问题。因此,这种空鼠按键和遥控按键的操作事件的转换方法能够按照需求进行设置,转换过程灵活。

为达到以上技术目的,本申请还提出了一种设备,如图4所示,该设备包括:

接收模块41,用于接收第一操作事件的操作指示;

第一判断模块42,用于基于当前应用所处的页面标识信息,判断所述第一操作事件是否需要转换为第二操作事件;

转换模块43,用于在所述第一判断模块42的判断结果为是时,根据所述转换规则,将所述第一操作事件转换为第二操作事件;

其中,当所述第一操作事件具体为按键操作时,所述第二操作事件为空鼠操作,当所述第一操作事件具体为空鼠操作时,所述第二操作事件为按键操作。

优选的,第一判断模块42,具体用于:

在接收到第一操作事件的操作指示时,判断所述第一操作事件所对应的应用场景的标识信息与当前应用所处的页面标识信息是否匹配;

如果匹配,则确定所述第一操作事件不需要转换为第二操作事件;

如果不匹配,则确定所述第一操作事件需要转换为第二操作事件。

优选的,所述控制设备,还包括状态标识模块44,用于:

在所述转换模块将所述第一操作事件转换为第二操作事件之前,判断所述第一操作事件是操作周期的开始还是结束;

如果判断结果为所述第一操作事件是操作周期的开始,则标识当前的操作周期状态为开始状态;

如果判断结果为所述第一操作事件是操作周期的结束,则标识当前的操作周期状态为结束状态;

其中,所述按键操作的操作内容为按下按键时,对应按键操作周期的开始,所述按键操作的操作内容为抬起按键时,对应按键操作周期的结束,所述空鼠操作的操作内容为点击鼠标按键时,对应空鼠操作周期的开始,所述空鼠操作的操作内容为释放鼠标按键时,对应空鼠操作周期的结束。

优选的,所述控制设备,还包括第二判断模块45,用于:

在所述第一判断模块42的判断结果为否时,保持所述第一操作事件的操作内容不变,并根据所述状态标识模块的状态判断当前的操作周期状态是否为结束状态,如果不是,指示结束当前的操作周期。

由此可见,通过应用本申请的技术方案,可以在接收到第一操作事件的操作指示时,根据相应的转换规则,进行第一操作事件与第二操作事件之间的转换处理操作。由于转换规则自身内容的可设置性,以及其在不同应用场景之间切换的便捷性,避免了一种转换关系确定后,在任何场景下,操作事件都会被固定转换成已定义的另一种操作事件的问题。因此,这种空鼠按键和遥控按键的操作事件的转换方法能够按照需求进行设置,转换过程灵活。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1