Multi-screen display system and method

By designing a multi-screen display system and method in Android devices, using the collaborative work of binding service modules, display engine modules, adaptive monitoring modules and application modules, the problems of large modifications and poor portability in the existing technology are solved, and efficient and controllable multi-screen display effects are achieved.

CN119917042APending Publication Date: 2025-05-02YEALINK (XIAMEN) NETWORK TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510000004.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-01
Publication Date
2025-05-02

AI Technical Summary

Technical Problem

The prior art realizes multi-screen display simultaneous display in Android devices, with large modification volume, poor portability, and high modification risk, and lacks effective solutions to block multi-screen display.

Method used

Provide a multi-screen display system and method, through the collaborative work of binding service modules, display engine modules, adaptive monitoring modules and application modules, receive instructions, detect insertion events, and prohibit the transmission of sub-screen information, ensuring that the preset display list only contains home screen information, thereby realizing the same display of multiple screens.

Benefits of technology

Based on the native multi-screen display logic of the Android system, multiple screens can be displayed at the same time with only a small amount of modification, small amount of modification, good portability, and controllable modification risks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119917042A_ABST
    Figure CN119917042A_ABST
Patent Text Reader

Abstract

The invention provides a multi-screen display system and method, if an adaptive monitoring module receives insertion information from a display engine module after receiving a first instruction from a binding service module, sending of auxiliary screen information for an auxiliary screen is forbidden, so that a preset display list only contains main screen information of a main screen, and the main screen information of the main screen is not contained in the preset display list. The secondary screen information of the secondary screen is not included; when the application program module obtains the preset display list, due to the fact that only the main screen information is recognized, but the auxiliary screen information is not recognized, other auxiliary screens except the main screen cannot be self-adapted to be extended screens, different pictures cannot be displayed on the extended screens, multi-screen simultaneous display of the main screen and the auxiliary screens is achieved, and the display efficiency of the main screen and the auxiliary screens is improved. According to the method, on the basis of the original multi-screen display logic of the Android system, multi-screen simultaneous display can be realized only by a small amount of modification, the modification amount is small, the portability is good, and the modification risk is controllable.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of multi-screen display technology, and in particular to a multi-screen display system and method. Background Art

[0002] In actual applications, when an Android device is connected to multiple screens, other screens outside the main screen are usually adapted to extended screens, and different pictures are displayed on the extended screens. However, in more medium and large conference room scenarios, users still hope to display the same picture on multiple screens. In the related art, one solution is to copy the display link at the hardware or driver layer to achieve the effect of displaying the same picture on multiple screens, but this solution is limited by hardware, the portability is not good enough, and it cannot be quickly adapted on multiple hardware platforms. Another solution is to modify the overall window display management link of the Android system, shield the abnormal display window, and display the interface of the main screen on other screens, but the overall change of the solution to the Android system is relatively large. When the Android system version is upgraded, the portability is not good enough, and the risk of modification is also relatively large. Therefore, the related art lacks an effective solution for shielding multi-screen abnormal display. Summary of the invention

[0003] The object of the present invention is to provide a multi-screen display system and method, so as to reduce the modification amount, improve portability and control the modification risk while realizing multi-screen simultaneous display.

[0004] The present invention provides a multi-screen display system, which runs on an Android device and includes: a binding service module, a display engine module, an adaptation monitoring module, and an application module; the binding service module is used to receive a first instruction and send the first instruction to the adaptation monitoring module; wherein the first instruction is used to indicate: adopt a display mode of multi-screen simultaneous display; the display engine module is used to output insertion information when an insertion event for a secondary screen is detected, and send the insertion information to the adaptation monitoring module; the adaptation monitoring module is used to prohibit sending secondary screen information for the secondary screen if the insertion information is received after receiving the first instruction, so that the preset display list only contains the main screen information of the main screen and does not contain the secondary screen information of the secondary screen; the application module is used to obtain the preset display list, so that the main screen and the secondary screen can be displayed on multiple screens simultaneously.

[0005] Furthermore, the system also includes: a callback module; the adaptation monitoring module is also used to generate a simulated disconnect message for the secondary screen if a first instruction is received after receiving the insertion information, and send the simulated disconnect message to the callback module; the callback module is used to delete the secondary screen information in the current display list according to the simulated disconnect message, and obtain a first update list; wherein the first update list only contains the main screen information of the main screen; the application module is used to obtain the first update list so that the main screen and the secondary screen can be displayed on multiple screens at the same time.

[0006] Furthermore, the binding service module is also used to send a first notification message to the display engine module; the first notification message is used to indicate: only process the layer of the main screen.

[0007] Furthermore, the binding service module is used to send the second instruction to the adaptation monitoring module if a second instruction is received when the main screen and the sub-screen are displayed on multiple screens at the same time; wherein the second instruction is used to indicate: adopting a display mode of multiple screens with different displays; the adaptation monitoring module is used to generate a simulated insert message for the sub-screen according to the second instruction, and send the simulated insert message to the callback module; the callback module is used to add the sub-screen information of the sub-screen to the target list according to the simulated insert message to obtain a second update list; wherein the target list is a preset display list or a first update list; the application module is used to obtain the second update list to switch the main screen and the sub-screen from multiple screens with the same display to multiple screens with different displays.

[0008] Furthermore, the binding service module is also used to send a second notification message to the display engine module; the second notification message is used to instruct: processing the layers of the main screen and the layers of the sub-screen.

[0009] Furthermore, the binding service module is used to generate first flag information after receiving the first instruction, and update the preset configuration variables according to the first flag information.

[0010] Furthermore, the binding service module is used to generate second flag information after receiving the second instruction, and update the configuration variables according to the second flag information.

[0011] Furthermore, the system also includes: a display processing module; a callback module for saving the specified update list to the binding service module through the display processing module; wherein the specified update list includes: a first update list or a second update list.

[0012] Furthermore, the application module is used to obtain a specified update list from the binding service module through the display processing module.

[0013] The present invention provides a multi-screen display method, which includes: a binding service module receives a first instruction and sends the first instruction to an adaptation monitoring module; wherein the first instruction is used to indicate: adopting a display mode of multi-screen simultaneous display; a display engine module is used to output insertion information when an insertion event for a secondary screen is detected, and send the insertion information to the adaptation monitoring module; if the adaptation monitoring module receives the insertion information after receiving the first instruction, it is prohibited to send the secondary screen information for the secondary screen, so that the preset display list only contains the main screen information of the main screen, and does not contain the secondary screen information of the secondary screen; the application module obtains the preset display list, so that the main screen and the secondary screen are displayed on multiple screens simultaneously.

[0014] The multi-screen display system and method provided by the present invention prohibit sending the sub-screen information for the sub-screen if the adaptation monitoring module receives the insertion information from the display engine module after receiving the first instruction from the binding service module, so that the preset display list only contains the main screen information of the main screen and does not contain the sub-screen information of the sub-screen; when the application module obtains the preset display list, since only the main screen information is recognized and the sub-screen information is not recognized, other sub-screens other than the main screen will not be adapted to be extended screens, and different pictures will be displayed on the extended screen, thereby realizing multi-screen simultaneous display of the main screen and the sub-screen. This method only requires a small amount of modification on the basis of the native multi-screen display logic of the Android system to realize multi-screen simultaneous display, with a small amount of modification, good portability, and controllable modification risk. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0016] Figure 1 A processing flow chart of a multi-screen display system in the prior art;

[0017] Figure 2 A schematic diagram of the structure of a multi-screen display system provided by an embodiment of the present invention;

[0018] Figure 3 A processing flow chart of a multi-screen display system provided by an embodiment of the present invention;

[0019] Figure 4 A processing flow chart of a multi-screen display system provided by an embodiment of the present invention;

[0020] Figure 5A processing flow chart of a multi-screen display system provided by an embodiment of the present invention;

[0021] Figure 6 A processing flow chart of a multi-screen display system provided by an embodiment of the present invention;

[0022] Figure 7 A flowchart of a multi-screen display method provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0023] The technical solution of the present invention will be clearly and completely described below in conjunction with the embodiments. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0024] In the related art, when an Android device is connected to multiple screens, other screens other than the main screen are usually adapted to become extended screens, and different images are displayed on the extended screens. Figure 1 A processing flow chart of a multi-screen display system is shown, which shows the main information synchronization process of HDMI plug and unplug. Specifically, after SurfaceFlinger receives the HDMI plug and unplug event of HWC (Hardware Composer, a hardware acceleration component that handles graphics rendering and display), it sends a Hotplug Event event to the outside.

[0025] After receiving the Hotplug Event, DisplayManagerService (DMS) will create a Display object. After DisplayAdapterListener initializes the Display, it sends a MSG_DELIVER_DISPLAY_EVENT message to the outside. DisplayAdapterListener is the display monitoring function that comes with the Android system. When the screen HDMI is plugged in or unplugged, the DisplayAdapterListener module can monitor it. Through initialization, the screen properties of the screen HDMI, such as size, resolution, etc., can be obtained.

[0026] In the Framework, DisplayManagerGlobal listens to the MSG_DELIVER_DISPLAY_EVENT message of DisplayManagerService (DMS) through DisplayManagerCallback, and uses it to maintain DisplayInfo information, which can include screen size, resolution, density and other information.

[0027] At the Java layer, App (Application) obtains DisplayInfo through DisplayManager, and DisplayManager obtains the Display list from the BinderService of DMS through the DisplayMnanagerGlobal object. The interface for obtaining the list is: getDisplayIds(), and the Display list includes DisplayInfo information.

[0028] When the same screen needs to be displayed on multiple screens, a large amount of customization of the App is required, but the workload of App customization is relatively large, and Apps on different platforms cannot meet the needs at the same time. Therefore, the relevant technology lacks an effective solution to shield the different displays of multiple screens. Based on this, an embodiment of the present invention provides a multi-screen display system and method, which can be applied to scenarios where multi-screen display is required, especially to scenarios where multi-screen simultaneous display is required.

[0029] To facilitate understanding of this embodiment, firstly, a multi-screen display system disclosed in an embodiment of the present invention is introduced. The system runs on an Android device, such as Figure 2 As shown, the system includes: a binding service module, a display engine module, an adaptation monitoring module, and an application module; the binding service module is used to receive a first instruction and send the first instruction to the adaptation monitoring module; wherein the first instruction is used to indicate: adopt a display mode of multi-screen simultaneous display; the display engine module is used to output insertion information when an insertion event for the secondary screen is detected, and send the insertion information to the adaptation monitoring module; the adaptation monitoring module is used to prohibit sending the secondary screen information for the secondary screen if the insertion information is received after receiving the first instruction, so that the preset display list only contains the main screen information of the main screen, and does not contain the secondary screen information of the secondary screen; the application module is used to obtain the preset display list so that the main screen and the secondary screen can be displayed on multiple screens simultaneously.

[0030] The above-mentioned Android device refers to an electronic device equipped with an Android system, including mobile phones, tablet computers, etc.; the above-mentioned binding service module can be understood as the BinderService in the Android system; the above-mentioned display engine module can be understood as the SurfaceFlinger in the Android system; the above-mentioned adaptation listening module can refer to the DisplayAdapterListener in the Android system; the above-mentioned application module can be understood as the App of the Android system; in this embodiment, the number of main screens can be one, and the number of sub-screens can be one or more. If there are multiple sub-screens, each sub-screen can be processed in the manner of this embodiment to achieve multi-screen display, that is, the main screen and each sub-screen display the same picture; the above-mentioned preset display list can save the ID information of different screens, etc.; for the convenience of explanation, this embodiment takes dual screens as an example. In the initial state, the main screen HDMI1 is in an inserted state, and the main screen information of the main screen is saved in the preset display list, such as the ID information of the main screen, etc.

