CN104125328A - 一种消息处理方法、装置及移动终端 - Google Patents
一种消息处理方法、装置及移动终端 Download PDFInfo
- Publication number
- CN104125328A CN104125328A CN201310157456.4A CN201310157456A CN104125328A CN 104125328 A CN104125328 A CN 104125328A CN 201310157456 A CN201310157456 A CN 201310157456A CN 104125328 A CN104125328 A CN 104125328A
- Authority
- CN
- China
- Prior art keywords
- input
- message
- kinds
- input equipment
- module
- 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
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种消息处理方法、装置及移动终端。所述方法包括:消息处理系统获取至少两种输入设备输入的消息;所述消息处理系统依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息;所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给上层应用。通过上述方式,本发明能够实现在至少两种输入设备同时输入消息时,将所述至少两种输入设备输入的消息进行区分,使得上层应用能够识别所述至少两种输入设备输入的消息并做出正确的响应,实现系统同时对多种不同输入设备的兼容,改善用户体验。
Description
技术领域
本发明涉及移动通信技术领域,特别是涉及一种消息处理方法、装置及移动终端。
背景技术
如今,移动终端已受到越来越多用户的欢迎,特别是安卓(Android)操作系统的移动终端,由于该系统具有开源性及免费性,受到众多IT厂商的青睐,以及受到众多用户的热捧。通常,移动终端中上层应用的运行都是基于用户操作。具体而言,用户对移动终端的输入设备(例如,键盘、触摸屏等)进行相关操作,移动终端获取输入设备根据用户的操作输入的相应消息,并发送给当前处于活动状态的上层应用,上层应用识别出输入设备的消息并执行相应的动作。例如,用户点击移动终端触摸屏上的文件管理图标的位置,输入设备产生用户点击的触摸屏的位置信息,移动终端获取输入设备输入的用户点击触摸屏的位置信息,并发送给当前界面上的上层应用,上层应用获得该位置信息,并根据预先对该位置信息对应的操作的定义,确定在点击该位置时,做出执行该位置对应操作的响应。
然而现有技术中,Android操作系统默认是不能支持多种输入设备同时使用的。当移动终端存在两种或以上的输入设备同时输入消息时,Android操作系统并不会对所述两种或以上的输入设备输入的消息作区分,而直接将两种或以上的输入设备输入的消息当作单一的输入消息或者只将其中一个输入消息发送给当前活动的上层应用。在这种情况下,就会造成输入消息的混乱,上层应用无法区分该输入消息且无法做出正确的响应。例如,用户按压通话按键的同时,也点击触摸屏的相册图标位置,Android操作系统同时获取到键盘输入的按压通话按键的消息和触摸屏输入的位置消息,并默认将获取的两条输入消息当作为一条输入消息,直接发送给上层应用。上层应用无法将接收到的输入消息区分为键盘输入的按压通话按键的消息和触摸屏输入的位置消息,且对整合的输入消息对应的操作并无预设的定义,故无法做出正确的响应,降低了用户体验。
发明内容
本发明主要解决的技术问题是提供一种消息处理方法、装置及移动终端,能够实现在至少两种输入设备输入消息时,将所述至少两种输入设备输入的消息进行区分,使得上层应用能够识别所述至少两种输入设备输入的消息并做出正确的响应,实现系统同时对多种不同输入设备的兼容,改善用户体验。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种消息处理方法,包括以下步骤:消息处理系统获取至少两种输入设备输入的消息,其中,所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识;所述消息处理系统依据各自的所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息;所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给上层应用。
其中,所述消息处理系统依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息的步骤包括:所述消息处理系统的输入分发模块判断所述至少两种输入设备的设备标识是否相同;如果所述至少两种输入设备的设备标识不相同,则所述输入分发模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,以使所述输入分发模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述上层应用。
其中,所述消息处理系统获取至少两种输入设备输入的消息的步骤具体为:所述消息处理系统的输入分发模块获取来自消息处理系统的输入读取模块的至少两种输入设备输入的消息。
其中,消息处理系统获取至少两种输入设备输入的消息的步骤具体为:所述消息处理系统获取所有输入设备输入的消息。
其中,所述消息处理系统为安卓操作系统的消息处理系统。
为了解决上述技术问题,本发明采用另一种技术方案:提供一种消息处理装置,包括获取模块、区分模块和分发模块,其中,所述获取模块,用于使消息处理系统获取至少两种输入设备输入的消息,并将所述至少两种输入设备输入的消息发送给所述区分模块;所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识;所述区分模块,用于使所述消息处理系统依据各自的所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给所述分发模块;所述分发模块,用于使所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给上层应用。
其中,所述区分模块包括判断单元及区分单元,其中,所述判断单元,用于使所述消息处理系统的输入分发模块判断所述至少两种输入设备的设备标识是否相同,并将判断结果发送给所述区分单元;所述区分单元,用于在所述至少两种输入设备的设备标识不相同时,使所述输入分发模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给所述分发模块。
其中,所述获取模块,具体用于使所述输入分发模块获取来自所述消息处理系统的输入读取模块的至少两种输入设备输入的消息。
其中,所述消息处理装置是安装在安卓操作系统的消息处理装置。
为了解决上述技术问题,本发明采用再一技术方案,提供一种移动终端,包括上述任一项所述的消息处理装置和消息处理系统。
本发明的有益效果是:本发明通过在至少两种输入设备同时输入消息时,将所述至少两种输入设备输入的消息按照不同的设备标识进行区分,并将区分后的输入消息分开发送给处于上层应用,使得上层应用能够对所述至少两种输入设备输入的消息进行识别,并分别做出正确的响应,实现了系统同时对多种不同输入设备的兼容,且改善了用户体验。
附图说明
图1是现有Android操作系统的消息处理系统的结构示意图;
图2是本发明移动终端一实施方式的结构示意图;
图3是本发明消息处理方法一实施方式的流程图;
图4是本发明消息处理方法另一实施方式的流程图;
图5是本发明消息处理装置一实施方式的结构示意图;
图6是本发明消息处理装置另一实施方式的结构示意图。
具体实施方式
下面结合附图和具体的实施方式进行说明。
图1是现有Android操作系统的消息处理系统的结构示意图。请参阅图1,现有Android操作系统的消息处理系统包括事件处理中心(EventHub)模块110、输入读取(InputReader)模块120、输入分发(InputDispatcher)模块130及输入管理(InputManager)模块140。
EventHub模块110是Android操作系统中所有事件的中央处理站,用于管理Android操作系统中所有可以识别的输入设备的输入事件,同时在增加或删除输入设备时也产生相应的输入事件。EventHub模块110也支持查询输入设备当前的状态。而且EventHub模块110还可跟踪输入设备的情况,例如输入设备的类别、输入设备支持哪些按键等。
具体地,EventHub模块110通过getEvents函数获取系统可识别的输入设备的输入事件。当系统可识别的输入设备进行输入事件时,EventHub模块110根据输入设备的Linux硬件驱动模块(图未示出)检测到有输入设备进行输入事件,则对输入设备的输入事件具体内容进行读取,获得所述输入设备的原始输入数据,其中,所述原始输入数据包括输入事件发生的时间、发生输入事件的设备、输入设备发生输入事件的位置值等。
InputReader模块120用于获取EventHub模块110的原始输入数据,并将所述原始输入数据进行处理,生成Android操作系统上层应用可识别的输入消息,并将生成的输入设备输入的消息发送至InputReader模块120。例如,在移动终端触摸屏上触碰一下,作为输入设备,触摸屏产生相应的输入事件,EventHub模块110获取触摸屏在某个位置发生触碰的原始输入数据,InputReader模块120获取所述原始输入数据后,处理生成上层应用可识别的像素值定义所述触碰位置的输入消息,以使上层应用根据所述输入消息中的像素值确定需要进行的操作。InputReader模块120的大部分工作是在InputReader线程中完成,InputReader线程受InputManager模块140管理,可接受InputDispatcher线程的查询。
InputDispatcher模块130用于获取InputReader模块120处理后的输入设备输入的消息,并将所述输入设备输入的消息发送给当前处于活动状态的上层应用(图未示出)。InputDispatcher模块130的大部分工作是在InputDispatcher线程中完成的。
InputManager模块140是Android操作系统事件处理的核心,负责管理InputReader线程和InputDispatcher线程,即管理InputReader模块120的输入数据读取及处理,以及管理InputDispatcher模块130对InputReader模块120处理后的输入设备输入的消息的获取及向上层应用的发送。
在现有的Android操作系统的消息处理机制中,如果同时有至少两种输入设备进行输入事件时,EventHub模块110读取到至少两种输入设备的原始输入数据。InputManager模块140启动InputReader线程和InputDispatcher线程。InputReader模块120从EventHub模块110中读取所述至少两种输入设备的原始输入数据,并将所述原始输入数据分别处理生成上层应用可识别的所述至少两种输入设备输入的消息。InputDispatcher模块130从InputReader模块120中获得所述至少两种输入设备输入的消息。由于现有的InputDispatcher模块130并不会主动识别输入消息的输入设备类型,而将发生输入事件的不同输入设备输入的消息自动当作同一种输入设备输入的消息,打包发送给上层应用。上层应用预设有输入的消息与操作响应的对应定义,由于上层应用接收到的输入的消息是混乱的,导致上层应用无法寻找出该混乱的输入的消息对应定义的操作响应,即上层应用无法识别该输入的消息并做出正确的响应。
图2是本发明移动终端一实施方式的结构示意图。请参阅图2,本发明的移动终端包括消息处理系统210及消息处理装置220,其中,消息处理系统210包括事件处理中心(EventHub)模块211、输入读取(InputReader)模块212、输入分发(InputDispatcher)模块213及输入管理(InputManager)模块214。具体地,EventHub模块211、InputReader模块212、InputDispatcher模块213及InputManager模块214如图1所示的EventHub模块110、InputReader模块120、InputDispatcher模块130及InputManager模块140,故在此不再赘述,请参阅图1以及上述相关文字的说明。
区别于现有技术,在有至少两种输入设备进行输入事件时,EventHub模块211读取到至少两种输入设备的原始输入数据。InputManager模块214启动InputReader线程和InputDispatcher线程。InputReader模块212从EventHub模块211中读取所述至少两种输入设备的原始输入数据,并将所述原始输入数据分别处理生成上层应用能够识别的所述至少两种输入设备输入的消息。在监测到InputReader模块212生成至少两种输入设备输入的消息时,消息处理装置220执行InputDispatcher模块213,即发生了至少两种输入设备的输入事件,就是消息处理装置220执行处理的触发条件,使得InputDispatcher模块213获取至少两种输入设备输入的消息,依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给移动终端的上层应用。
当然,在其他实施方式中,消息处理装置还可以在InputReader模块读取所述至少两种输入设备的原始输入数据后,执行InputReader模块,使得InputReader模块生成所述至少两种输入设备输入的消息,并依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。消息处理装置再执行InputDispatcher模块,使得InputDispatcher模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给移动终端的上层应用。
图3是本发明的消息处理方法一实施方式的流程图。请参阅图3,本发明的消息处理方法包括以下步骤:
步骤S301:移动终端的消息处理系统获取至少两种输入设备输入的消息,其中,所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识。
在有至少两种移动终端可识别的输入设备进行输入事件时,本发明中的移动终端消息处理系统读取所述至少两种输入设备输入的消息。其中,所述输入的消息包括能够区别所述输入设备的设备标识,例如移动终端预先给输入设备分配的身份标识(Identity,简称ID)、输入设备的类型或者输入设备的名称等。
通常,所述输入设备为在移动终端安装硬件驱动,通过输入设备的硬件驱动能够向移动终端输入数据和信息,使得移动终端能够识别外界的输入事件的设备。例如,移动终端的触摸屏、键盘、麦克风等。但在其他应用实施方式中,输入设备也可为移动终端预先设置不同输入ID的可执行输入事件的外界执行体。例如,对应触控式移动终端的手、手写笔等,移动终端对手及手写笔自定义或者由用户预定义不同输入ID,在用手或手写笔执行输入事件时,移动终端获取的输入的消息包括区别标识为手或者手写笔对应的输入ID,使得移动终端能够根据所述输入ID将手或者手写笔输入的消息进行区分,使得上层应用实现不同的操作。
步骤S302:所述消息处理系统依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。
本发明中的消息处理系统从所述至少两种输入设备输入的消息中读取所述输入设备的设备标识,根据所述输入设备的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。其中,第一输入设备输入消息即为所述至少两种输入设备其中一种输入设备输入的消息,第二输入设备输入消息即为所述至少两种输入设备另一种输入设备输入的消息;或者,消息处理系统根据预定义的输入ID进行区分,如在手和手写笔同时操作时,消息处理系统根据对手和手写笔预定义的的不同输入ID,将手写笔输入的消息作为第一输入设备输入消息,手输入的消息作为第二输入设备输入消息。如果同时输入的输入设备超过三种,则以此类推,按照不同输入设备的设备标识区分为不同设备输入的消息。
步骤S303:所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端的上层应用。
本发明中的消息处理系统将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息后,再将第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端当前处于活动状态的上层应用、或者后台运行的相应的上层应用,以使接收到输入的消息的上层应用能够根据输入的消息做出正确的响应。
区别于现有消息处理系统将至少两种输入设备输入的消息不进行区分,直接整合打包为一条消息发送给上层应用,本发明实施方式在有至少两种输入设备输入的消息时,将所述至少两种输入设备输入的消息按照不同输入设备的设备标识进行区分,并将区分后的输入的消息分开发送给处于活动状态的上层应用或者后台运行的相应的上层应用,使得上层应用能够对所述至少两种输入设备输入的消息进行识别,并分别做出正确的响应,实现了系统同时对多种不同输入设备的兼容,且改善了用户体验。
在本发明一实施方式中,所述消息处理系统最多能够支持五种不同输入设备的同时使用,即所述消息处理系统最多能够获取并区分五种输入设备同时输入消息。但需要说明的是,消息处理系统最多能够支持五种不同输入设备的同时使用,这与移动终端当前操作系统的兼容能力有关。在其他移动终端操作系统兼容能力允许的实施方式中,本发明中的消息处理系统可以支持多于五种的不同输入设备的同时使用,即不管当前同时进行输入事件的输入设备有多少种,所述消息处理系统均能获取所有进行输入事件的输入设备输入的消息,并按照输入设备类型进行区分并分开发送给相应的上层应用,故在此不作限定。
图4是本发明消息处理方法另一实施方式的流程图。请参阅图4,本发明消息处理方法包括以下步骤:
步骤S401:InputDispatcher模块获取来自InputReader模块的至少两种输入设备输入的消息。
在至少两种输入设备进行输入事件时,消息处理系统中的EventHub模块读取到至少两种输入设备的原始输入数据。InputManager模块启动InputReader线程和InputDispatcher线程。InputReader模块从EventHub模块中读取所述至少两种输入设备的原始输入数据,并将所述原始输入数据分别处理生成上层应用能够识别的所述至少两种输入设备输入的消息。在监测到InputReader模块生成至少两种输入设备输入的消息时,本发明中的InputDispatcher模块获取来自InputReader模块的至少两种输入设备输入的消息。
步骤S402:InputDispatcher模块判断所述至少两种输入设备的设备标识是否相同。
本发明中的InputDispatcher模块获取来自InputReader模块的至少两种输入设备输入的消息后,从所述至少两种输入设备输入的消息中读取所述输入设备的设备标识,判断所述至少两种输入设备的设备标识是否相同,如果相同,则执行步骤S405;如果不相同,则执行步骤S403。
步骤S403:InputDispatcher模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。
本发明中的InputDispatcher模块根据所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。其中,第一输入设备输入消息即为所述至少两种输入设备其中一种输入设备输入的消息,第二输入设备输入消息即为所述至少两种输入设备另一种输入设备输入的消息;或者,消息处理系统根据预定义的输入ID进行区分,如在手和手写笔同时操作时,消息处理系统根据对手和手写笔预定义的的不同输入ID,将手写笔输入的消息作为第一输入设备输入消息,手输入的消息作为第二输入设备输入消息。如果同时使用的输入设备超过三种,则以此类推,按照不同输入设备的设备标识区分为不同设备输入的消息。
步骤S404:InputDispatcher模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端的上层应用。
本发明中的InputDispatcher模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息后,再将第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端当前处于活动状态的上层应用、或者后台运行的相应的上层应用,以便上层应用能够区分不同所述输入设备输入的消息,并做出正确的响应。
结束流程。
步骤S405:InputDispatcher模块将设备标识相同的所述至少两种输入设备输入的消息直接发送给所述移动终端的上层应用。
如果所述至少两种输入设备的设备标识相同,则本发明中的InputDispatcher模块获得的输入消息为同一输入设备类型的消息,所述输入的消息不会发生混乱,上层应用能够进行识别。本发明中的InputDispatcher模块将输入的消息不进行区分,直接打包发送给上层应用,以便上层应用接收到所述输入消息并做出正确的响应。
区别于现有的InputDispatcher模块将至少两种输入设备输入的消息不进行区分,直接整合打包为一条消息发送给上层应用,本发明实施方式在有至少两种输入设备输入的消息时,将所述至少两种输入设备输入的消息按照不同输入设备的设备标识进行区分,并将区分后的输入的消息分开发送给处于活动状态的上层应用或者后台运行的相应的上层应用,使得上层应用能够对所述至少两种输入设备输入的消息进行识别,并分别做出正确的响应,实现了系统同时对多种不同输入设备的兼容,且改善了用户体验。
此外,在本发明消息处理方法再一实施方式中,将输入的消息进行区分的步骤还可在InputReader模块中执行。在至少两种输入设备同时使用时,InputReader模块从EventHub模块中读取所述至少两种输入设备的原始输入数据,并将所述原始输入数据分别处理生成上层应用能够识别的所述至少两种输入设备输入的消息后,InputReader模块依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。所述InputDispatcher模块至少获取来自InputReader模块的第一输入设备输入消息和第二输入设备输入消息,并分开发送给相应的上层应用。本实施方式与本发明上一实施方式虽执行步骤的主体有所不同,但其步骤的具体执行是相同,故对本实施方式的具体说明请参阅上一实施方式的文字说明,在此不再赘述。
图5是本发明消息处理装置一实施方式的结构示意图。请参阅图5,本发明消息处理装置包括获取模块510、区分模块520和分发模块530。
获取模块510用于使消息处理系统获取至少两种输入设备输入的消息,并将所述至少两种输入设备输入的消息发送给区分模块520,其中,所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识。
具体地,在有至少两种移动终端可识别的输入设备进行输入事件时,获取模块510使消息处理系统读取所述至少两种输入设备输入的消息。其中,所述输入的消息包括能够区别所述输入设备的设备标识,例如移动终端预先给输入设备分配的ID、输入设备的类型或者输入设备的名称等。或者,输入设备也可为移动终端预先设置不同输入ID的可执行输入事件的外界执行体。例如,对应触控式移动终端的手、手写笔等,移动终端对手及手写笔自定义或者由用户预定义不同输入ID,在用手或手写笔执行输入事件时,获取模块510获取的输入的消息包括区别标识为手或者手写笔对应的输入ID。
区分模块520用于使所述消息处理系统依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给分发模块530。
区分模块520使所述消息处理系统从所述至少两种输入设备输入的消息中读取所述输入设备的设备标识,根据所述输入设备的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。其中,第一输入设备输入消息即为所述至少两种输入设备其中一种输入设备输入的消息,第二输入设备输入消息即为所述至少两种输入设备另一种输入设备输入的消息;或者,消息处理系统根据预定义的输入ID进行区分,如在手和手写笔同时操作时,消息处理系统根据对手和手写笔预定义的的不同输入ID,将手写笔输入的消息作为第一输入设备输入消息,手输入的消息作为第二输入设备输入消息。如果同时输入的输入设备超过三种,则以此类推,按照不同输入设备的设备标识区分为不同设备输入的消息。
分发模块530用于使所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端的上层应用。
分发模块530使所述消息处理系统将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息后,再将第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端当前处于活动状态的上层应用、或者后台运行的相应的上层应用,以便接收到输入的消息的上层应用能够根据输入消息做出正确的响应。
区别于现有消息处理系统将至少两种输入设备输入的消息不进行区分,直接整合打包为一条消息发送给上层应用,本发明实施方式在有至少两种输入设备输入的消息时,将所述至少两种输入设备输入的消息按照不同输入设备的设备标识进行区分,并将区分后的输入的消息分开发给处于活动状态的上层应用或者后台运行的相应的上层应用,使得上层应用能够对所述至少两种输入设备输入的消息进行识别,并分别做出正确的响应,实现了系统同时对多种不同输入设备的兼容,且改善了用户体验。
在本发明一实施方式中,所述消息处理装置最多能够支持五种不同输入设备的同时使用,即所述消息处理装置最多能够获取并区分五种输入设备同时输入消息。但需要说明的是,消息处理装置最多能够支持五种不同输入设备的同时使用,这与移动终端当前操作系统的兼容能力有关,在其他移动终端操作系统兼容能力允许的实施方式中,本发明中的消息处理装置可以支持多于五种的不同输入设备的同时使用,即不管当前同时进行输入事件的输入设备有多少种,所述消息处理装置的获取模块均能获取所有进行输入事件的输入设备输入的消息,且消息处理装置按照输入设备类型对输入消息进行区分并分开发送给相应的上层应用,故在此不作限定。
图6是本发明的消息处理装置另一实施方式的结构示意图。请参阅图6,本发明的消息处理装置包括获取模块610、区分模块620和分发模块630,其中,区分模块620包括判断单元621及区分单元622。在本实施方式中,消息处理装置应用于Android操作系统。
获取模块610用于使InputDispatcher模块获取来自消息处理系统中的InputReader模块的至少两种输入设备输入的消息,并将所述至少两种输入设备输入的消息发送给判断单元621。
具体地,在有至少两种输入设备进行输入事件时,消息处理系统中的EventHub模块读取到至少两种输入设备的原始输入数据。InputManager模块启动InputReader线程和InputDispatcher线程。InputReader模块从EventHub模块中读取所述至少两种输入设备的原始输入数据,并将所述原始输入数据分别处理生成所述至少两种输入设备输入的消息。在监测InputReader模块生成至少两种输入设备输入的消息时,获取模块610执行InputDispatcher模块,使得InputDispatcher模块获取来自InputReader模块的至少两种输入设备输入的消息。
判断单元621用于使InputDispatcher模块判断所述至少两种输入设备的设备标识是否相同,并将判断结果发送给区分单元622。
获取模块610使InputDispatcher模块获得来自InputReader模块的至少两种输入设备输入的消息后,判断单元621执行InputDispatcher模块,使得InputDispatcher模块从所述至少两种输入设备输入的消息中读取所述输入设备的设备标识,并判断所述至少两种输入设备的设备标识是否相同。
区分单元622用于使InputDispatcher模块在所述至少两种输入设备的设备标识不相同时,将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给分发模块630。
区分单元622执行InputDispatcher模块,使得InputDispatcher模块在所述至少两种输入设备的设备标识不相同时,根据所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息。其中,第一输入设备输入消息即为所述至少两种输入设备其中一种输入设备输入的消息,第二输入设备输入消息即为所述至少两种输入设备另一种输入设备输入的消息;或者,InputDispatcher模块根据预定义的输入ID进行区分,如在手和手写笔同时操作时,InputDispatcher模块根据系统对手和手写笔预定义的的不同输入ID,将预定义手写笔输入的消息为第一输入设备输入消息,手输入的消息为第二输入设备输入消息。如果同时使用的输入设备超过三种,则以此类推,按照不同输入设备的设备标识区分为不同设备输入的消息。
进一步地,在所述至少两种输入设备的设备标识相同时,则表示当前消息处理装置获得的输入的消息为同一输入设备类型的消息,所述输入的消息不会发生混乱,上层应用能够进行识别。此时,区分单元622执行InputDispatcher模块,使得InputDispatcher模块将所述输入的消息不进行区分,直接打包发送给上层应用,以便上层应用接收到所述输入的消息并做出正确的响应。
分发模块630用于使InputDispatcher模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述移动终端的上层应用。
区别于现有的消息处理系统将至少两种输入设备输入的消息不进行区分,直接整合打包为一条消息发送给上层应用,本发明实施方式在有至少两种输入设备输入的消息时,将所述至少两种输入设备输入的消息按照不同输入设备的设备标识进行区分,并将区分后的输入消息分开发送给处于活动状态的上层应用或者后台运行的相应的上层应用,使得上层应用能够对所述至少两种输入设备输入的消息进行识别,并分别做出正确的响应,实现了系统同时对多种不同输入设备的兼容,且改善了用户体验。
此外,在本发明的消息处理装置再一实施方式中,获取模块用于在InputReader模块读取所述至少两种输入设备的原始输入数据后,执行InputReader模块,使得InputReader模块生成所述至少两种输入设备输入的消息,并将所述至少两种输入设备输入的消息发送给区分模块。区分模块执行InputReader模块,使得InputReader模块依据各自的设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送分发模块。在InputManager模块监测到InputReader模块获得输入设备输入的消息,并启动InputDispatcher线程后,分发模块执行InputDispatcher模块,使得InputDispatcher模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发发送给移动终端的上层应用。
本发明还提供一种移动终端,所述移动终端包括上述实施方式中的消息处理装置和消息处理系统,其具体实施方式请参阅图2、图4、图5及相关文字说明,在此不再赘述。
需要说明的是,全文实施方式均以应用于Android操作系统为例对本发明进行了详细的说明,但不能认为本发明仅限于应用于Android操作系统,在其他实施方式中,本发明可应用于其他原生消息处理机制不能支持多种输入设备的同时使用的操作系统,例如:塞班(Symbian)操作系统、IOS操作系统、Windows Phone操作系统等,在此不作限定。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种消息处理方法,其特征在于,包括以下步骤:
消息处理系统获取至少两种输入设备输入的消息,其中,所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识;
所述消息处理系统依据各自的所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息;
所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给上层应用。
2.根据权利要求1所述的消息处理方法,其特征在于,所述消息处理系统依据各自的所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息的步骤包括:
所述消息处理系统的输入分发模块判断所述至少两种输入设备的设备标识是否相同;
如果所述至少两种输入设备的设备标识不相同,则所述输入分发模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,以使所述输入分发模块将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给所述上层应用。
3.根据权利要求2所述的消息处理方法,其特征在于,
所述消息处理系统获取至少两种输入设备输入的消息的步骤具体为:所述消息处理系统的输入分发模块获取来自所述消息处理系统的输入读取模块的至少两种输入设备输入的消息。
4.根据权利要求2所述的消息处理方法,其特征在于,
所述消息处理系统获取至少两种输入设备输入的消息的步骤具体为:所述消息处理系统获取所有输入设备输入的消息。
5.根据权利要求1-4任一项所述的消息处理方法,其特征在于,
所述消息处理系统为安卓操作系统的消息处理系统。
6.一种消息处理装置,其特征在于,所述消息处理装置包括获取模块、区分模块和分发模块,其中,
所述获取模块,用于使消息处理系统获取至少两种输入设备输入的消息,并将所述至少两种输入设备输入的消息发送给所述区分模块;所述至少两种输入设备输入的消息包括能够区别所述输入设备的设备标识;
所述区分模块,用于使所述消息处理系统依据各自的所述设备标识将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给所述分发模块;
所述分发模块,用于使所述消息处理系统将至少所述第一输入设备输入消息和第二输入设备输入消息分开发送给上层应用。
7.根据权利要求6所述的消息处理装置,其特征在于,所述区分模块包括判断单元及区分单元,其中,
所述判断单元,用于使所述消息处理系统的输入分发模块判断所述至少两种输入设备的设备标识是否相同,并将判断结果发送给所述区分单元;
所述区分单元,用于在所述至少两种输入设备的设备标识不相同时,使所述输入分发模块将所述至少两种输入设备输入的消息至少区分为第一输入设备输入消息和第二输入设备输入消息,并将至少所述第一输入设备输入消息和第二输入设备输入消息发送给所述分发模块。
8.根据权利要求7所述的消息处理装置,其特征在于,
所述获取模块,具体用于使所述输入分发模块获取来自所述消息处理系统的输入读取模块的至少两种输入设备输入的消息。
9.根据权利要求6-8任一项所述的消息处理装置,其特征在于,
所述消息处理装置是安装在安卓操作系统的消息处理装置。
10.一种移动终端,包括消息处理系统,其特征在于,还包括权利要求6-9任一项所述的消息处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310157456.4A CN104125328B (zh) | 2013-04-28 | 2013-04-28 | 一种消息处理方法、装置及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310157456.4A CN104125328B (zh) | 2013-04-28 | 2013-04-28 | 一种消息处理方法、装置及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104125328A true CN104125328A (zh) | 2014-10-29 |
CN104125328B CN104125328B (zh) | 2017-01-25 |
Family
ID=51770592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310157456.4A Active CN104125328B (zh) | 2013-04-28 | 2013-04-28 | 一种消息处理方法、装置及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104125328B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125328B (zh) * | 2013-04-28 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种消息处理方法、装置及移动终端 |
CN109218171A (zh) * | 2018-11-01 | 2019-01-15 | 苏州达家迎信息技术有限公司 | 一种信息发送方法、客户端、存储介质及设备 |
CN109391541A (zh) * | 2018-11-01 | 2019-02-26 | 苏州达家迎信息技术有限公司 | 一种信息发送方法、装置、存储介质及设备 |
CN112462994A (zh) * | 2020-12-02 | 2021-03-09 | 广州朗国电子科技有限公司 | 多个飞鼠光标不同颜色显示方法、装置、存储介质及终端 |
CN113360011A (zh) * | 2021-06-10 | 2021-09-07 | Tcl通讯(宁波)有限公司 | 触控笔优化方法、系统、移动终端及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829283A (zh) * | 2005-03-02 | 2006-09-06 | 亚洲光学股份有限公司 | 手持式影像撷取系统及其控制方法 |
CN102262441A (zh) * | 2011-07-21 | 2011-11-30 | 中兴通讯股份有限公司 | 输入方法及装置 |
CN102566914A (zh) * | 2010-12-16 | 2012-07-11 | Lg电子株式会社 | 移动终端及其操作控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722332B (zh) * | 2012-05-31 | 2015-07-29 | 华为终端有限公司 | 一种触屏设备及其操作处理触发的方法 |
CN104125328B (zh) * | 2013-04-28 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种消息处理方法、装置及移动终端 |
-
2013
- 2013-04-28 CN CN201310157456.4A patent/CN104125328B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829283A (zh) * | 2005-03-02 | 2006-09-06 | 亚洲光学股份有限公司 | 手持式影像撷取系统及其控制方法 |
CN102566914A (zh) * | 2010-12-16 | 2012-07-11 | Lg电子株式会社 | 移动终端及其操作控制方法 |
CN102262441A (zh) * | 2011-07-21 | 2011-11-30 | 中兴通讯股份有限公司 | 输入方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125328B (zh) * | 2013-04-28 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种消息处理方法、装置及移动终端 |
CN109218171A (zh) * | 2018-11-01 | 2019-01-15 | 苏州达家迎信息技术有限公司 | 一种信息发送方法、客户端、存储介质及设备 |
CN109391541A (zh) * | 2018-11-01 | 2019-02-26 | 苏州达家迎信息技术有限公司 | 一种信息发送方法、装置、存储介质及设备 |
CN112462994A (zh) * | 2020-12-02 | 2021-03-09 | 广州朗国电子科技有限公司 | 多个飞鼠光标不同颜色显示方法、装置、存储介质及终端 |
CN112462994B (zh) * | 2020-12-02 | 2022-09-02 | 广州朗国电子科技股份有限公司 | 多个飞鼠光标不同颜色显示方法、装置、存储介质及终端 |
CN113360011A (zh) * | 2021-06-10 | 2021-09-07 | Tcl通讯(宁波)有限公司 | 触控笔优化方法、系统、移动终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104125328B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107534653B (zh) | 基于云的跨设备的数字笔配对 | |
CN103778079B (zh) | 可共用usb装置的双操作系统体系结构及共用方法 | |
CN103593238A (zh) | 控制应用程序编程接口调用的方法及装置 | |
CN105045454A (zh) | 一种终端防误触方法及终端 | |
CN104125328A (zh) | 一种消息处理方法、装置及移动终端 | |
CN104992094A (zh) | 一种终端操作方法及终端 | |
CN105160227A (zh) | 远程指纹验证方法和用户终端及指纹验证系统 | |
CN104049887A (zh) | 数据传输方法及其电子装置及其手写数据的输入装置 | |
CN104731500A (zh) | 一种信息处理方法及电子设备 | |
CN105208675A (zh) | 一种基于智能手表的无线连接方法及智能手表 | |
CN104572348A (zh) | 一种终端 | |
WO2017032009A1 (zh) | 一种解锁方法及移动终端 | |
CN105159589A (zh) | 一种图案解锁的方法及终端 | |
CN103294175A (zh) | 一种电子设备及其自动切换输入模式的方法 | |
CN103473035A (zh) | 截屏方法和装置 | |
CN104169854A (zh) | 一种图标排列方法和终端 | |
US20180088766A1 (en) | Folder creating and cancelling method and system applied on touch screen | |
CN105357207A (zh) | 一种同步书写方法、移动终端、服务器及系统 | |
CN102868797B (zh) | 移动终端及其操作方法 | |
CN102769495B (zh) | 一种光纤接入网设备通信方法、装置及系统 | |
CN103533085A (zh) | 一种远程控制计算机的方法及系统 | |
CN112711955A (zh) | 一种nfc的信息传输方法、信息传输装置及终端 | |
KR101528669B1 (ko) | 복수 콘텐츠 타임라인의 병합과 디스플레이를 위한 사용자 인터페이스 및 그 방법 | |
CN105549822A (zh) | 一种图标移动方法及移动终端 | |
CN104144076A (zh) | 一种流程错误控制方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |