CN110308938A - 插拔外设事件的管理方法和装置 - Google Patents
插拔外设事件的管理方法和装置 Download PDFInfo
- Publication number
- CN110308938A CN110308938A CN201910586469.0A CN201910586469A CN110308938A CN 110308938 A CN110308938 A CN 110308938A CN 201910586469 A CN201910586469 A CN 201910586469A CN 110308938 A CN110308938 A CN 110308938A
- Authority
- CN
- China
- Prior art keywords
- peripheral hardware
- request message
- subscription request
- hardware event
- plug
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供一种插拔外设事件的管理方法和装置。本发明的方法包括:接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。从而可以根据应用程序的需求重新触发插拔外设事件,使插拔外设事件的触发更加灵活,进而使应用程序中基于该插拔外设事件的业务顺利处理。
Description
技术领域
本发明实施例涉及操作系统技术领域,尤其涉及一种插拔外设事件的管理方法和装置。
背景技术
当外部设备插入到电子设备或从电子设备上拔出时,电子设备会检测到外部设备插入到电子设备或从电子设备上拔出,而uevent机制就是电子设备的操作系统设置的用于检测是否有外部设备插入到电子设备或从电子设备上拔出的机制。其中,可以将检测到外部设备插入到电子设备或从电子设备上拔出的动作称为uevent事件。
针对操作系统内核uevent事件,应用层中一般有两个用户空间程序进行处理:一个是udev,另一个是mdev。其中,这两种用户空间程序udev和mdev强调的是接收到uevent事件后,执行相应的热拔插动作,包括创建/删除外部设备节点,加载/卸载驱动模块等等。
在电子设备中,基于应用程序的业务处理需要以相应的外部设备的uevent事件的发生为前提来执行业务处理。但是,在电子设备启动时,如果该应用程序启动较慢,在应用程序启动前其对应的外部设备的uevent事件已经发生,并且,用户空间程序udev和mdev并不会对uevent事件进行合理有效的管理。导致在该应用程序启动后,无法得知其对应的外部设备的uevent事件已经发生,从而导致基于该应用程序的业务无法正常处理。
发明内容
本发明实施例提供一种插拔外设事件的管理方法和装置,以实现根据应用程序的需求触发插拔外设事件的功能,从而使基于应用程序的业务顺利处理。
第一方面,本发明实施例提供一种插拔外设事件的管理方法,包括:
接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
在一些实施例中,所述重新触发所述插拔外设事件,包括:
向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件。
在一些实施例中,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件之前,还包括:
向所述第一应用程序发送询问请求消息,所述询问请求消息用于询问所述第一应用程序是否触发所述插拔外设事件;
接收所述第一应用程序发送的询问响应消息,所述询问响应消息用于指示是否触发所述插拔外设事件;
所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
若所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述接收第一应用程序的第一订阅请求消息之后,还包括:
保存所述第一订阅请求消息;
所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
依次遍历保存的至少一个订阅请求消息,所述至少一个订阅请求消息中包括所述第一订阅请求消息;
当遍历到所述第一订阅请求消息时,根据当前订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件之后,还包括:
删除所述第一订阅请求消息。
在一些实施例中,所述保存所述第一订阅请求消息之前,还包括:
判断保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息;
所述保存所述第一订阅请求消息,包括:
若保存的订阅请求消息中不包括所述第一应用程序第一订阅请求消息,则保存所述第一订阅请求消息。
在一些实施例中,所述第一订阅请求消息中包括所述第一应用程序所要触发的所述插拔外设事件的标识,所述接收第一应用程序的第一订阅请求消息之后,还包括:
根据所述插拔外设事件的标识,查询所述插拔外设事件目录,所述插拔外设事件列表用于保存所述广播模块广播过的插拔外设事件的标识;
判断所述插拔外设事件目录中是否存在与所述插拔外设事件的标识相同的标识;
所述向广播模块发送触发请求消息,包括:
若所述插拔外设事件列表中存在与所述插拔外设事件的标识相同的标识,则根据所述插拔外设事件的标识向所述广播模块发送所述触发请求消息。
在一些实施例中,所述第一订阅请求消息中包括所述第一应用程序触发所述插拔外设事件的预设时间差,所述预设时间差用于指示重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差大于等于所述预设时间差,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
记录当前时间与遍历到所述第一订阅请求消息时的时间之间的时间差;
当所述时间差大于或等于预设时间差时,根据所述第一订阅请求消息,重新触发所述插拔外设事件。
第二方面,本发明实施例提供一种插拔外设事件的管理装置,包括:
接收模块,用于接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
处理模块,用于响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
在一些实施例中,所述装置还包括:发送模块;
可选地,所述发送模块,用于在所述处理模块重新触发所述插拔外设事件时,向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件。
可选地,所述发送模块,用于在所述处理模块根据所述第一订阅请求消息,重新触发所述插拔外设事件之前,向所述第一应用程序发送询问请求消息,所述询问请求消息用于询问所述第一应用程序是否触发所述插拔外设事件;
所述接收模块,还用于接收所述第一应用程序发送的询问响应消息,所述询问响应消息用于指示是否重新触发所述插拔外设事件;
所述处理模块在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
若所述接收模块接收到的所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述装置还包括:保存模块;
所述保存模块,用于在所述接收模块接收第一应用程序的第一订阅请求消息之后,保存所述第一订阅请求消息;
所述处理模块在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
依次遍历保存的至少一个订阅请求消息,所述至少一个订阅请求消息中包括所述第一订阅请求消息;
当遍历到所述第一订阅请求消息时,根据当前订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述处理模块,在根据所述第一订阅请求消息,重新触发所述插拔外设事件之后,还用于删除所述第一订阅请求消息。
在一些实施例中,所述装置还包括:判断模块。
可选地,所述判断模块,用于在所述保存模块保存所述第一订阅请求消息之前,判断保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息;
所述保存模块在保存所述第一订阅请求消息时,具体用于:
若所述判断模块判断出保存的订阅请求消息中不包括所述第一应用程序第一订阅请求消息,则保存所述第一订阅请求消息。
可选地,所述第一订阅请求消息中包括所述第一应用程序所要触发的所述插拔外设事件的标识,所述处理模块在所述接收模块接收第一应用程序的第一订阅请求消息之后,还用于:
根据所述插拔外设事件的标识,查询所述插拔外设事件目录,所述插拔外设事件列表用于保存所述广播模块广播过的插拔外设事件的标识;
所述判断模块,用于判断所述插拔外设事件目录中是否存在与所述插拔外设事件的标识相同的标识;
所述发送模块在向广播模块发送触发请求消息时,具体用于:
若所述插拔外设事件列表中存在与所述插拔外设事件的标识相同的标识,则根据所述插拔外设事件的标识向所述广播模块发送所述触发请求消息。
在一些实施例中,所述第一订阅请求消息中包括所述第一应用程序触发所述插拔外设事件的预设时间差,所述预设时间差用于指示重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差大于等于所述预设时间差,所述处理模块,在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
记录当前时间与遍历到所述第一订阅请求消息时的时间之间的时间差;
当所述时间差大于或等于预设时间差时,根据所述第一订阅请求消息,重新触发所述插拔外设事件。
第三方面,本发明实施例提供一种电子设备,该电子设备包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行本发明实施例第一方面任一项所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现发明实施例第一方面任一项所述的方法。
第五方面,本申请实施例提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备实施本申请发明实施例第一方面任一项所述的方法。
本发明实施例提供一种插拔外设事件的管理方法和装置,通过接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。实现根据应用程序的需求触发插拔外设事件的功能,解决在应用程序因错过触发插拔外设事件发生而导致的与插拔外设事件发生有关的基于该应用程序的业务处理异常的问题,使插拔外设事件的触发更加灵活,从而使基于该应用程序的业务顺利处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的插拔外设事件的管理方法的流程图;
图2为本发明一实施例提供的插拔外设事件的管理方法场景图;
图3为本发明另一实施例提供的插拔外设事件的管理方法的流程图;
图4为本发明另一实施例提供的插拔外设事件的管理方法的流程图
图5为本发明一实施例提供的插拔外设事件的管理装置的结构示意图;
图6为本发明另一实施例提供的插拔外设事件的管理装置的结构示意图;
图7为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的插拔外设事件的管理方法的流程图,其中,如图1所示,本实施例的方法可以包括:
S101、接收第一应用程序的第一订阅请求消息。
其中,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件。
本实施例可以由插拔外设事件的管理装置(也可称为事件管理器)来执行,其中,插拔外设事件的管理装置设置在电子设备中。本实施例中,在电子设备上的应用程序未启动完成前,如果将外设插入到电子设备或从电子设备上拔出,则会导致应用程序在启动完成后,也无法确定该外设是否插入到电子设备或是否从电子设备上拔出。因此,对于插拔外设事件,该电子设备上的应用程序在启动完成后,根据应用程序的需求会重新触发插拔外设事件。应用程序在请求重新触发插拔外设事件时,可以向事件管理器发送用于请求触发插拔外设事件的订阅请求,如图2所示,电子设备上的应用程序,例如应用程序1、应用程序2、应用程序3、…、应用程序n可以分别向事件管理器发送与其对应的订阅请求消息,以使事件管理器触发订阅请求消息所要触发的插拔外设事件。
本实施例中所述的第一应用程序可以是上述应用程序1、应用程序2、应用程序3、…、应用程序n中的任一个,将第一应用程序发送的订阅请求称为第一订阅请求消息。其中,第一应用程序通过第一订阅请求消息触发插拔外设事件时,例如还可以将触发的插拔外设事件的触发时间告诉事件管理器,以使事件管理器在触发时间到达时,触发所要触发的插拔外设事件,因此,第一订阅请求消息中需要包括第一应用程序所要触发插拔外设事件的触发时间。需要说明的是,本发明实施例中第一应用程序触发插拔外设事件包括第一应用程序触发该外设插入电子设备的事件、触发该外设从电子设备拔出的事件。
对于第一应用程序,当第一应用程序需要同时触发两件及两件以上的插拔外设事件时,第一应用程序例如可以通过一个第一订阅请求消息来触发至少两件插拔外设事件,或者对于每一件第一应用程序触发的插拔外设事件,第一应用程序发送与每一件插拔外设事件对应的第一订阅请求消息。
需要说明的是,本发明实施例中所述的触发插拔外设事件,并不是再次执行外设插入到电子设备或从电子设备拔出的动作,而是指再次获得外设插入到电子设备或从电子设备拔出时所产生的信息。例如,U盘已经插入到电子设备中,触发U盘插入到电子设备上这个事件,并不是将U盘从电子设备上拔出后再插入到电子设备,而是模拟U盘插入到电子设备这个动作,从而获取U盘插入电子设备时产生的信息。
S102、响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
本实施例中,应用程序请求重新触发的插播外设事件需要是已经发生过的事件,例如,对于请求重新触发U盘插入的事件,则需要电子设备在本次开机后,检测到过U盘插入到了该电子设备上。事件管理器接收到订阅请求消息后,根据订阅请求消息使该电子设备的操作系统重新触发所要触发的插拔外设事件,即操作系统将插拔外设事件触发产生的相关信息发送给对应的应用程序,相关信息例如可以包括外部设备的动作(即外设插入到电子设备或从电子设备拔出的动作);还可以包括外设的名称,用来表示外设的类型,例如,通过外设的名称表示外设是U盘,或者是鼠标;还可以包括外设的类型,用来表示外设的功能,例如,通过外设的类型表示外设是存储设备,或者通信设备。
在一些实施例中,所述第一订阅请求消息中包括第一应用程序触发所述插拔外设事件的预设时间差,所述预设时间差用于指示重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差大于等于所述预设时间差。
相应的,S102的一种可能的实现方式为:记录当前时间与遍历到所述第一订阅请求消息时的时间之间的时间差;当所述时间差大于或等于预设时间差时,根据所述第一订阅请求消息,重新触发所述插拔外设事件。
本实施例中,第一应用程序通过第一订阅请求消息请求触发插拔外设事件时,在第一订阅请求消息中包括第一应用程序触发插拔外设事件的时间。例如,重新触发插拔外设事件的时间可以为重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差至少大于等于预设时间差,其中,预设时间差为大于或等于零的数。当预设时间差为零时,表示当遍历到第一订阅请求消息时,立即重新触发该插拔外设事件;当预设时间差大于零时,当遍历到第一订阅请求消息时,事件管理器启动与该第一订阅请求消息对应的计时装置,通过该计时装置记录当前时间与遍历到该第一订阅请求消息时的时间之间的时间差,当时间差大于或等于预设时间差时,根据该第一订阅请求消息,重新触发插拔外设事件,从而使插拔外设事件可以根据第一应用程序的需求来重新触发。
本实施例,通过接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。实现根据应用程序的需求触发插拔外设事件的功能,解决在应用程序因错过触发插拔外设事件发生而导致的与插拔外设事件发生有关的基于该应用程序的业务处理异常的问题,使插拔外设事件的触发更加灵活,从而使基于该应用程序的业务顺利处理。
在一些实施例中,在S102之前,所述方法还包括:向所述第一应用程序发送询问请求消息,其中,所述询问请求消息用于询问所述第一应用程序是否触发所述插拔外设事件;接收所述第一应用程序发送的询问响应消息,其中,所述询问响应消息用于指示是否触发所述插拔外设事件。
相应的,S102的一种可能的实现方式为:若所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,重新触发所述插拔外设事件。
本实施例中,如果第一应用程序在发送第一订阅请求消息,但是还没有接收到所要触发的插拔外设事件的相关信息时,所要触发的插拔外设事件重新执行,或者第一应用程序不再需要所要触发的插拔外设事件的相关信息。那么,就不需要触发第一应用程序所要触发的插拔外设事件。因此,在事件管理器根据第一订阅请求消息触发插拔外设事件前,向第一应用程序发送询问请求消息,以向第一应用程序确认是否需要触发插拔外设事件。
第一应用程序接收到询问请求消息后,根据当前的实际需求,向事件管理器发送询问响应消息,从而指示当前是否触发插拔外设事件。当询问响应消息指示触发插拔外设事件时,事件管理器根据第一订阅请求消息,重新触发所述插拔外设事件
需要说明的是,事件管理器还可以通过询问请求消息向第一应用程序确认是否在第一订阅请求消息中包括的触发插拔外设事件的触发时间触发该插拔外设事件。相应的,询问响应消息用于指示第一应用程序是否确定在第一订阅请求消息中包括的触发插拔外设事件的触发时间触发该插拔外设事件。
本实施例,通过向所述第一应用程序发送询问请求消息,接收所述第一应用程序发送的询问响应消息,在所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,触发所述插拔外设事件。不仅可以根据应用程序的需求触发插拔外设事件,还能避免在不需要触发插拔外设事件却触发插拔外设事件的情况(例如,应用程序所要触发的插拔外设事件已经重新触发,但是,应用程序在接收到重新触发的该插拔外设事件之前再次发送请阅请求消息的情况)。
在一些实施例中,S102的一种可能的实现方式为:向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件。
本实施例中,外设插入到电子设备中或从电子设备中拔出的事件例如会记录在操作系统中,事件管理器在接收到应用程序发送的订阅请求消息后,例如可以调用操作系统中与插拔外设时间对应的接口,通过该接口向操作系统中的广播模块发送触发请求消息。广播模块在接收到触发请求消息后,根据该触发请求消息查询已记录的插拔外设事件,从而向发送订阅请求消息的应用程序发送其请求重新触发的插拔外设事件。
需要说明的是,广播模块除了将应用程序请求触发的外设插入或拔出的状态发送给应用程序,例如,还可以将外设的名称、外设的类型等相关信息发送给应用程序,本发明实施例对此不限制。
本实施例,事件管理器接收第一应用程序的第一订阅请求消息后,响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件,使广播模块直接将应用程序请求重新触发的插拔外设事件发送给该应用程序,不仅可以根据应用程序的需求重新触发插拔外设事件,还提高了重新触发插拔外设事件的效率。
图3为本发明另一实施例提供的插拔外设事件的管理方法的流程图,如图3所示,在上述各实施例的基础上,本实施例中的第一订阅请求消息中包括所述第一应用程序所要触发的所述插拔外设事件的标识,相应的,本实施例所示的方法可以包括:
S301、接收第一应用程序的第一订阅请求消息。
本实施例中,第一应用程序在通过第一订阅请求消息触发插拔外设事件时,将所要触发的插拔事件的标识包括在第一订阅请求消息中,以使事件管理器根据所要触发的插拔事件的标识触发所述插拔外设事件。
S302、查询所述插拔外设事件目录。
其中,所述插拔外设事件目录用于保存所述广播模块广播过的插拔外设事件的标识。
本实施例中,操作系统中例如不仅会保存在对应于本次开机,外设插入到电子设备中或从电子设备中拔出的事件的标识,还会保存通过广播模块已经广播过的插拔外设事件的标识。其中,为了节省存储空间,同一个插拔外设事件的标识在操作系统中仅保存一个,即如果操作系统中已经保存了一个插拔外设事件的标识,如果操作系统再一次触发了该插拔外设事件,操作系统也不会再保存该插拔外设事件的标识。其中,在操作系统中设置有插拔外设事件目录,以将保存的插拔外设事件的标识保存在该插拔外设事件目录中。
事件管理器接收到订阅请求消息后,获取该订阅请求消息中请求重新触发的插拔外设事件的标识,从而根据该插拔外设事件的标识查询插拔外设事件目录。
S303、判断所述插拔外设事件目录中是否存在与所述插拔外设事件的标识相同的标识。
本实施例中,将订阅请求消息中请求重新触发的插拔外设事件的标识与插拔外设事件目录中保存的插拔外设事件的标识进行匹配,确定插拔外设事件目录中是否保存请求重新触发的插拔外设事件的标识,从而确定广播模块能否重新触发该插拔外设事件。
需要说明的是,在重新触发插拔外设事件前,例如还需要确定该插拔外设事件是否处于可触发状态,在该插拔外设事件处于可触发状态时,重新触发该插拔外设事件。其中,可触发状态用于指示应用程序请求重新触发的外设插入或拔出的事件对应的外设的状态为应用程序请求重新触发外设插入或拔出的状态。例如,第一应用程序通过第一订阅请求消息触发U盘插入电子设备的事件,此时,需要U盘保持插入在电子设备的状态,如果U盘从电子设备上拔出,那么,U盘插入电子设备的事件就处于不可触发的状态,第一应用程序无法通过第一订阅请求消息触发U盘插入电子设备的事件。
S304、若所述插拔外设事件列表中存在与所述插拔外设事件的标识相同的标识,则根据所述插拔外设事件的标识向所述广播模块发送所述触发请求消息。
本实施例中,如果插拔外设事件列表中保存有请求重新触发的插拔外设事件的标识,则事件管理器根据插拔外设事件的标识向广播模块发送触发请求消息。其中,触发请求消息中包括应用程序请求重新触发的插拔外设事件的标识。
本实施例,应用程序将请求触发的插拔外设事件的标识携带在订阅请求消息中,以在重新触发插拔外设事件前,根据插拔外设事件的标识查询所述插拔外设事件目录,从而在插拔外设事件列表中存在与插拔外设事件的标识相同的标识时,根据插拔外设事件的标识向广播模块发送触发请求消息,从而重新触发插拔外设事件。使得可以在无法重新触发订阅请求消息请求触发的插拔外设事件时,避免事件管理器向广播模块发送触发请求消息,从而避免占用电子设备的处理资源,减少电子设备对消息的处理,提高处理其他任务的效率。
图4为本发明另一实施例提供的插拔外设事件的管理方法的流程图,如图4所示,在上述各实施例的基础上,本实施例所示的方法可以包括:
S401、接收第一应用程序的第一订阅请求消息。
本实施的实现方式可参考S101,此处不再赘述。
S402、保存所述第一订阅请求消息。
本实施例中,事件管理器会接收到应用程序1、应用程序2、应用程序3、…、应用程序n发送的订阅请求消息,每当接收到第一应用程序发送的第一订阅请求消息后,可以保存第一订阅请求消息。其中,在保存第一订阅请求消息时,可以将接收到的所有的第一订阅请求消息保存在一个列表中,也可以根据第一订阅请求消息中包括的触发插拔外设事件的触发时间进行保存,例如,触发时间为立即触发和延迟触发,则将触发时间为立即触发的第一订阅请求消息保存在一个列表中,将触发时间为延迟触发的第一订阅请求消息保存在一个列表中。其中,在保存第一订阅请求消息时,按照接收到的时间进行保存。
S403、依次遍历保存的至少一个订阅请求消息。
其中,所述至少一个订阅请求消息中包括所述第一订阅请求消息。
本实施例中,由于应用程序可以实时发送订阅请求消息,因此,事件管理器需要实时对保存的至少一个订阅请求消息进行遍历,对于先接收到的订阅请求消息,事件管理器先遍历。其中,如果所有的第一订阅请求消息保存在至少两个列表中,事件管理器在遍历第一订阅请求消息时,例如可以对至少两个列表同时遍历。
S404、当遍历到所述第一订阅请求消息时,根据当前订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
本实施例中,在遍历到其中一个订阅请求消息(也就是第一订阅请求消息)时,根据该第一订阅请求消息重新触发插拔外设事件。
S405、删除所述第一订阅请求消息。
本实施例中,事件管理器在根据第一订阅请求消息,触发所述插拔外设事件之后,将保存的第一订阅请求消息删除,不仅可以避免再次触发该插拔事件,还可以清理电子设备的内存,避免电子设备内存不够而无法保存其他第一订阅请求消息的情况的发生。
本实施例,通过保存并遍历第一订阅请求消息,根据遍历到的第一订阅请求消息,触发插拔外设事件,从而使第一应用程序获取到插拔外设事件的相关信息。实现根据应用程序的需求触发插拔外设事件的功能,使插拔外设事件得触发更加灵活,从而使基于该应用程序业务顺利处理。
在一些实施例中,在S402之前,所述方法还包括:判断保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息。
相应的,S402的一种可能的实现方式为:若保存的订阅请求消息中不包括所述第一应用程序第一订阅请求消息,则保存所述第一订阅请求消息。
本实施例中,在第一应用程序因为第一业务的需要发送与第一业务对应的第一订阅请求消息,事件管理器中会保存该与第一业务对应的第一订阅请求消息。第一应用程序因为第二业务的需要发送与第二业务对应的第一订阅请求消息,如果第二业务也需要触发与第一业务所要触发的插拔外设事件相同且触发时间相同,那么再接收到第一应用程序发送的与第二业务对应的第一订阅请求消息时,事件管理器不会再保存该与第二业务对应的第一订阅请求消息。只有在事件管理器保存的订阅请求消息中不包括第一订阅请求消息时,事件管理器保存该第一订阅请求消息。
其中,如果两个应用程序发送的第一订阅请求消息中所要触发的插拔外设事件相同且触发时间相同,事件管理器在保存这两个第一订阅请求消息时,为节省电子设备的内存,例如可以将这两个第一订阅请求消息保存为一个第一订阅请求消息,在所要触发的插拔外设事件触发时,分别向该两个应用程序发送相关信息。
本实施例,在保存第一订阅请求消息前,判断已保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息,在不包括要保存的第一订阅请求消息时保存该第一订阅请求消息。在实现根据应用程序的需求触发插拔外设事件的功能,使插拔外设事件得触发更加灵活,从而使基于该应用程序业务顺利处理,节省电子设备的内存,提高电子设备的处理效率。
图5为本发明一实施例提供的插拔外设事件的管理装置的结构示意图,如图5所示,本实施例提供的插拔外设事件的管理装置可以包括:接收模块51、处理模块52。其中,
接收模块51,用于接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
处理模块52,用于响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
本实施例的装置,可以用于执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明一实施例提供的插拔外设事件的管理装置的结构示意图,如图6所示,在图5所示实施例的基础上,可选的,所述装置可以包括:发送模块61。可选的,所述装置还可以包括:保存模块62。可选的,所述装置还可以包括:判断模块63。其中,
接收模块41,用于接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
处理模块42,用于响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
在一些实施例中,所述发送模块61,用于在所述处理模块42重新触发所述插拔外设事件时,向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件。
在一些实施例中,所述发送模块61,用于在所述处理模块42根据所述第一订阅请求消息,重新触发所述插拔外设事件之前,向所述第一应用程序发送询问请求消息,所述询问请求消息用于询问所述第一应用程序是否触发所述插拔外设事件;
所述接收模块41,还用于接收所述第一应用程序发送的询问响应消息,所述询问响应消息用于指示是否重新触发所述插拔外设事件;
所述处理模块42,在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
若所述接收模块41接收到的所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述保存模块62,用于在所述接收模块41接收第一应用程序的第一订阅请求消息之后,保存所述第一订阅请求消息;
所述处理模块42在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
依次遍历保存的至少一个订阅请求消息,所述至少一个订阅请求消息中包括所述第一订阅请求消息;
当遍历到所述第一订阅请求消息时,根据当前订阅请求消息,重新触发所述插拔外设事件。
在一些实施例中,所述处理模块42,在根据所述第一订阅请求消息,重新触发所述插拔外设事件之后,还用于删除所述第一订阅请求消息。
在一些实施例中,所述判断模块63,用于在所述保存模块62保存所述第一订阅请求消息之前,判断保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息;
所述保存模块62在保存所述第一订阅请求消息时,具体用于:
若所述判断模块63判断出保存的订阅请求消息中不包括所述第一应用程序第一订阅请求消息,则保存所述第一订阅请求消息。
在一些实施例中,所述第一订阅请求消息中包括所述第一应用程序所要在一些实施例中的所述插拔外设事件的标识,所述处理模块42在所述接收模块41接收第一应用程序的第一订阅请求消息之后,还用于:
根据所述插拔外设事件的标识,查询所述插拔外设事件目录,所述插拔外设事件列表用于保存所述广播模块广播过的插拔外设事件的标识;
所述判断模块63,用于判断所述插拔外设事件目录中是否存在与所述插拔外设事件的标识相同的标识;
所述发送模块61在向广播模块发送触发请求消息时,具体用于:
若所述插拔外设事件列表中存在与所述插拔外设事件的标识相同的标识,则根据所述插拔外设事件的标识向所述广播模块发送所述触发请求消息。
在一些实施例中,所述第一订阅请求消息中包括所述第一应用程序触发所述插拔外设事件的预设时间差,所述预设时间差用于指示重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差大于等于所述预设时间差,所述处理模块42,在根据所述第一订阅请求消息,重新触发所述插拔外设事件时,具体用于:
记录当前时间与遍历到所述第一订阅请求消息时的时间之间的时间差;
当所述时间差大于或等于预设时间差时,根据所述第一订阅请求消息,重新触发所述插拔外设事件。
本实施例的装置,可以用于执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明一实施例提供的电子设备的结构示意图,其中,电子设备例如可以是电视、移动终端、计算机等,如图7所示,本实施例的电子设备可以包括:至少一个处理器71和存储器72。图7示出的是以一个处理器为例的电子设备,其中,
存储器72,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器72可能包含高速随机存取存储器(random access memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器71,用于执行所述存储器72存储的计算机执行指令,以实现上述各实施例中所示的插拔外设事件的管理方法。
其中,处理器71可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
在一些实施例中,在具体实现上,如果存储器72和处理器71独立实现,则存储器72和处理器71可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
在一些实施例中,在具体实现上,如果存储器72和处理器71集成在一块芯片上实现,则存储器72和处理器71可以通过内部接口完成相同间的通信。
本实施例以上所述的电子设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种插拔外设事件的管理方法,其特征在于,包括:
接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
2.根据权利要求1所述的方法,其特征在于,所述重新触发所述插拔外设事件,包括:
向广播模块发送触发请求消息,以使所述广播模块根据所述触发请求消息向所述第一应用程序广播发送所述插拔外设事件。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件之前,还包括:
向所述第一应用程序发送询问请求消息,所述询问请求消息用于询问所述第一应用程序是否触发所述插拔外设事件;
接收所述第一应用程序发送的询问响应消息,所述询问响应消息用于指示是否触发所述插拔外设事件;
所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
若所述询问响应消息指示触发所述插拔外设事件,则根据所述第一订阅请求消息,重新触发所述插拔外设事件。
4.根据权利要求1所述的方法,其特征在于,所述接收第一应用程序的第一订阅请求消息之后,还包括:
保存所述第一订阅请求消息;
所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
依次遍历保存的至少一个订阅请求消息,所述至少一个订阅请求消息中包括所述第一订阅请求消息;
当遍历到所述第一订阅请求消息时,根据当前订阅请求消息,重新触发所述插拔外设事件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件之后,还包括:
删除所述第一订阅请求消息。
6.根据权利要求4所述的方法,其特征在于,所述保存所述第一订阅请求消息之前,还包括:
判断保存的订阅请求消息中是否包括所述第一应用程序的第一订阅请求消息;
所述保存所述第一订阅请求消息,包括:
若保存的订阅请求消息中不包括所述第一应用程序发送的第一订阅请求消息,则保存所述第一订阅请求消息。
7.根据权利要求2所述的方法,其特征在于,所述第一订阅请求消息中包括所述第一应用程序所要触发的所述插拔外设事件的标识,所述接收第一应用程序的第一订阅请求消息之后,还包括:
根据所述插拔外设事件的标识,查询所述插拔外设事件目录,所述插拔外设事件列表用于保存所述广播模块广播过的插拔外设事件的标识;
判断所述插拔外设事件目录中是否存在与所述插拔外设事件的标识相同的标识;
所述向广播模块发送触发请求消息,包括:
若所述插拔外设事件列表中存在与所述插拔外设事件的标识相同的标识,则根据所述插拔外设事件的标识向所述广播模块发送所述触发请求消息。
8.根据权利要求1所述的方法,其特征在于,所述第一订阅请求消息中包括所述第一应用程序触发所述插拔外设事件的预设时间差,所述预设时间差用于指示重新触发所述插拔外设事件的时间与遍历到所述第一订阅请求消息时的时间的时间差大于等于所述预设时间差,所述根据所述第一订阅请求消息,重新触发所述插拔外设事件,包括:
记录当前时间与遍历到所述第一订阅请求消息时的时间之间的时间差;
当所述时间差大于或等于预设时间差时,根据所述第一订阅请求消息,重新触发所述插拔外设事件。
9.一种插拔外设事件的管理装置,其特征在于,包括:
接收模块,用于接收第一应用程序的第一订阅请求消息,所述第一订阅请求消息用于所述第一应用程序启动完成后请求触发插拔外设事件;
触发模块,用于响应于所述插拔外设事件已经发生过,根据所述第一订阅请求消息,重新触发所述插拔外设事件,以使所述第一应用程序获取所述插拔外设事件。
10.一种电子设备,其特征在于,包括:存储器和处理器,存储器用于存储程序指令,处理器用于调用存储器中的程序指令执行如权利要求1-8任一项所述的插拔外设事件的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586469.0A CN110308938B (zh) | 2019-07-01 | 2019-07-01 | 插拔外设事件的管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586469.0A CN110308938B (zh) | 2019-07-01 | 2019-07-01 | 插拔外设事件的管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110308938A true CN110308938A (zh) | 2019-10-08 |
CN110308938B CN110308938B (zh) | 2022-03-22 |
Family
ID=68078582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910586469.0A Active CN110308938B (zh) | 2019-07-01 | 2019-07-01 | 插拔外设事件的管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110308938B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312095A (zh) * | 2021-04-16 | 2021-08-27 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830970A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市共进电子股份有限公司 | 一种适用于Linux嵌入式系统的热插拔处理方法 |
CN103019619A (zh) * | 2012-11-28 | 2013-04-03 | 浙江宇视科技有限公司 | 一种磁盘插拔控制方法及装置 |
CN104407994A (zh) * | 2014-10-31 | 2015-03-11 | 厦门市美亚柏科信息股份有限公司 | 识别计算机插槽上插入的存储设备的方法及装置 |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
WO2016078918A1 (en) * | 2014-11-18 | 2016-05-26 | Philips Lighting Holding B.V. | Apparatus and method for hidden activation of a commissioning mode |
US20160210141A1 (en) * | 2015-01-19 | 2016-07-21 | Vmware, Inc. | Hot-Swapping Operating Systems Using Inter-Partition Application Migration |
CN106445516A (zh) * | 2016-09-18 | 2017-02-22 | 广州视源电子科技股份有限公司 | 外置无线网卡驱动加载方法及装置 |
CN107396163A (zh) * | 2017-07-25 | 2017-11-24 | 青岛海信电器股份有限公司 | U盘提示控制方法、装置和电视机 |
-
2019
- 2019-07-01 CN CN201910586469.0A patent/CN110308938B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830970A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市共进电子股份有限公司 | 一种适用于Linux嵌入式系统的热插拔处理方法 |
CN103019619A (zh) * | 2012-11-28 | 2013-04-03 | 浙江宇视科技有限公司 | 一种磁盘插拔控制方法及装置 |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
CN104407994A (zh) * | 2014-10-31 | 2015-03-11 | 厦门市美亚柏科信息股份有限公司 | 识别计算机插槽上插入的存储设备的方法及装置 |
WO2016078918A1 (en) * | 2014-11-18 | 2016-05-26 | Philips Lighting Holding B.V. | Apparatus and method for hidden activation of a commissioning mode |
US20160210141A1 (en) * | 2015-01-19 | 2016-07-21 | Vmware, Inc. | Hot-Swapping Operating Systems Using Inter-Partition Application Migration |
CN106445516A (zh) * | 2016-09-18 | 2017-02-22 | 广州视源电子科技股份有限公司 | 外置无线网卡驱动加载方法及装置 |
CN107396163A (zh) * | 2017-07-25 | 2017-11-24 | 青岛海信电器股份有限公司 | U盘提示控制方法、装置和电视机 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312095A (zh) * | 2021-04-16 | 2021-08-27 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
CN113312095B (zh) * | 2021-04-16 | 2024-04-16 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110308938B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103797469B (zh) | 一种计算机系统、高速外围组件互联端点设备的访问方法和装置 | |
CN108933948A (zh) | 一种视频播放进度同步方法及装置 | |
CN106126374B (zh) | 数据写入方法、数据读取方法及装置 | |
CN112965901B (zh) | Api的测试方法、服务器、系统以及电子设备 | |
CN104092763B (zh) | 一种应用程序安装包推送方法及装置 | |
CN109947387B (zh) | 音频采集方法、音频播放方法、系统、设备及存储介质 | |
CN110245020B (zh) | 基于多个取证设备的手机内容取证方法和系统 | |
CN108924043A (zh) | 系统监控方法、网关通信、网关装置、业务处理设备 | |
CN106412078B (zh) | 精准信息推送方法、装置和系统 | |
CN106126335A (zh) | 终端设备的媒体扫描方法及终端设备 | |
CN103716230A (zh) | 消息发送方法、装置及服务器 | |
CN108366098A (zh) | 一种网络节点的数据交互方法及装置 | |
CN108459910A (zh) | 一种删除资源的方法及设备 | |
CN103500108B (zh) | 系统内存访问方法、节点控制器和多处理器系统 | |
CN105677533A (zh) | 应用进程监控方法及应用进程监控装置 | |
CN110308938A (zh) | 插拔外设事件的管理方法和装置 | |
CN104199729A (zh) | 一种资源管理方法及系统 | |
CN110113495A (zh) | App的远程控制方法、装置、电子设备及系统 | |
CN108763517A (zh) | 一种删除元数据的方法以及相关设备 | |
CN112486831A (zh) | 一种测试系统、方法、电子设备及存储介质 | |
CN107992372A (zh) | 一种机箱信息交互方法、系统、设备及计算机存储介质 | |
CN105183375B (zh) | 一种热点数据的服务质量的控制方法和装置 | |
CN111984198A (zh) | 消息队列实现方法、装置及电子设备 | |
CN109460193B (zh) | 一种存储系统中io处理方法、装置及终端 | |
CN107463524A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221018 Address after: 83 Intekte Street, Devon, Netherlands Patentee after: VIDAA (Netherlands) International Holdings Ltd. Address before: 266061 room 131, 248 Hong Kong East Road, Laoshan District, Qingdao City, Shandong Province Patentee before: QINGDAO HISENSE MEDIA NETWORKS Ltd. |