[0031] The binding service module can receive a first instruction from other external modules, and the first instruction can indicate: enable "limit APP multi-screen display", that is, adopt a display mode of multi-screen display, and the binding service module can send the received first instruction to the adaptation monitoring module; when the display engine module receives the insertion event for the secondary screen from HWC, it outputs the insertion information to the adaptation monitoring module, and the insertion information can be represented by Hotplug Event, etc.; in actual implementation, if "limit APP multi-screen display" is enabled first, and then the secondary screen HDMI2 is inserted, that is, the adaptation monitoring module receives the insertion information after receiving the first instruction, at this time, the adaptation monitoring module can prohibit sending the secondary screen information for the secondary screen, that is, not sending the secondary screen information to the outside, and the secondary screen information can be represented by MSG_DELIVER_DISPLAY_EVENT. Since the secondary screen information is not sent out, the preset display list will not be updated, in which only the main screen information of the main screen is still saved, and the secondary screen information of the secondary screen is not included, such as the ID of the secondary screen. When the application module obtains the preset display list, since the preset display list only contains the main screen information of the main screen and will not recognize the sub-screen information, there will be no process of adapting other sub-screens other than the main screen to extended screens and displaying different pictures on the extended screens; in the end, only the picture of the main screen will be displayed, and the same picture will be displayed on the main screen and the sub-screen, realizing multi-screen display.

[0032] like Figure 3In the processing flow chart of a multi-screen display system shown in FIG, after enabling "Limit APP multi-screen display", when the secondary screen HDMI2 is inserted, DisplayManagerService does not send the MSG_DELIVER_DISPLAY_EVENT message. In this way, when DisplayManager requests the Display ID list from DisplayManagerService, it does not return the ID corresponding to the secondary screen HDMI2, that is, getDisplayIds only returns the ID of the primary screen.

[0033] like Figure 4 A processing flow chart of a multi-screen display system is shown. Taking dual screens as an example, in the "limit App multi-screen display" scenario, when the secondary screen HDMI2 is plugged in, LogicalDisplay is created, and the screen information is initialized to determine whether dual-screen display is enabled (that is, whether multi-screen display is disabled). If not, MSG_DELIVER_DISPLAY_EVENT can be sent to execute multi-screen display according to the prior art. If yes, MSG_DELIVER_DISPLAY_EVENT will not be sent, that is, in the "limit App multi-screen display" scenario, DisplayManagerService initializes Display according to the original logic, but does not notify the secondary screen HDMI2 to be inserted, thereby realizing multi-screen display.

[0034] In the above-mentioned multi-screen display system, if the adaptation monitoring module receives the insertion information from the display engine module after receiving the first instruction from the binding service module, it is prohibited to send the sub-screen information for the sub-screen, so that the preset display list only contains the main screen information of the main screen, and does not contain the sub-screen information of the sub-screen; when the application module obtains the preset display list, since only the main screen information is recognized and the sub-screen information is not recognized, other sub-screens other than the main screen will not be adapted to extended screens, and different pictures will be displayed on the extended screens, thereby realizing multi-screen simultaneous display of the main screen and the sub-screen. This method only requires a small amount of modification on the basis of the native multi-screen display logic of the Android system to realize multi-screen simultaneous display, with small modification amount, good portability, and controllable modification risk.

[0035] Furthermore, the system also includes: a callback module; the adaptation monitoring module is also used to generate a simulated disconnect message for the secondary screen if a first instruction is received after receiving the insertion information, and send the simulated disconnect message to the callback module; the callback module is used to delete the secondary screen information in the current display list according to the simulated disconnect message, and obtain a first update list; wherein the first update list only contains the main screen information of the main screen; the application module is used to obtain the first update list so that the main screen and the secondary screen can be displayed on multiple screens at the same time.

[0036] The above callback module can be understood as DisplayManagerCallback in the Android system; in actual implementation, if the secondary screen HDMI2 is inserted first, and then "limit APP multi-screen display" is enabled, that is, the adaptation monitoring module receives the first instruction after receiving the insertion information, then the adaptation monitoring module can generate a simulated disconnection message, such as MSG_DELIVER_DISPLAY_EVENT:DisplayManagerGlobal.EVENT_DISPL AY_REMOVED, to simulate the unplugging of the secondary screen HDMI2. It can be understood that the actual secondary screen HDMI2 is not unplugged, and only a simulated unplugging message is sent here. The simulated disconnection message is sent to the callback module. After the callback module receives the simulated disconnection message, it will be considered that the secondary screen HDMI2 has been unplugged. At this time, the current display list will be updated according to the simulated disconnection message, that is, the secondary screen information in the current display list will be deleted, and the first update list containing only the main screen information will be obtained. When the application module obtains the first update list, since the first update list only contains the main screen information of the main screen, only the picture of the main screen will be displayed, and the same picture is displayed on the main screen and the secondary screen, realizing multi-screen simultaneous display.

[0037] Furthermore, the binding service module is also used to send a first notification message to the display engine module; the first notification message is used to indicate: only process the layer of the main screen.

[0038] Usually, after the binding service module sends the first instruction to the adaptation monitoring module, and the adaptation monitoring module sends the generated simulated disconnect message to the callback module, the binding service module usually sends a first notification message to the display engine module to instruct that only the layer of the main screen should be processed and displayed, so as to facilitate the subsequent realization of multi-screen display.

[0039] Furthermore, the binding service module is used to send the second instruction to the adaptation monitoring module if a second instruction is received when the main screen and the sub-screen are displayed on multiple screens at the same time; wherein the second instruction is used to indicate: adopting a display mode of multiple screens with different displays; the adaptation monitoring module is used to generate a simulated insert message for the sub-screen according to the second instruction, and send the simulated insert message to the callback module; the callback module is used to add the sub-screen information of the sub-screen to the target list according to the simulated insert message to obtain a second update list; wherein the target list is a preset display list or a first update list; the application module is used to obtain the second update list to switch the main screen and the sub-screen from multiple screens with the same display to multiple screens with different displays.

[0040] The present embodiment can also realize switching from multi-screen co-display to multi-screen differential display. Specifically, when the main screen and the secondary screen are in multi-screen co-display, the main screen HDMI1 and the secondary screen HDMI2 are actually in the inserted state, but the preset display list and the first update list in the above embodiment do not include the secondary screen information. When it is necessary to switch to multi-screen differential display, the binding service module can receive a second instruction from other external modules, and the second instruction can indicate: disable "limit APP multi-screen differential display", that is, adopt the display mode of multi-screen differential display. The binding service module can send the received second instruction to the adaptation monitoring module, and the adaptation monitoring module can generate a simulated insertion message according to the second instruction, such as

[0041] MSG_DELIVER_DISPLAY_EVENT:DisplayManagerGlobal.EVENT_DISPL AY_ADDED, to simulate the insertion of the secondary screen HDMI2, and send the simulated insertion message to the callback module. After receiving the simulated insertion message, the callback module will think that the secondary screen HDMI2 has been inserted. At this time, the preset display list or the first update list will be updated according to the simulated insertion message, that is, the secondary screen information will be added to the preset display list or the first update list to obtain the second update list containing both the main screen information and the secondary screen information. When the application module obtains the second update list, since the second update list contains the main screen information and the secondary screen information, it will adapt the other secondary screens outside the main screen into extended screens according to the existing technology, and display different pictures on the extended screen to achieve multi-screen display.

[0042] Furthermore, the binding service module is also used to send a second notification message to the display engine module; the second notification message is used to instruct: processing the layers of the main screen and the layers of the sub-screen.

[0043] Usually, after the binding service module sends the second instruction to the adaptation monitoring module, and the adaptation monitoring module sends the generated simulated insertion message to the callback module, the binding service module usually sends a second notification message to the display engine module to instruct the processing of the layers of the main screen and the layers of the secondary screen to facilitate the subsequent implementation of multi-screen display.

[0044] Furthermore, the binding service module is used to generate first flag information after receiving the first instruction, and update the preset configuration variables according to the first flag information.

[0045] In actual implementation, when the binding service module receives the first instruction, that is, after receiving the instruction to start "limiting APP multi-screen display", the function startup flag can be set first, that is, the above-mentioned first flag information, and the first flag information can be saved to the system configuration variable. The first flag information can be expressed in the form of numbers, text, letters, etc. For example, "1" represents the function startup flag, etc.

[0046] Furthermore, the binding service module is used to generate second flag information after receiving the second instruction, and update the configuration variables according to the second flag information.

[0047] In actual implementation, when the binding service module receives the second instruction, that is, after receiving the instruction to disable "limit APP multi-screen display", the function disable flag can be set first, that is, the second flag information mentioned above, and the second flag information can be saved to the system configuration variable. The second flag information can be expressed in the form of numbers, text, letters, etc. For example, "0" represents the function disable flag, etc.

[0048] See also Figure 5 A processing flow chart of a multi-screen display system is shown in the figure. The figure takes dual screens as an example. When "Limit App Multi-screen Different Display" is turned on, the processing flow of the secondary screen HDMI2 is as follows:

[0049] 1. When BinderService (corresponding to the above-mentioned binding service module) receives the request to turn on "Limit App Multi-screen Display", it first sets the function startup flag (corresponding to the above-mentioned first flag information) and saves the function enable flag to the system variable.

[0050] 2. If "Limit App Multi-screen Display" is turned on and the secondary screen HDMI2 is connected, a simulated disconnect message of the secondary screen (MSG_DELIVER_DISPLAY_EVENT:DisplayManagerGlobal.EVENT_DISP LAY_REMOVED) is sent to DisplayManagerCallback through DisplayAdapterListener.

[0051] 3. Finally, BinderService notifies SurfaceFlinger to "ignore and only display the main screen layer", that is, ignore the secondary screen and only process the layer of the main screen. Specifically, BinderService sends a notification to shield the secondary screen and only display the main screen, so that SurfaceFlinger ignores the secondary screen and only processes the layer of the main screen.

[0052] See also Figure 6A processing flow chart of a multi-screen display system is shown in the figure. The figure takes dual screens as an example. When "Limit App Multi-screen Different Display" is disabled, the processing flow of the secondary screen HDMI2 is as follows:

[0053] 1. When BinderService receives the disable command of "Limit App Multi-screen Display", it first sets the function disable flag (corresponding to the second flag information above) and saves the function disable flag to the system variable.

[0054] 2. If "Limit App Multi-screen Display" is disabled and the secondary screen HDMI2 is connected, a simulated insertion message of the secondary screen (MSG_DELIVER_DISPLAY_EVENT:DisplayManagerGlobal.EVENT_DISP LAY_ADDED) is sent out.

[0055] 3. Finally, notify SurfaceFlinger to set the "restore only display main screen layer" process, that is, restore the secondary screen and process the layers of the primary screen and the secondary screen. Specifically, BinderService sends a notification to turn on the secondary screen, so that SurfaceFlinger restores the secondary screen and processes the layers of the primary screen and the secondary screen.

[0056] Furthermore, the system also includes: a display processing module; a callback module for saving the specified update list to the binding service module through the display processing module; and an application module for obtaining the specified update list from the binding service module through the display processing module. The specified update list includes: a first update list or a second update list.

[0057] The above-mentioned display processing module can be the DisplayManager in the Android system; in actual implementation, the callback module can save the above-mentioned maintained first update list and second update list to the bound service module through the display processing module. At the Java layer, the application module usually obtains the first update list or the second update list through the display processing module, and the display processing module obtains the first update list or the second update list from the bound service module through the DisplayMnanagerGlobal object.

[0058] As another alternative, when the App obtains the display device list and handles display device events, in addition to unified processing in DisplayManagerService, it can also filter when obtaining display devices in the Framework's DisplayManager, and simulate when listening to display device plug-in and unplug events in the Framework. In the aforementioned embodiment, the message of multi-screen simultaneous display or multi-screen differential display finally reaches the App through multiple modules. This alternative can change the processing of DisplayManagerService, or filter when obtaining display devices in the Framework's DisplayManager, that is, filter out the MSG_DELIVER_DISPLAY_EVENT message of DisplayManagerService monitored by DisplayManagerCallback. It can also be understood that any message in the middle process can be disconnected, such as the Hotplut Event being disconnected. As long as the App does not recognize that there is a secondary screen HDMI plugged in, the multi-screen differential display function of the App will not be triggered.

[0059] In order to reduce the modification of system source code and control the overall risk, the above multi-screen display system uses the hook solution to hook the functions of DisplayManagerService to obtain the displayId list and send Display events. The system reuses the native multi-screen display logic of the Android system as much as possible, so that the modification is small. When the Android system version is upgraded, it can be quickly transplanted, and the risk of modification is relatively controllable.

[0060] The system uses hook methods to simulate and block the plug-in and unplug events of display devices in DisplayManagerService, and blocks the secondary screen information in the list when the App queries the display device list, so that the App can only query the main screen information, so that the App can only achieve single-screen display. In addition, in SurfaceFlinger, the native multi-screen display logic of the Android system is reused, so that all windows can be displayed on other screens in addition to the main screen.

[0061] This method can dynamically switch between multi-screen same display and multi-screen different display without restarting. The switching process is smooth without frame drops or screen flickering. When major versions such as Android10.0-Android13.0 are upgraded, applications can be ported quickly with controllable risks.

[0062] For the functions of DisplayManagerService that obtain the displayId list and send Display events, it is possible to intercept or change the transmission of messages when the messages are passed to the next step. It does not require hardware or customized APP solutions like the existing technology, but basically follows the event distribution principle of the Android system. It only changes the transmission of monitoring events in a HOOK manner, and makes little change to the system source code.

[0063] The embodiment of the present invention also provides a multi-screen display method, such as Figure 7 As shown, the method includes:

[0064] Step S702: The binding service module receives a first instruction and sends the first instruction to the adaptation monitoring module; wherein the first instruction is used to instruct: adopting a display mode of multi-screen simultaneous display;

[0065] Step S704, the display engine module is used to output insertion information when an insertion event for the secondary screen is detected, and send the insertion information to the adaptation monitoring module;

[0066] Step S706: if the adaptation monitoring module receives the insertion information after receiving the first instruction, it prohibits sending the secondary screen information for the secondary screen, so that the preset display list only includes the main screen information of the main screen, and does not include the secondary screen information of the secondary screen;

[0067] Step S708: The application module obtains a preset display list to enable the main screen and the secondary screen to perform multi-screen simultaneous display:

[0068] In the above-mentioned multi-screen display method, if the adaptation listening module receives the insertion information from the display engine module after receiving the first instruction from the binding service module, it is prohibited to send the sub-screen information for the sub-screen, so that the preset display list only contains the main screen information of the main screen, and does not contain the sub-screen information of the sub-screen; when the application module obtains the preset display list, since only the main screen information is recognized and the sub-screen information is not recognized, other sub-screens other than the main screen will not be adapted to extended screens, and different pictures will be displayed on the extended screens, thereby realizing multi-screen simultaneous display of the main screen and the sub-screen. This method only requires a small amount of modification on the basis of the native multi-screen display logic of the Android system to realize multi-screen simultaneous display, with small modification amount, good portability, and controllable modification risk.

[0069] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A multi-screen display system, characterized in that: The system runs on an Android device, and includes: a binding service module, a display engine module, an adaptation monitoring module, and an application module; The binding service module is used to receive a first instruction and send the first instruction to the adaptation monitoring module; wherein the first instruction is used to indicate: adopt a display mode of multi-screen simultaneous display; The display engine module is used for outputting insertion information when an insertion event for the secondary screen is detected, and sending the insertion information to the adaptation monitoring module; The adaptation monitoring module is used for prohibiting the sending of the slave screen information for the slave screen if the insertion information is received after receiving the first instruction, so that the preset display list only includes the main screen information of the main screen and does not include the slave screen information of the slave screen; The application module is used to obtain the preset display list so that the main screen and the sub-screen can be displayed simultaneously on multiple screens.

2. The system according to claim 1, characterized in that The system further comprises: a callback module; The adaptation monitoring module is further configured to generate a simulated disconnection message for the secondary screen if the first instruction is received after the insertion information is received, and send the simulated disconnection message to the callback module; The callback module is used to delete the secondary screen information in the current display list according to the simulated disconnection message to obtain a first updated list; wherein the first updated list only contains the primary screen information of the primary screen; The application module is used to obtain the first update list so that the main screen and the slave screen can be displayed on multiple screens at the same time.

3. The system according to claim 2, characterized in that The binding service module is further used to send a first notification message to the display engine module; the first notification message is used to indicate: only process the layer of the main screen.

4. The system according to claim 2, characterized in that The binding service module is used for sending the second instruction to the adaptation monitoring module when the main screen and the secondary screen are displayed on multiple screens at the same time, if a second instruction is received; wherein the second instruction is used to indicate: adopting a display mode of multiple screens with different displays; The adaptation monitoring module is used for generating a simulated insertion message for the secondary screen according to the second instruction, and sending the simulated insertion message to the callback module; The callback module is used to add the secondary screen information of the secondary screen to the target list according to the simulated insertion message to obtain a second updated list; wherein the target list is the preset display list or the first updated list; The application module is used to obtain the second update list to switch the main screen and the slave screen from multi-screen same display to multi-screen different display.

5. The system according to claim 4, characterized in that The binding service module is further used to send a second notification message to the display engine module; the second notification message is used to instruct: processing the layer of the main screen and the layer of the sub-screen.

6. The system according to claim 4, characterized in that The binding service module is used to generate first flag information after receiving the first instruction, and update the preset configuration variables according to the first flag information.

7. The system according to claim 6, characterized in that The binding service module is used to generate second flag information after receiving the second instruction, and update the configuration variable according to the second flag information.

8. The system according to claim 4, characterized in that The system further comprises: a display processing module; The callback module is used to save the designated update list to the binding service module through the display processing module; wherein the designated update list includes: the first update list or the second update list.

9. The system according to claim 8, characterized in that The application module is used to obtain the designated update list from the binding service module through the display processing module.

10. A multi-screen display method, characterized in that: The method comprises: The binding service module receives the first instruction and sends the first instruction to the adaptation monitoring module; wherein the first instruction is used to indicate: adopting a display mode of multi-screen simultaneous display; The display engine module is used for outputting insertion information when an insertion event for the secondary screen is detected, and sending the insertion information to the adaptation monitoring module; If the adaptation monitoring module receives the insertion information after receiving the first instruction, it prohibits sending the slave screen information for the slave screen, so that the preset display list only includes the main screen information of the main screen and does not include the slave screen information of the slave screen; The application module obtains the preset display list so that the main screen and the slave screen can be displayed simultaneously on multiple screens.