Screen projection method and related device
Patent Information
- Application Number
- JP2023571459
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-30
- Filing Date
- 2022-05-10
- Publication Date
- 2025-02-19
- Estimated Expiration
- 2042-05-10
Smart Images

Figure 0007632831000001 
Figure 0007632831000002 
Figure 0007632831000003
Abstract
Description
[Technical field]
[0001] This application claims priority to Chinese Patent Application No. 202110547552.4, entitled "SCREEN PROJECTION METHOD", filed with the State Intellectual Property Office of China on May 19, 2021, which is incorporated herein by reference in its entirety. This application claims priority to Chinese Patent Application No. 202110745467.9, entitled "SCREEN PROJECTION METHOD AND RELATED APPARATUS", filed with the State Intellectual Property Office of China on June 30, 2021, which is incorporated herein by reference in its entirety.
[0002] The present application relates to the field of electronic technology, and in particular to a screen projection method and related apparatus. [Background technology]
[0003] Smart terminals and multiple display devices together form a multi-screen cooperation and cooperative complementarity, which is an important link in establishing an all-scenario ecology. At present, screen projection technology covers large screen scenarios, such as mobile office screens, car-mounted terminal Hicar scenarios, and smart screen scenarios. Screen projection of a mobile phone onto a personal computer (PC) is taken as an example. After the mobile phone is projected onto the computer, the user can operate and control the mobile phone on the computer.
[0004] However, in the conventional large-screen projection technology, mirror projection is generally used. Specifically, the display content of the mobile phone (i.e., the projection transmitting device) after projection is completely the same as the display content of the computer (i.e., the projection receiving device). The user cannot see different display contents on the projection transmitting device and the projection receiving device. Summary of the Invention
[0005] The present application provides a screen projection method and related apparatus to enable a projection sending device and a projection receiving device to display different contents after screen projection.
[0006] According to a first aspect, the present application provides a screen projection method, including: a first electronic device invokes a first module of a first application to execute a first desktop, the first desktop being associated with a first display area; the first electronic device displays a first display content based on the first display area, the first display content including the first desktop; in response to a first user operation, the first electronic device invokes a second module of the first application to execute a second desktop, the second desktop being associated with a second display area; the first electronic device displays a second display content corresponding to the second display area. to a second electronic device, the second display content including a second desktop; in response to a second user operation performed on the first display content, the first electronic device displays a third display content based on a task stack executed in the first display area; in response to a third user operation performed on the second display content displayed by the second electronic device, the first electronic device determines that the display content corresponding to the second display area is a fourth display content based on the task stack executed in the second display area; the first electronic device transmits the fourth display content to the second electronic device.
[0007] In this embodiment of the present application, the first electronic device (i.e., the projection sending device) supports simultaneously running multiple desktop instances in different display areas using the same application, for example, running a first desktop in a first display area using a first module of the first application, and running a second desktop in a second display area using a second module of the first application. The first electronic device determines display content on the home screen of the first electronic device based on a task stack running in the first display area; and determines display content to be projected to the second electronic device (i.e., the projection receiving device) based on a task stack running in the second display area. In this manner, the first electronic device and the second electronic device may display different desktops and other different content based on the two different display areas.
[0008] In an implementation, in response to a second user operation performed on the first display content, the first electronic device displaying a third display content based on a task stack executed in the first display area includes: in response to a second user operation performed on the first desktop on the first display content, the first electronic device displays the third display content based on the task stack executed in the first display area, the third display content being of the first application; in response to a third user operation performed on the second display content displayed by the second electronic device, the first electronic device determining that the display content corresponding to the second display area is a fourth display content based on the task stack executed in the second display area includes: in response to a third user operation performed on the second desktop displayed by the second electronic device, the first electronic device determines that the display content corresponding to the second display area is of the first application and is the fourth display content based on the task stack executed in the second display area.
[0009] In this embodiment of the present application, for a second user operation performed on the first desktop, the first electronic device may execute a response event corresponding to the second user operation based on a task stack belonging to the first application and executed in a display area associated with the first desktop; for a third user operation performed on the second desktop, the first electronic device may execute a response event corresponding to the third user operation based on a task stack belonging to the first application and executed in a display area associated with the second desktop. This can ensure data separation between events (input events and / or response events) of different desktops. Furthermore, since both desktop instances are executed by modules of the first application, the two desktops can implement specified data sharing, and the second desktop can inherit some or all functional features of the first desktop.
[0010] In an implementation, before the first electronic device displays the first display content based on the first display area, the method further includes: the first electronic device invokes a third module of the second application to execute a first status bar, the first status bar being associated with the first display area, and the first display content including the first status bar; the method further includes: in response to the first user operation, the first electronic device invokes a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area, and the second display content including the second status bar.
[0011] In this embodiment of the present application, the first electronic device supports simultaneously running multiple status bar instances in different display areas using the same application, e.g., running a first status bar in the first display area using a third module of the second application, and running a second status bar in the second display area using a fourth module of the second application. In this manner, since the two status bars are associated with different display areas, the first electronic device and the second electronic device may display different status bars, thereby ensuring data separation between the events (input events and / or response events) of the two status bars. Furthermore, since both status bars are executed by modules of the second application, the two status bars may implement sharing of specified data (e.g., notification messages), and the second status bar may inherit some or all functional features of the first status bar.
[0012] In an implementation, before the first electronic device displays the first display content based on the first display area, the method further includes: the first electronic device invokes a fifth module of the third application to execute a first display object of the first variable, the first variable being associated with the first display area and the first display content including the first display object; the first variable being associated with the second display area and the second display content including the first display object.
[0013] In this embodiment of the present application, the first electronic device supports simultaneous display of display objects corresponding to the same variable in multiple different display areas. In this embodiment of the present application, the third application and the second application may be the same application or different applications, which is not particularly limited in this specification.
[0014] In an implementation, the method further includes: in response to a fourth user operation performed on the first display content, a fifth module of the third application is invoked to change the display object of the first variable to a second display object; the first electronic device updates the display content corresponding to the first display area to a fifth display content, the fifth display content including the second display object; the first electronic device updates the display content corresponding to the second display area to a sixth display content and sends the sixth display content to the second electronic device, the sixth display content including the second display object.
[0015] In this embodiment of the present application, the first electronic device supports simultaneous display of display objects corresponding to the same variable in multiple different display areas, and after a user changes the display object of the first variable in the first display area, the display object of the first variable in the second display area changes accordingly.
[0016] In an implementation, the first variable indicates a wallpaper display object, the wallpaper display object being a static picture and / or a dynamic picture, and the wallpaper includes a lock screen wallpaper used when the screen is locked and / or a desktop wallpaper used when the screen is unlocked.
[0017] In this embodiment of the present application, after a user changes the wallpaper displayed on the first electronic device, the wallpaper projected on the second electronic device also changes accordingly.
[0018] In an embodiment, a plurality of themes are pre-set on the first electronic device, where the theme indicates a desktop layout style, an icon display style and / or an interface color, etc.; the first variable indicates a display object of the theme, where the display object of the theme is a display content corresponding to one of the plurality of themes.
[0019] In this embodiment of the present application, after a user changes the theme displayed on the first electronic device, the theme projected on the second electronic device changes accordingly.
[0020] In an implementation, a first module of a first application includes a first common class used to create and run a first desktop, a first user interface UI control class, and a desktop task stack for the first desktop; a second module of the first application includes a second common class used to create and run a second desktop, a second UI control class, and a desktop task stack for the second desktop, some or all of the classes of the second common class inherit from the first common class, and some or all of the classes of the second UI control class inherit from the first UI control class.
[0021] In this embodiment of the present application, a second common class, a second UI control class, and a desktop task stack of the second desktop used to create and run the second desktop are added to the first electronic device; some or all of the added common class and UI control class are inherited from the first common class and the first UI control class corresponding to the original first desktop. Thus, the second desktop can inherit some functional features of the first desktop, and the two desktops can implement sharing of specified data.
[0022] In the implementation, the second common classes include one or more of: desktop launcher provider, database assistant, desktop launcher configuration class, desktop launcher constant class, PC layout configuration, PC device file, PC cell counter, PC desktop launcher policy, PC desktop launcher model, PC loading task, etc.; the second UI control classes include: PC drag layer, PC desktop workspace, PC cell layout, PC program dock view, PC folder, PC folder a Contains one or more of the following:
[0023] In an implementation, a third module of the second application includes a first component used to create and execute a first status bar, a first dependency control class, and a third UI control class; a second module of the first application includes a second component used to create and execute a second status bar, a second dependency control class, and a fourth UI control class, some or all of the components of the second component inherit from the first component, some or all of the classes of the second dependency control class inherit from the first dependency control class, and some or all of the classes of the fourth UI control class inherit from the third UI control class.
[0024] In this embodiment of the present application, a second component, a second dependency control class, and a fourth UI control class used to create and execute a second status bar are added to the first electronic device; some or all of the added components, dependency control classes, and UI control classes are inherited from the first component, the first dependency control class, and the third UI control class corresponding to the original first status bar. Thus, the second status bar can inherit some functional features of the first status bar, and the two status bars can implement sharing of specified data.
[0025] In the implementation, the second component includes one or more of a PC dependency class, a PC system provider, a PC system bar, and a second status bar; the second dependency control class includes one or more of a PC status bar window control class, a screen control class, a lock screen control class, and a remote control class; and the fourth UI control class includes one or more of a PC status bar window view, a PC notification panel view, a PC quick settings fragment, a PC status bar fragment, and a PC status bar view.
[0026] In an implementation, the ID of the display area associated with the second module is the ID of the second display area; in response to the first user operation, the first electronic device invokes the second module of the first application to execute the second desktop, the second desktop being associated with the second display area includes: in response to the first user operation, a PC management service receives a mode switch instruction, the instruction instructing to switch a current non-projection mode to a projection mode; in response to the instruction, the PC management service invokes a PC desktop service, the PC desktop service invokes an activity management service, the activity management service invokes an activity task manager to launch the second module of the first application; the root activity container is invoked to determine the ID of the display area associated with the second module; when the ID of the display area associated with the second module is the ID of the second display area, an activity of the second desktop is queried and a desktop to-be-launched is selected. When the ID of the display area associated with the second module is the ID of the first display area, the activity of the first desktop is queried and used as the activity of the desktop to be launched; the activity start controller calls the activity starter to launch the second desktop.
[0027] In an implementation, in response to a first user operation, the first electronic device invokes a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area, including: in response to the first user operation, a PC management service receives a mode switch instruction, the instruction instructs to switch a current non-projection mode to a projection mode; in response to the instruction, the PC management service initiates a productivity service, the productivity service invokes a system bar to initiate the second status bar, the system bar creates the second status bar based on a configuration file; the second status bar invokes a callback interface of the command queue to add a callback to the second status bar; the second status bar initializes a layout and generates an IstatusBar object (IstatusBar object) with the status bar management service; the second status bar creates a PC status bar window view and adds the PC status bar window view to the status bar window control class; the status bar window control class calls the window management interface to add the second status bar to the window management service, so as to add the second status bar to the second display area.
[0028] In an implementation, in the non-projected mode, the command queue supports a first status bar associated with the first display area; in the projected mode, the command queue supports both a first status bar associated with the first display area and a second status bar associated with the second display area.
[0029] According to a second aspect, the present application provides an electronic device including one or more processors and one or more memories. The one or more memories are coupled to the one or more processors. The one or more memories are configured to store computer program code, and the computer program code includes computer instructions. When the one or more processors execute the computer instructions, the electronic device is enabled to execute a screen projection method according to any one of the possible implementations of any one of the above aspects.
[0030] According to a third aspect, an embodiment of the present application provides a computer storage medium including computer instructions, which, when executed on an electronic device, enables the electronic device to perform a screen projection method according to any one of the possible implementations of any one of the above aspects.
[0031] According to a fourth aspect, an embodiment of the present application provides a computer program product. When the computer program product is executed on a computer, the computer is enabled to execute a screen projection method according to any one of the possible implementations of any one of the above aspects. [Brief description of the drawings]
[0032] [Figure 1A] 1 is a schematic diagram of a communication system according to an embodiment of the present application;
[0033] [Figure 1B] FIG. 1 is a schematic diagram of a structure of an electronic device according to an embodiment of the present application.
[0034] [Diagram 2] FIG. 2 is a schematic diagram of screen projection between electronic devices according to an embodiment of the present application.
[0035] [Figure 3A] FIG. 2 is a schematic diagram of a home screen according to an embodiment of the present application.
[0036] [Figure 3B] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0037] [Figure 3C] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0038] [Figure 3D] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0039] [Figure 3E] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0040] [Figure 3F] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0041] [Figure 3G] FIG. 1 is a schematic diagram of a user interface for implementing screen projection using NFC according to an embodiment of the present application.
[0042] [Figure 4A] FIG. 2 is a schematic diagram of a second-level interface of an extended-screen status bar according to an embodiment of the present application.
[0043] [Figure 4B] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0044] [Figure 4C] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0045] [Figure 4D] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0046] [Figure 4E] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0047] [Figure 4F] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0048] [Figure 4G] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0049] [Figure 4H] FIG. 2 is a schematic diagram of a second-level interface of an extended screen status bar according to an embodiment of the present application;
[0050] [Figure 4I] FIG. 2 is a schematic diagram of an extended screen status bar according to an embodiment of the present application.
[0051] [Figure 5A] FIG. 2 is a schematic diagram of a user interface of an extended screen search bar according to an embodiment of the present application;
[0052] [Figure 5B] FIG. 2 is a schematic diagram of a user interface of an extended screen search bar according to an embodiment of the present application;
[0053] [Figure 6A-1] FIG. 2 is a schematic diagram of an application icon list user interface according to an embodiment of the present application;
[0054] [Figure 6A-2] FIG. 2 is a schematic diagram of an application icon list user interface according to an embodiment of the present application;
[0055] [Figure 6B-1] FIG. 2 is a schematic diagram of an application icon list user interface according to an embodiment of the present application;
[0056] [Figure 6B-2] FIG. 2 is a schematic diagram of an application icon list user interface according to an embodiment of the present application;
[0057] [Figure 6C] FIG. 2 is a schematic diagram of a gallery user interface on an extended screen desktop according to an embodiment of the present application.
[0058] [Figure 6D] FIG. 2 is a schematic diagram of a user interface for music on an extended screen desktop according to an embodiment of the present application.
[0059] [Figure 7A-1] FIG. 2 is a schematic diagram of a recent tasks screen according to an embodiment of the present application;
[0060] [Figure 7A-2] FIG. 2 is a schematic diagram of a recent tasks screen according to an embodiment of the present application;
[0061] [Figure 7B-1] FIG. 2 is a schematic diagram of a recent tasks screen according to an embodiment of the present application;
[0062] [Figure 7B-2] FIG. 2 is a schematic diagram of a recent tasks screen according to an embodiment of the present application;
[0063] [Figure 8A]FIG. 2 is a schematic diagram of a related user interface for displaying desktop icons according to an embodiment of the present application.
[0064] [Figure 8B] FIG. 2 is a schematic diagram of a related user interface for displaying desktop icons according to an embodiment of the present application.
[0065] [Figure 8C] FIG. 2 is a schematic diagram of a user interface of an application on an extended screen desktop according to an embodiment of the present application.
[0066] [Figure 8D] FIG. 2 is a schematic diagram of a user interface of an application on an extended screen desktop according to an embodiment of the present application.
[0067] [Figure 8E] FIG. 2 is a schematic diagram of a user interface of an application on an extended screen desktop according to an embodiment of the present application.
[0068] [Figure 9A] 2 is a schematic diagram of an associated user interface of an application icon in a Dock bar according to an embodiment of the present application;
[0069] [Figure 9B-1] 2 is a schematic diagram of an associated user interface of an application icon in a Dock bar according to an embodiment of the present application;
[0070] [Figure 9B-2] 2 is a schematic diagram of an associated user interface of an application icon in a Dock bar according to an embodiment of the present application;
[0071] [Figure 10A] FIG. 2 is a schematic diagram of a lock screen according to an embodiment of the present application.
[0072] [Figure 10B] FIG. 2 is a schematic diagram of a lock screen according to an embodiment of the present application.
[0073] [Figure 11A] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0074] [Figure 11B] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0075] [Figure 12A] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0076] [Figure 12B] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0077] [Figure 12C] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0078] [Figure 13A] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0079] [Figure 13B] FIG. 1 is a schematic diagram of a software system according to one embodiment of the present application.
[0080] [Figure 14] FIG. 2 is a schematic diagram of an activity stack according to an embodiment of the present application.
[0081] [Figure 15A-1] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application.
[0082] [Figure 15A-2] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application.
[0083] [Figure 15B-1] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application.
[0084] [Figure 15B-2] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application.
[0085] [Figure 15C-1] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application.
[0086] [Figure 15C-2] FIG. 2 is a schematic diagram of a software implementation of a screen projection method according to an embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0087] The technical solutions in the embodiments of the present application are described below with reference to the accompanying drawings. In the description of the embodiments of the present application, unless otherwise specified, " / " indicates "or". For example, A / B can indicate A or B. The term "and / or" in this specification simply describes the related relationship to describe related objects, and indicates that three relationships may exist. For example, A and / or B can indicate the following three cases: only A exists, both A and B exist, and only B exists. In addition, in the description of the embodiments of the present application, "multiple" means two or more.
[0088] The terms "first" and "second" below are intended for descriptive purposes only and shall not be understood as an indication or implication of the relative importance or quantity of the technical features depicted. Thus, a feature qualified by "first" or "second" may explicitly or implicitly include one or more features. In the description of the embodiments of this application, unless otherwise specified, "plurality" means two or more.
[0089] Next, a communication system 10 according to an embodiment of the present application will be described.
[0090] For example, Fig. 1A is a schematic diagram illustrating a configuration of a communication system 10 according to an embodiment of the present application. As shown in Fig. 1A, the communication system 10 includes an electronic device 100 and one or more electronic devices, such as an electronic device 200, connected to the electronic device 100.
[0091] In this embodiment of the present application, the electronic device 100 may be directly connected to the electronic device 200 via a near field communication connection or a local wired connection. For example, the electronic device 100 and the electronic device 200 may each have one or more near field communication modules, such as a near field communication (NFC) communication module, a wireless fidelity (Wi-Fi) communication module, an ultra wideband (UWB) communication module, a Bluetooth (Bluetooth) communication module, a ZigBee (ZigBee) communication module, and the like. Take the electronic device 100 as an example. The electronic device 100 may detect and scan electronic devices in its vicinity by transmitting a signal via the near field communication module (e.g., the NFC communication module), so that the electronic device 100 can detect the nearby electronic device (e.g., the electronic device 200) via a near field communication protocol, establish a wireless communication connection with the nearby electronic device, and transmit data to the nearby electronic device.
[0092] In some embodiments, the electronic device 100 and the electronic device 200 may be connected to a local area network (LAN) through the electronic device 300 based on a wired connection or a Wi-Fi connection. For example, the electronic device 300 may be a third-party device such as a router, a gateway, or an intelligent device controller. In some embodiments, the electronic device 100 and the electronic device 200 may be indirectly connected through at least one electronic device 400 in a wide area network (e.g., a Huawei cloud network). For example, the electronic device 400 may be a hardware server or a cloud server embedded in a virtualization environment. It can be understood that the electronic device 100 may indirectly perform a wireless communication connection and data transmission with the electronic device 200 through the electronic device 300 and / or the electronic device 400.
[0093] It can be understood that the structure shown in this embodiment does not constitute a particular limitation on the communication system 10. In some other embodiments of the present application, the communication system 10 may include more or fewer devices than those shown in the figures.
[0094] In this embodiment of the present application, after electronic device 100 establishes a connection with electronic device 200, electronic device 100 may transmit projected image data, audio data, and / or the like to electronic device 200; electronic device 200 may perform interface display and / or audio output based on the data transmitted from electronic device 100.
[0095] In this embodiment of the application, the display screens of the electronic device 200 and the electronic device 100 may have different screen resolutions. The electronic device 100 may be a portable electronic device, such as a mobile phone, a pad computer, a personal digital assistant (PDA), a wearable device, or a laptop computer (laptop). Optionally, the electronic device 100 may be another electronic device other than a portable electronic device. This is not limited in this embodiment of the application. The electronic device 200 may be any display device, such as a smart screen, a television, a pad computer, a notebook computer, an in-car device, or a projector. Exemplary embodiments of the electronic device 100 and the electronic device 200 include, but are not limited to, being equipped with iOS (registered trademark), Android (registered trademark), Microsoft (registered trademark), or another operating system.
[0096] Next, the hardware structure of the electronic device according to an embodiment of the present application will be described.
[0097] See Fig. 1B. For example, Fig. 1B shows a schematic diagram of the structure of an electronic device 100 according to an embodiment of the present application. In this embodiment of the present application, for the hardware structure of the electronic device 200, please refer to the embodiment of the hardware structure of the electronic device 100. Details will not be described again here.
[0098] The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) port 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headset jack 170D, a sensor module 180, buttons 190, a motor 191, an indicator 192, a camera 193, a display screen 194, a subscriber identity module (SIM) card interface 195, and the like. The sensor module 180 may include a pressure sensor 180A, a gyro sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, an optical proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, and the like.
[0099] It should be noted that the configuration shown in this embodiment of the present invention does not constitute a specific limitation on the electronic device 100. In some other embodiments of the present application, the electronic device 100 may include more or fewer components than those shown in the figures, may combine some components, may separate some components, or may have a different component arrangement. The components shown in the figures may be implemented by hardware, software, or a combination of software and hardware.
[0100] Processor 110 may include one or more processing units. For example, processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, a neural-network processing unit (NPU), etc. The different processing units may be separate components or may be integrated into one or more processors.
[0101] The controller may be the nerve center and command center of the electronic device 100. The controller may generate operation control signals to control instruction fetching and instruction execution based on the instruction operation code and the time series signal.
[0102] Processor 110 may further include a memory for storing instructions and data. In some embodiments, the memory of processor 110 is a cache memory. The memory may store instructions or data that have just been used or are repeatedly used by processor 110. When processor 110 needs to use the instructions or data again, processor 110 may directly retrieve the instructions or data from memory. This avoids repeated accesses, reduces the latency of processor 110, and improves system efficiency.
[0103] In some embodiments, the processor 110 may include one or more interfaces, which may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, a universal serial bus (USB) port, and / or the like.
[0104] The charging management module 140 is configured to receive a charging input from a charger. The charger may be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 may receive a charging input from the wired charger via the USB port 130. In some wireless charging embodiments, the charging management module 140 may receive a wireless charging input via a wireless charging coil of the electronic device 100. The charging management module 140 provides power to the electronic device via the power management module 141 while charging the battery 142.
[0105] The power management module 141 is configured to connect to the battery 142, the charging management module 140, and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140; and provides power to the processor 110, the internal memory 121, the display screen 194, the camera 193, the wireless communication module 160, etc. The power management module 141 may be further configured to monitor parameters such as battery capacity, battery cycle count, and battery health (leakage and impedance). In some other embodiments, the power management module 141 may alternatively be located within the processor 110. In some other embodiments, the power management module 141 and the charging management module 140 may alternatively be located within the same component.
[0106] The wireless communication functionality of the electronic device 100 may be implemented via antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, a modem processor, a baseband processor, and the like.
[0107] Antenna 1 and Antenna 2 are configured to transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 may be configured to cover one or more communication frequency bands. Different antennas may be multiplexed to improve antenna utilization. For example, Antenna 1 may be multiplexed as a diversity antenna in a wireless local area network. In some other embodiments, the antennas may be used in combination with tuning switches.
[0108] The mobile communication module 150 may provide a wireless communication solution including 2G / 3G / 4G / 5G, etc., applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 may receive electromagnetic waves via the antenna 1, perform filtering, amplification, and other processing on the received electromagnetic waves, and send the processed electromagnetic waves to the modem processor for demodulation. The mobile communication module 150 may further amplify the signal modulated by the modem processor, which is converted to an electromagnetic wave for emission via the antenna 1. In some embodiments, at least some of the functional modules of the mobile communication module 150 may be disposed within the processor 110. In some embodiments, at least some of the functional modules of the mobile communication module 150 and at least some of the modules of the processor 110 may be disposed within the same component.
[0109] The modem processor may include a modulator and a demodulator. The modulator is configured to modulate a low-frequency baseband signal to be transmitted into a medium-high frequency signal. The demodulator is configured to demodulate a received electromagnetic wave signal to obtain a low-frequency baseband signal. The demodulator then transfers the low-frequency baseband signal obtained by demodulation to a baseband processor for processing. The low-frequency baseband signal is transferred to an application processor after being processed by the baseband processor. The application processor outputs a sound signal via an audio device (including but not limited to a speaker 170A, a receiver 170B, etc.) or displays an image or video via a display screen 194. In some embodiments, the modem processor may be an independent component. In some other embodiments, the modem processor may be independent from the processor 110 and may be located in the same component with the mobile communication module 150 or other functional modules.
[0110] The wireless communication module 160 may be applied to the electronic device 100 to provide wireless communication solutions including wireless local area network (WLAN) (e.g., wireless fidelity (Wi-Fi) network), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC) technology, infrared (IR) technology, etc. The wireless communication module 160 may be one or more components integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, performs frequency modulation and filtering on the electromagnetic wave signal, and transmits the processed signal to the processor 110. The wireless communication module 160 may further receive a signal to be transmitted from the processor 110, performs frequency modulation and amplification on the signal, and converts the processed signal into an electromagnetic wave for emission via the antenna 2.
[0111] In some embodiments, in electronic device 100, antenna 1 is coupled to mobile communication module 150 and antenna 2 is coupled to wireless communication module 160, allowing electronic device 100 to communicate with networks and other devices using wireless communication technologies. The wireless communication technologies may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC, FM, IR, and / or the like. The GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a BeiDou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS), and / or a satellite based augmentation system (SBAS).
[0112] The electronic device 100 implements display functionality via a GPU, a display screen 194, an application processor, etc. The GPU is a microprocessor for image processing and is connected to the display screen 194 and the application processor. The GPU is configured to perform mathematical and geometric calculations for graphic rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or modify display information.
[0113] The display screen 194 is configured to display images, videos, etc. The display screen 194 includes a display panel. The display panel may use a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a mini LED, a micro LED, a micro OLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device 100 may include one display screen 194 or N display screens 194, where N is a positive integer greater than 1.
[0114] The electronic device 100 may implement image capture functionality via an ISP, a camera 193, a video codec, a GPU, a display screen 194, an application processor, and the like.
[0115] The ISP is configured to process data fed back by the camera 193. For example, during shooting, the shutter is pressed, light is transmitted through the lens to the camera's photosensitive elements, the light signal is converted into an electrical signal, and the camera's photosensitive elements send the electrical signal to the ISP for processing, converting the electrical signal into a visible image. The ISP may further perform algorithmic optimization on image noise, brightness, and color (complexion). The ISP may further optimize parameters such as exposure and color temperature for the shooting scenario. In some embodiments, the ISP may be located within the camera 193.
[0116] The camera 193 is configured to capture still images or videos. An optical image of an object is generated through a lens and projected onto a photosensitive element. The photosensitive element may be a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts an optical signal into an electrical signal, which is then sent to the ISP, which converts the electrical signal into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard format, such as RGB or YUV. In some embodiments, the electronic device 100 may include one camera 193 or N cameras 193, where N is a positive integer greater than 1.
[0117] The digital signal processor is configured to process digital signals and may process other digital signals in addition to the digital image signal. For example, once the electronic device 100 selects a frequency, the digital signal processor is configured to perform a Fourier transform on the frequency energy.
[0118] A video codec is configured to compress or decompress digital video. Electronic device 100 may support one or more types of video codecs. Thus, electronic device 100 may play or record video in multiple encoding formats, such as moving picture experts group (MPEG)-1, MPEG-2, MPEG-3, and MPEG-4.
[0119] The NPU is a neural network (NN) computing processor. By referring to the structure of biological neural networks, such as the transmission patterns between human brain neurons, the NPU can rapidly process input information and continuously self-learn. Applications such as intelligent recognition of the electronic device 100, such as image recognition, face recognition, voice recognition and text understanding, can be implemented through the NPU.
[0120] The internal memory 121 may include one or more random access memories (RAMs) and one or more non-volatile memories (NVMs). The random access memories may include static random access memories (SRAMs), dynamic random access memories (DRAMs), synchronous dynamic random access memories (SDRAMs), double data rate synchronous dynamic random access memories (e.g., fifth generation DDR SDRAMs are commonly referred to as DDR5 SDRAMs), and the like. The non-volatile memories may include magnetic disk storage devices and flash memories. Flash memory may be divided into NOR flash, NAND flash, 3D NAND flash, etc. based on the operating principle; or into single-level cell (SLC), multi-level cell (MLC), triple-level cell (TLC), quad-level cell (QLC), etc. based on the storage level; or into universal flash storage (UFS), embedded multimedia card (eMMC), etc. based on the storage specification. In some embodiments, the random access memory may be directly read and written by the processor 110 and may be configured to store executable programs (e.g., machine instructions) of the operating system or other running programs, or may be configured to store user data, application data, etc.The non-volatile memory may also store executable programs, user data, application data, and the like; which may be previously loaded into the random access memory for direct read and write by the processor 110.
[0121] The external memory interface 120 may be configured to connect to an external non-volatile memory to expand the storage capacity of the electronic device 100. The external non-volatile memory communicates with the processor 110 via the external memory interface 120 to achieve data storage functions. For example, files such as music and videos are stored in the external non-volatile memory.
[0122] The electronic device 100 may implement audio functions such as music playback and recording via an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headset jack 170D, an application processor, and the like.
[0123] Audio module 170 is configured to convert digital audio information to analog audio signals for output, and to convert analog audio input to digital audio signals. Audio module 170 may also be configured to encode and decode audio signals.
[0124] Speaker 170A, also referred to as a "loudspeaker," is configured to convert electrical audio signals into sound signals.
[0125] Receiver 170B, also referred to as an "earpiece," is configured to convert an electrical audio signal into a sound signal.
[0126] Microphone 170C, also referred to as a "microphone" or "mic," is configured to convert sound signals into electrical signals.
[0127] The pressure sensor 180A is configured to sense a pressure signal and convert the pressure signal into an electrical signal. When a touch operation is performed on the display screen 194, the electronic device 100 detects the strength of the touch operation based on the pressure sensor 180A. The electronic device 100 can perform calculation of the touch position based on the detection signal of the pressure sensor 180A.
[0128] The gyroscope sensor 180B may be configured to determine a motion attitude of the electronic device 100 .
[0129] The air pressure sensor 180C may be configured to measure air pressure. The magnetic sensor 180D includes a Hall sensor.
[0130] The acceleration sensor 180E may detect acceleration in various directions of the electronic device 100 (eg, directions indicated by three axes, ie, the x-axis, the y-axis, and the z-axis, in a three-axis coordinate system of the electronic device 100).
[0131] The distance sensor 180F is configured to measure distance. The electronic device 100 may measure distance using an infrared method or a laser method.
[0132] The optical proximity sensor 180G may include, for example, a light emitting diode (LED) and a light detector such as a photodiode.
[0133] The ambient light sensor 180L is configured to detect the brightness of the ambient light. The electronic device 100 may adaptively adjust the brightness of the display screen 194 based on the detected brightness of the ambient light.
[0134] Fingerprint sensor 180H is configured to collect a fingerprint.
[0135] The temperature sensor 180J is configured to measure a temperature.
[0136] The touch sensor 180K may also be referred to as a "touch component." The touch sensor 180K may be disposed within the display screen 194, with the touch sensor 180K and the display screen 194 forming a touch screen, also referred to as a "touch panel." The touch sensor 180K is configured to detect touch operations occurring on or near the touch sensor 180K. The touch sensor may transmit the detected touch operations to an application processor to determine a type of touch event. A visual output associated with the touch operation may be provided via the display screen 194. In some other embodiments, the touch sensor 180K may alternatively be disposed at a different location on the surface of the electronic device 100 and the display screen 194.
[0137] The bone conduction sensor 180M can acquire vibration signals. In some embodiments, the bone conduction sensor 180M can acquire blood pressure pulsation signals and vibration signals of a vibrating bone block of a human voice generating part.
[0138] The buttons 190 may be mechanical or touch buttons. The electronic device 100 may receive key inputs and generate key signal inputs related to user settings and function control of the electronic device 100.
[0139] The following briefly describes the implementation of screen projection between the electronic device 100 and the electronic device 200 according to an embodiment of the present application.
[0140] In the screen projection implementation, after the desktop of the electronic device 100 is projected onto the electronic device 200, the electronic device 200 displays the extended-screen desktop of the electronic device 100 in full screen. To enable the extended-screen desktop that the electronic device 100 projects onto the electronic device 200 to adapt to both the screen resolution of the electronic device 200 and the operation habits of the user on the electronic device 200, the extended-screen desktop usually uses a customized Android application package (APK) different from the standard desktop of the electronic device 100. In other words, the electronic device 100 uses the customized APK to display the desktop of the electronic device 100 and the status bar of the electronic device 100 on the electronic device 200 in a simulated manner. In this implementation, the extended-screen desktop displayed by the electronic device 200 and the standard desktop of the electronic device 100 are from different sources, and the user cannot maintain the extended-screen desktop and the standard desktop in a unified manner. Therefore, the desktop (i.e., extended screen desktop) and status bar (i.e., extended screen status bar) projected on the electronic device 200 cannot follow the User Experience (UX) style (e.g., themes, wallpapers, lock screen) of the standard desktop of the electronic device 100; cannot inherit the functional features (e.g., notification center, quick settings, folders, and FA) of the standard desktop and standard status bar of the electronic device 100. Furthermore, the necessary data synchronization (e.g., management of notification messages) cannot be maintained.
[0141] In another screen projection implementation provided in this embodiment of the present application, the electronic device 100 may support a desktop launcher (Launcher) that simultaneously runs multiple desktop instances in different display areas (Displays), and a system interface (SystemUI) that simultaneously runs multiple status bar instances and maintains a correspondence between the status bar instances and the desktop instances. In this embodiment of the present application, the desktop launcher may also be referred to as a desktop application.
[0142] For example, Fig. 2 is a schematic diagram of the projection communication between the electronic device 100 and the electronic device 200 according to an embodiment of the present application. As shown in Fig. 2, the physical display screen set on the electronic device 100 is the default screen of the electronic device 100, the electronic device 100 executes a standard desktop and a standard status bar in a display area (i.e., Display0) of the default screen, and the display area ID (display ID document, display ID) corresponding to the application window executed on Display0 is the ID (ID document, ID) of Display0. The electronic device 100 displays the standard desktop and the standard status bar on the default screen based on the application window executed on Display0.
[0143] After determining that the projection destination device is the electronic device 200 based on the projection instruction, the electronic device 100 uses the display screen set on the electronic device 200 as the extended screen of the mobile phone 100, and creates an extended screen display area (Display1) for the extended screen. The electronic device 100 executes an extended screen desktop and an extended screen status bar on Display1, and the display ID corresponding to the application window executed on Display1 is the ID of Display1. The extended screen desktop and the standard desktop are two desktop instances created and executed by the same launcher. The extended screen status bar and the standard status bar are status bar instances created and executed by the same system UI. The electronic device 100 may determine the display content of the extended screen based on the application window executed on Display1, and project the display content of the extended screen to the electronic device 200; the electronic device 200 may display the extended screen desktop and the extended screen status bar based on the projection data sent by the electronic device 100.
[0144] In some embodiments, after a connection to the electronic device 200 is established, the electronic device 100 may obtain device information of the electronic device 200, such as the model and screen resolution of the electronic device 200. The application window executed by the electronic device 100 on Display1 is an application window that is applicable to the electronic device 200 and is obtained after interface optimization and function optimization are performed on the original application window of the electronic device 100 based on the device information of the electronic device 200, such as the model and screen resolution of the electronic device 200. The interface optimization includes: changing the display size of the application window, and changing the display size and interface layout of each interface element in the application window. The function optimization includes: adding functions that are not available in the original application window of the electronic device 100, and masking some original functions of the electronic device 100 that are not applicable to the electronic device 200 to adapt to the operation habits of the user on the electronic device 200.
[0145] See FIG. 2. The launcher runs two desktop instances on different displays, so data isolation between the two desktop instances can be implemented. In addition, the two desktop instances are generated from the same desktop launcher APK, so data synchronization operation between the two desktop instances can be implemented. For example, the theme, wallpaper, and lock screen of the extended screen of the electronic device 100 all follow the default screen of the electronic device 100. In this embodiment of the present application, multiple status bar instances may run simultaneously, and the data channel of each status bar instance is maintained. Each status bar instance is associated with a different display, ensuring that the status bar events of different displays can be isolated from each other and do not affect each other. In conclusion, according to this embodiment of the present application, the desktop and the status bar can run across displays, and data synchronization between different displays can be maintained.
[0146] In addition, in this embodiment of the present application, the application window may be a window object corresponding to an activity of an Android system, or may be an application window of an iOS system, or may be an application window of other operating systems. This is not particularly limited in this specification. One application includes multiple application windows, and one application window usually corresponds to one user interface (User Interface, UI). Optionally, one application window may alternatively correspond to multiple user interfaces. For ease of explanation, in this embodiment of the present application, the application window may be abbreviated to window.
[0147] An activity in the Android system is an interface for interaction between a user and an application. Each activity component is associated with a window object that is used to describe a particular application window. An activity is a highly abstracted user interface component that represents the user interface and the corresponding service logic centered around the user interface in the Android system; it can be seen that events triggered by the user can be monitored and handled using controls in the user interface. It can be seen that in an Android application, one activity can be represented as one user interface, and one Android application can have multiple activities.
[0148] In the following, using an example in which the electronic device 100 is a mobile phone and the electronic device 200 is a computer, an example of a user interface in a screen projection scenario according to an embodiment of the present application will be described with reference to the accompanying drawings.
[0149] The following describes a home screen 11 of a desktop application of an exemplary mobile phone 100 according to one embodiment of the present application.
[0150] 3A shows a home screen 11 of a mobile phone 100 that is used to present applications installed on the mobile phone 100. The home screen 11 may include: a standard status bar 101, a calendar indicator 102, a weather indicator 103, a tray 104 containing general application icons, and other application icons 105.
[0151] The standard status bar 101 may include: one or more signal strength indicators 101A for a mobile communication signal (also called a cellular signal), an operator name (e.g., "China Mobile") 101B, one or more signal strength indicators 101C for a wireless fidelity (Wi-Fi) signal, a battery status indicator 101D, and a time indicator 101E.
[0152] A tray 104 containing common application icons may show: a phone icon, a contacts icon, a message icon, and a camera icon. Other application icons 105 may show: a file management icon, a gallery icon, a music icon, a settings icon, etc. The home screen 11 may further include a page indicator 106. The other application icons may be distributed across multiple pages, and the page indicator 106 may be used to indicate the particular page on which the application is currently being viewed by the user. The user may slide the area containing the other application icons left or right to view the application icons of the other pages.
[0153] The home screen 11 may further include a desktop wallpaper 107. The desktop wallpaper 107 may be specified by the user or may be specified by default in the mobile phone 100. Furthermore, the mobile phone 100 may use multiple themes, and the mobile phone 100 may change the desktop layout style, icon display style, and desktop color by switching themes. Typically, the wallpaper is set by default for each theme. The user can change the wallpaper of the mobile phone 100 under the current theme.
[0154] It can be understood that FIG. 3A is merely an example of a user interface on the mobile phone 100 and does not constitute a limitation of this embodiment of the present application.
[0155] In this embodiment of the present application, the mobile phone 100 may use a short-range wireless communication technology such as NFC, Wi-Fi, or Bluetooth to establish a connection with the computer 200, so as to project the desktop of the mobile phone 100 onto the computer 200. In the following, the screen projection process is described using an example in which the screen projection is implemented using NFC.
[0156] For example, as shown in Fig. 3A, the mobile phone 100 receives a downward sliding operation performed by a user on the standard status bar 101; in response to the sliding operation, the mobile phone 100 displays the control center interface 12 shown in Fig. 3B. The control center interface 12 includes: a plurality of shortcut icons 201 for common functions (e.g., a WLAN icon, a Bluetooth icon, an NFC icon 201A, and a multi-screen collaboration icon shown in Fig. 3B), a brightness adjustment bar 202, an icon 203 of one or more smart collaborative devices (e.g., a notebook computer MateBook, a pad MatePad, a desktop computer Desktop, and an intelligent audio device Sound X), and a control frame of one or more smart home devices (e.g., an air purifier control frame 204 and an intelligent lighting control frame 205).
[0157] The NFC icon 201A has two states: a selected state and a non-selected state. For example, the NFC icon 201A shown in Fig. 3B is in a non-selected state, in which the NFC module is disabled in the mobile phone 100, and the NFC icon 201A can receive a user input operation (e.g., a touch operation); in response to the input operation, the mobile phone 100 switches the NFC icon 201A to a selected state and enables the NFC module, as shown in Fig. 3C.
[0158] For example, as shown in FIG. 3D, the NFC module of the mobile phone 100 is located in the NFC area on the back of the mobile phone, and the NFC module of the computer 200 is located in the NFC area in the lower right corner of the computer 200. In some embodiments, a user may implement an NFC connection between the mobile phone 100 and the computer 200 by placing the NFC area of the mobile phone 100 close to the NFC area of the computer 200 in order to project the desktop of the mobile phone 100 onto the computer 200. The NFC area of the mobile phone 100 may alternatively be located in another part of the mobile phone 100, and the NFC area of the computer 200 may alternatively be located in another part of the computer 200. This is not particularly limited in this specification.
[0159] Specifically, after the user brings the NFC area of the mobile phone 100 close to the NFC area of the computer 200, the mobile phone 100 can detect the NFC signal of the computer 200, and the mobile phone 100 will display a prompt box 13 shown in Fig. 3E on the current display interface. The prompt box 13 includes a model 301 (e.g., MateBook) of the computer 200, prompt information 302, a connection control 303, and a cancellation control 304.
[0160] The prompt information is used to prompt the user to tap the connection control unit 302 to implement the NFC connection; after the NFC connection is established, the user can operate and control the mobile phone 100 on the computer 200. The connection control unit 303 can receive a user's input operation (e.g., a touch operation); in response to the input operation, the mobile phone 100 can send an NFC connection request to the computer 200. The cancel control unit 304 can receive a user's input operation (e.g., a touch operation); in response to the input operation, the mobile phone 100 can close the prompt box 13.
[0161] 3F, the computer 200 displays a prompt box 15 on a current display interface (e.g., the desktop 14 of the computer 200) in response to the received NFC connection request of the mobile phone 100. The prompt box 15 includes prompt information 305, a connection control 306, and a cancellation control 307.
[0162] The prompt information 305 is used to prompt the user whether to allow the mobile phone 100 to connect to the local device. The NFC connection can be implemented by tapping the connection control unit 306. After the NFC connection is established, the user can operate the mobile phone 100 on the computer 200. In other words, after the NFC connection is established, the mobile phone 100 projects the desktop of the mobile phone 100 onto the computer 200, and the user can control the mobile phone 100 using the desktop displayed on the computer 200.
[0163] The connection control unit 306 can receive an input operation (e.g., a touch operation) from the user; in response to the input operation, the computer 200 can transmit an NFC connection response to the mobile phone 100. The cancellation control unit 307 can receive an input operation (e.g., a touch operation) from the user; in response to the input operation, the computer 200 can close the prompt box 15.
[0164] In response to the received NFC connection response of the computer 200, the mobile phone 100 creates an extended screen desktop using a launcher and creates an extended screen status bar using a system UI. The display ID corresponding to the extended screen desktop and the display ID corresponding to the extended screen status bar are the IDs of the extended screen display area (Display1). The mobile phone 100 sends the projection data of Display1 to the computer 200. As shown in FIG. 3G, the computer 200 displays the PC-like home screen 16 of the mobile phone 100 based on the projection data. PC-like means that interface optimization and function optimization are performed on the extended screen desktop and the extended screen status bar projected from the mobile phone 100 to the computer 200 to adapt to the screen resolution of the computer 200 and the operation habits of the user on the computer 200.
[0165] For example, as shown in Fig. 3G, the home screen 16 may include: an extended screen status bar 401, a search bar 402, a dock bar 403, and a desktop wallpaper 404. From Fig. 3G, it can be seen that the home screen 16 projected by the mobile phone 100 onto the extended screen is applicable to the screen resolution of the computer 200. Also, the theme and wallpaper of the extended screen desktop displayed by the computer 200 are consistent with those of the standard desktop of the mobile phone 100. The desktop wallpaper 107 and the desktop wallpaper 404 are generated from the same image. Optionally, the desktop wallpaper 107 and the desktop wallpaper 404 are obtained by adjusting the same image.
[0166] In the following, the extended screen status bar 401, the search bar 402, the dock bar 403, and the lock screen of the home screen 16, which are projected onto the extended screen by the mobile phone 100, will be described in detail separately.
[0167] 3G, the extended screen status bar 401 may include: a notification center icon 401A, an input method indicator 401B, one or more signal strength indicators 401C of a Wi-Fi signal, a battery status indicator 401D, a time indicator 401E, and a control center icon 401F. Optionally, the extended screen status bar 401 may further include another interface element, for example, a Bluetooth icon or a signal strength indicator of a cellular network, which is not particularly limited in this specification.
[0168] In this embodiment of the present application, it can be seen that the mobile phone 100 implements two status bar instances: a standard status bar 101 corresponding to the standard desktop displayed by the mobile phone 100, and an extended screen status bar 401 corresponding to the extended screen desktop displayed by the computer 200. The display ID corresponding to the standard status bar 101 is an ID of Display0, and the display ID corresponding to the extended screen status bar 401 is an ID of Display1.
[0169] Unlike the standard status bar 101 corresponding to the standard desktop of the mobile phone 100, each interface element of the extended screen status bar 401 can be tapped to open a corresponding second-level interface. The second-level interface of each interface element of the extended screen status bar 401 will now be described.
[0170] The notification center icon 401A can receive a user input operation (e.g., a click operation using the left mouse button or a user touch operation); in response to the input operation, the computer 200 displays the notification center window 17 shown in FIG. 4A.
[0171] In addition, if the computer 200 is equipped with a mouse, the input operation received by the extended screen desktop and the extended screen status bar in this embodiment of the present application may be an operation performed by a user using the mouse; or, if the computer 200 is equipped with a touch screen (or a touch panel), the input operation received by the extended screen desktop and the extended screen status bar in this embodiment of the present application may be a touch operation performed by a user using the touch screen (or a touch panel). This is not particularly limited.
[0172] Specifically, in some embodiments, a control in an extended screen status bar displayed by the computer 200 (e.g., a notification center icon 401A displayed on the home screen 16) can receive a user's input operation (e.g., a click operation performed using the left button of a mouse); in response to the input operation, the computer 200 can transmit relevant information of the input operation (e.g., a coordinate clicked by using the left button and a display ID corresponding to the display screen on which the input operation was performed) to the mobile phone 100. Based on the relevant information of the input operation, the mobile phone 100 identifies that the input operation is a click operation performed using the left button of a mouse on the notification center icon 401A of the screen extended status bar, and then determines that the response event triggered by the input operation is to display the notification center window 17. The mobile phone 100 executes the notification center window 17 of Display1 and transmits the updated display content of Display1 to the computer 200. The computer 200 displays the notification center window 17 shown in FIG. 4A based on the projection data transmitted by the mobile phone 100. For processing of input operations received by the extended screen status bar displayed by the computer 200 in the following embodiments, please refer to the implementation process described above.
[0173] For example, as shown in FIG. 4A, the notification center window 17 includes one or more notification messages of the mobile phone 100 (e.g., a music notification message 501, an SMS notification message 502, and a bank card notification message 503 shown in FIG. 4A) and a deletion control 504.
[0174] A notification message (e.g., notification message 502) in the notification center window 17 can receive a user's input operation; in response to different user's input operations, operations such as deleting the notification message, sharing the notification message, viewing the details of the notification message, etc. can be implemented. Optionally, a user's input operation (e.g., a click operation performed using the left button of the mouse) can be received on the notification message 502; in response to the input operation, the computer 200 can display a specific content of the notification message 502 on the user interface of the SMS message application. Optionally, a user's input operation (e.g., a click operation performed using the right button of the mouse) can be received on the notification message 502; in response to the input operation, the computer 200 displays a menu bar 505 shown in FIG. 4B. The menu bar 505 includes a display control unit 505A, a deletion control unit 505B, and a sharing control unit 505C of the notification message 502. The notification message 502 may be displayed, shared, or deleted from the notification center window 17 accordingly upon receiving an input operation (e.g., a click operation performed using the left mouse button) performed in the display control 505A, the deletion control 505B, or the sharing control 505C.
[0175] In some embodiments, the display content of the notification center icon 401A includes application icons corresponding to the latest N notification messages. For example, as shown in FIG. 4C, the display content of the notification center icon 401A includes a music icon corresponding to the latest notification message 501, a message icon corresponding to the notification message 502, and a bank card icon corresponding to the notification message 503.
[0176] In some embodiments, when a particular notification message (e.g., notification message 502) is deleted (or dismissed) in the notification center window 17 displayed on the extended screen, the notification message is also deleted (or dismissed) from the notification center window displayed on the default screen of the mobile phone 100.
[0177] The input method indicator 401B can receive a user's input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 displays the floating window 18 shown in FIG. 4D. The floating window 18 can include one or more input method options for the mobile phone 100 (e.g., an input method 1 option 511 and an input method 2 option 512) and an input method setting control 513. The display content of the input method indicator 401B is an icon of the current input method of the mobile phone 100.
[0178] For example, as shown in FIG. 4D, the current input method of the mobile phone 100 is input method 2, and the display content of the input method indicator 401B is an icon of input method 2. The input method 1 option 511 can receive a user's input operation (e.g., a click operation performed using the left button of a mouse); in response to the input operation, the computer 200 can switch the input method of the mobile phone 100 on the extended screen desktop to input method 1. The input method setting control unit 513 is used to display an input method setting interface.
[0179] The signal strength indicator 401C can receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 displays a floating window 19 shown in FIG. 4E. The floating window 19 includes the Wi-Fi network status 521 and the real-time Internet speed 522 of the mobile phone 100. For example, the Wi-Fi network status has three network statuses: strong, medium, and weak. As shown in FIG. 4E, the Wi-Fi network status 521 of the mobile phone 100 is currently "medium" and the real-time Internet speed 522 is 263 kilobits per second (Kbps).
[0180] The battery status indicator 401C can receive a user's input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 can display the floating window 20 shown in FIG. 4F. The floating window 20 displays the current remaining power 531 of the mobile phone 100 and a setting control section 532. For example, as shown in FIG. 4E, the current remaining power 531 of the mobile phone 100 is 40%. The setting control section 532 can receive a user's input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 can display a battery setting interface of the mobile phone 100.
[0181] The time indicator 401E can receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 displays the floating window 21 shown in FIG. 4G. The floating window 21 includes a time, a date, and a calendar for the current month. Optionally, the floating window 21 further includes a flip-up control 541 and a flip-down control 542. The flip-up control 541 can be used to view a calendar for the month before the current month, and the flip-down control 542 can be used to view a calendar for the month after the current month. Optionally, the floating window 21 further includes a date and time setting control 543, which is used to display a date and time setting interface.
[0182] The control center icon 401F can receive a user's input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 displays the control center window 22 shown in FIG. 4H. The control center window 22 includes: a plurality of shortcut icons 551 for common functions (e.g., a WLAN icon, a Bluetooth icon, an NFC icon, and a multi-screen collaboration icon shown in FIG. 4H), one or more icons 552 of smart collaborative devices (e.g., a notebook computer MateBook, a pad MatePad, a desktop computer Desktop PC, and an intelligent sound device Sound X), and one or more control frames of smart home devices (e.g., a control frame 553 of an air purifier and a control frame 554 of an intelligent light). As shown in FIG. 4H, the icon 552 of the smart collaboration device indicates that the mobile phone 100 is currently in a collaboration state with a computer (i.e., the computer 200) whose model is "MateBook".
[0183] In this embodiment of the present application, the mobile phone 100 may further adjust the color of the interface elements displayed in the extended screen status bar 401 based on the theme color of the extended screen desktop and / or the wallpaper color of the extended screen desktop. Optionally, if the theme color of the extended screen desktop and the color of the desktop wallpaper 404 are relatively dark, the color of the interface elements in the extended screen status bar 401 is adjusted to white or another preset light color; or, if the theme color of the extended screen desktop and the color of the desktop wallpaper are relatively light, the color of the interface elements in the extended screen status bar 401 is adjusted to black or another preset dark color. For example, as shown in FIG. 3G, the color of the desktop wallpaper 404 of the home screen 16 is relatively light, and the color of the interface elements in the extended screen status bar 401 is mostly black. Also, as shown in FIG. 4I, the color of the desktop wallpaper 404 of the home screen 16 is relatively dark, and the color of the interface elements in the extended screen status bar 401 is mostly white.
[0184] The search bar 402 may receive a user's input operation (e.g., a double-click operation performed using the right button of a mouse); in response to the input operation, the computer 200 displays the global search floating window 23 shown in FIG. 5A and FIG. 5B. For example, the floating window 23 includes a search bar 601, a common application icon 602, a search history 603, and hot news 604. The search bar 601 may receive text information input by a user and perform a global search based on the text information input by the user. The common application icon 602 may include icons of one or more common applications. The search history 603 may include one or more recent search records of the search bar 601. The hot news 604 may include real-time hot news headlines and hot news headlines of a hot search ranking list.
[0185] In this embodiment, global search may be implemented by using a search bar 402 such that locally installed applications, stored files, etc. on the mobile phone 100 can be searched offline, and resources such as news, videos, and music can be searched online.
[0186] In some implementations, the search bar 402 on the extended screen desktop may be located within the extended screen status bar 401. This is not specifically limited herein.
[0187] It should be noted that in some embodiments, the user can use the mouse to move the mouse cursor on the home screen 16 of the mobile phone 100 displayed by the computer 200. Optionally, in this embodiment of the present application, a corresponding cursor movement effect is added to a specific input operation performed by the user using the mouse, thereby adding visual feedback of the user's input operation. For example, the initial display form of the mouse cursor may be a first shape (e.g., an arrow). When the mouse cursor is hovered over a specific interface element (e.g., the search bar 402 shown in Figures 5A and 5B) displayed on the extended screen desktop or in the extended screen status bar, the display form of the mouse cursor may be changed to a second shape (e.g., a small hand on the search bar 402 shown in Figures 5A and 5B).
[0188] The dock bar 403 is also called a program dock. For example, as shown in FIG. 6A-1 and FIG. 6A-2, the dock bar 403 includes a fixed application area 701 and a recent execution area 702, and the fixed application area 701 includes an application list icon 701A, a multitasking icon 701B, an icon for displaying the desktop 701C, and one or more application icons (e.g., a file management icon 701D and a browser icon 701E). The recent execution area 702 includes icons of recently executed applications. Optionally, if the fixed application area 701 includes icons of recently executed applications, the icons of the applications do not need to be added to the recent execution area 702.
[0189] In some embodiments, the user can specify a display state of the dock bar 403. Optionally, the display state of the dock bar 403 is specified to be automatically hidden, where the dock bar 403 is automatically hidden when the computer 200 displays the extended screen desktop of the mobile phone 100 or displays the user interface of another application of the mobile phone 100; the computer 200 displays the dock bar 403 only when the user uses the mouse to move the cursor close to the area where the dock bar 403 is located. Optionally, the display state of the dock bar 403 is specified to be always displayed, where the dock bar 403 is always shown when the computer 200 displays the extended screen desktop of the mobile phone 100 or displays the user interface of another application of the mobile phone 100 in the form of a floating window; or the dock bar 403 is automatically hidden when the computer 200 displays the user interface of another application in full screen; the computer 200 displays the dock bar 403 only when the user uses the mouse to move the cursor close to the area where the dock bar 403 is located.
[0190] The application list icon 701A can receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 displays the user interface 24 shown in Figures 6A-1 and 6A-2. The user interface 24 includes an application icon list 703. The application icon list 703 can display a number of application icons, for example, a music icon 703A and a gallery icon 703B.
[0191] Optionally, the user interface 24 may further include a page indicator 704, where other application icons may be distributed across multiple pages, and the page indicator 704 may be used to indicate the particular page on which the application is currently being viewed by the user. Optionally, the user may slide the user interface 24 left or right by using a finger to view application icons on other pages. Optionally, as shown in FIG. 6A-1 and FIG. 6A-2, the user interface 24 may further include a left flip control 705 and a right flip control 706. The user may view application icons on another page by clicking the mouse on the left flip control 705 or the right flip control 706. Optionally, the left flip control 705 and the right flip control 706 may be hidden. The computer 200 displays the left flip control 705 (or the right flip control 706) only when the user uses the mouse to move the cursor close to the area where the left flip control 705 (or the right flip control 706) is located. Optionally, the user interface 24 may further include a search bar 707 that is used to quickly search for icons of applications installed on the mobile phone 100 .
[0192] In this embodiment of the present application, a user can add application icons in the application icon list 703 to the fixed application area 701 of the dock bar. For example, as shown in Figures 6B-1 and 6B-2, a music icon 703A can receive a user drag operation (e.g., a user uses the left mouse button to select an icon and drags the icon to the fixed application area 701); in response to the drag operation, the computer 200 can add the music icon 703A to the fixed application area 701.
[0193] In this embodiment of the present application, an application icon in application icon list 703 or dock bar 403 can receive a user input operation (e.g., a double-click operation performed using the left mouse button or a touch operation performed using the user's finger); in response to the input operation, computer 200 can display a user interface of the application corresponding to the application icon.
[0194] It should be noted that some third-party applications installed on the mobile phone 100 do not support extended screen display. In this embodiment of the present application, the mobile phone 100 specifies a trust list of applications that can be displayed on the extended screen, and functions that cannot be implemented on the extended screen desktop can be shielded by specifying this trust list. In some embodiments, the application icon list 703 displays only the icons of applications in the trust list; after a third-party application supports extended screen display, the application is dynamically added to the trust list, and the application's icon is added to the application icon list 703. In addition, among applications that support extended screen display, some applications are applicable to the screen resolution of the computer 200, and a PC-like user interface is displayed full screen on the extended screen; some other applications are not applicable to the screen resolution of the computer 200, and only a standard user interface can be displayed on the extended screen for these applications on the mobile phone 100.
[0195] For example, Gallery supports full-screen display of a PC-like user interface on an extended screen, and Gallery's icon 703B can receive a user input operation (e.g., a double-click operation performed using the left mouse button); in response to the input operation, computer 200 can display Gallery's PC-like user interface 25 in full screen, as shown in Figure 6C. For example, Music does not support full-screen display of a PC-like user interface on an extended screen, and Music's icon 703A can receive a user input operation (e.g., a double-click operation performed using the left mouse button); in response to the input operation, computer 200 displays Music's standard user interface 26 on mobile phone 100, as shown in Figure 6D.
[0196] Specifically, in some embodiments, when computer 200 receives an input operation performed on application icon 1 to launch application 1 (e.g., a double-click operation performed using the left mouse button on gallery icon 703B), computer 200 transmits relevant information of the input operation (e.g., the coordinates of the double-click using the left button, and a display ID corresponding to the extended screen on which the input operation was performed) to mobile phone 100; based on the relevant information of the input operation and the interface layout of a user interface (e.g., user interface 24) currently operating in the foreground of Display1, mobile phone 100 identifies that the input operation is an input operation performed on application icon 1 on the extended screen desktop, and determines that the input operation was used to launch application 1.
[0197] It should be noted that when a user intends to launch application 1 of mobile phone 100 on the extended screen desktop, application 1 may already be launched on the standard desktop of mobile phone 100.
[0198] Optionally, when the mobile phone 100 determines that the mobile phone 100 is not currently running application 1 on Display 0, the mobile phone 100 launches a user interface 1 of application 1 on Display 1 (e.g., a user interface 25 of the gallery) and projects the updated display content of Display 1 to the computer 200; the computer 200 displays the user interface 1 based on the projection data sent from the mobile phone 100. Optionally, when the mobile phone 100 determines that the mobile phone 100 is running application 1 on Display 0, the mobile phone 100 moves the activity stack of application 1 on Display 0 to Display 1, runs application 1 on Display 1, clears the execution data of application 1 on Display 0, and then projects the updated display content of Display 1 to the computer 200; the computer 200 displays the user interface of application 1 (e.g., a user interface 25 of the gallery) based on the projection data sent from the mobile phone 100. Optionally, when the mobile phone 100 determines that the mobile phone 100 is running application 1 on Display 0, the mobile phone 100 may send prompt information 1 to the computer 200; the computer 200 may display prompt information 2 based on the prompt information 1 to prompt the user that the mobile phone 100 is running application 1; the user may control application 1 using the mobile phone 100.
[0199] The multitasking icon 701B can receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 displays the recent tasks screen 27 shown in FIG. 7A-1 and FIG. 7A-2. The recent tasks screen 27 includes one or more thumbnail images of applications recently opened by the user using the extended screen desktop (e.g., a gallery thumbnail 711 and a note thumbnail 712), and a delete control 713. Optionally, when there is a relatively large amount of recently opened applications and the computer 200 cannot simultaneously display thumbnail images of all recently opened applications, the recent tasks screen 25 can further include a right flip control 714.
[0200] As shown in FIG. 7B-1 and FIG. 7B-2, the thumbnail image (e.g., thumbnail 711 of the gallery) may receive a user input operation (e.g., a click operation performed using the left button of the mouse); in response to the detected input operation, the computer 200 may display the user interface 25 of the gallery corresponding to the thumbnail. Optionally, the thumbnail image (e.g., thumbnail 711 of the gallery) includes a delete control 711A. The delete control 711A may receive a user input operation (e.g., a click operation performed using the left button of the mouse); in response to the detected input operation, the computer 200 may use the mobile phone 100 to clear the running memory occupied by the gallery corresponding to the thumbnail 711 of Display1. The delete control 713 may receive a user input operation (e.g., a click operation performed using the left button of the mouse); in response to the detected input operation, the computer 200 may use the mobile phone 100 to clear the running memory occupied by all applications corresponding to the thumbnail image on the recent task screen of Display1. The right flip control 714 may receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the detected input operation, the computer 200 may display thumbnail images of more recently executed applications.
[0201] When application windows of other applications are displayed on the extended screen desktop, the icon 701C for displaying the desktop may be used to minimize one or more currently displayed application windows and display the extended screen desktop. When no other application windows are displayed on the extended screen desktop, the icon 701C for displaying the desktop may be used to restore the display of one or more recently minimized application windows. For example, as shown in FIG. 7B-1 and FIG. 7B-2, the computer 200 displays a user interface 25 of a gallery, and the computer 200 may receive a user input operation (e.g., the user uses a mouse to move a cursor close to an area on the display screen where the dock bar 403 is located); in response to the input operation, the computer 200 displays the dock bar 403 on the user interface 25 as shown in FIG. 8A. As shown in Fig. 8A, the icon 701C for displaying the desktop in the dock bar 403 can receive a user's input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 minimizes the user interface 25 and displays the extended screen desktop, as shown in Fig. 8A. As shown in Fig. 8B, after the user interface 25 is minimized, the icon 701C for displaying the desktop can receive a user's input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 redisplays the recently minimized user interface 25.
[0202] In some embodiments, a user interface of an application displayed in full screen (e.g., the gallery user interface 25 shown in FIG. 8C) may display a minimize control 721, a zoom out control 722, and a closure control 723. The minimize control 721 may receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 minimizes the user interface 25. The closure control 723 may receive a user input operation (e.g., a click operation performed using the left mouse button); in response to the input operation, the computer 200 closes the user interface 25 and clears the running memory occupied by the user interface 25 in Display1 of the mobile phone 100.
[0203] As shown in FIG. 8C, the zoom-out control 722 may receive a user input operation (e.g., a click operation performed using the left button of the mouse). As shown in FIG. 8D, in response to the input operation, the computer 200 may reduce the user interface 25 and execute the user interface 25 in the form of a floating window 28. As shown in FIG. 8D, the floating window 28 may include a zoom-in control 724. The zoom-in control 724 may receive a user input operation (e.g., a click operation performed using the left button of the mouse); in response to the input operation, the computer 200 may display the user interface 25 in full screen, as shown in FIG. 8C.
[0204] In some embodiments, computer 200 may tile multiple application windows on the extended screen desktop of mobile phone 100. For example, as shown in Figure 8E, computer 200 simultaneously displays floating window 28 corresponding to a gallery and floating window 29 corresponding to a note.
[0205] In this embodiment of the present application, the application icon in the dock bar 403 or the application icon list 703 can alternatively receive a user's input operation (e.g., a click operation performed using the right button of the mouse): according to the input operation, the computer 200 can display multiple operation options of the application corresponding to the icon, to implement the application deletion, sharing, uninstallation, another shortcut function, etc. It should be noted that each application may correspond to different operation options. For example, some system applications (such as gallery and file management) cannot be uninstalled.
[0206] 9A, an application icon (e.g., browser icon 701E) in dock bar 403 may receive a user input operation (e.g., a click operation performed using the right button of a mouse); in response to the input operation, computer 200 may display floating window 30. Floating window 30 may include a delete control unit 801, a share control unit 802, and an uninstall control unit 803.
[0207] The delete control 801 can receive a user's input operation (e.g., a click operation performed using the right button of a mouse); in response to the input operation, the computer 200 can delete the browser icon 701E from the dock bar 403. The share control 802 is used to share the browser application with the target object. The uninstall control 803 is used to uninstall the browser application of the mobile phone 100.
[0208] In some embodiments, an application icon (e.g., gallery icon 701F) in dock bar 403 can further receive a user's hovering operation (e.g., hovering a mouse cursor over the application icon); in response to the input operation, if the application corresponding to the application icon is in a background execution state, computer 200 can display a thumbnail of the application corresponding to the application icon, where the thumbnail is a thumbnail of a user interface in which the application was recently executed. For example, as shown in FIG. 9B-1 and FIG. 9B-2, when a user hovers a mouse cursor over gallery icon 701F, computer 200 displays a gallery thumbnail 804.
[0209] In some embodiments, the style of the lock screen of the extended screen desktop of the mobile phone 100 matches the style of the lock screen of the standard desktop of the mobile phone 100 .
[0210] Optionally, after the user controls the computer 200 to perform a screen lock of the extended screen desktop of the mobile phone 100, the mobile phone 100 also performs a screen lock of the standard desktop; and vice versa. For example, after the user controls the extended screen desktop of the mobile phone 100 on the computer 200 to perform a screen lock, the computer 200 displays the lock screen 31 of the extended screen desktop shown in FIG. 10A and sends a lock screen instruction to the mobile phone 100, where the lock screen 31 includes a lock screen wallpaper 901; in response to the lock screen instruction, the mobile phone 100 displays the lock screen 32 shown in FIG. 10B, where the lock screen 32 includes a lock screen wallpaper 902. For example, after the user operates the standard desktop of the mobile phone 100 to perform a screen lock, the mobile phone 100 displays the lock screen 32 shown in FIG. 10B and sends a lock screen instruction to the computer 200; in response to the lock screen instruction, the computer 200 displays the lock screen 31 of the extended screen desktop shown in FIG. 10A. Lock screen wallpaper 901 and lock screen wallpaper 902 are derived from the same image. Optionally, lock screen wallpaper 901 and lock screen wallpaper 902 are obtained by adjusting the same image.
[0211] Optionally, after the user controls the computer 200 to perform a screen lock on the extended screen desktop of the mobile phone 100, the mobile phone 100 does not perform a screen lock on the standard desktop as well as the extended screen desktop; and vice versa.
[0212] Hereinafter, a software system of a mobile phone 100 according to an embodiment of the present application will be described with reference to the accompanying drawings.
[0213] First, it should be noted that the screen projection method provided in the embodiment of the present application involves modifying multiple system applications (such as Launcher, System UI, File Manager, Global Search, Wireless Projection, AirSharing, etc.) and system frameworks.
[0214] The desktop launcher is used to manage the desktop layout, dock bar, application list, multiple tasks, etc. The system UI is a UI component that provides system-level information display and interaction to the user; it is used to manage the status bar, navigation bar, notification center, lock screen, wallpaper, etc. The file manager is used to provide an external file box, manage desktop files, provide external file manipulation functions, and implement dragging of files between applications. The global search is used to implement local and online global search. The wireless projection is used to implement wireless projection from the mobile phone 100 to a destination device (e.g., computer 200).
[0215] In this embodiment of the present application, the software system of the mobile phone 100 may use a layered architecture, an event-driven architecture, a microkernel architecture, a microservice architecture, or a cloud architecture. In this embodiment of the present application, the Android system with a layered architecture is used as an example to describe the software structure of the electronic device 100.
[0216] For example, FIGS. 11A and 11B are block diagrams of the software architecture of a mobile phone 100 according to one embodiment of the present application.
[0217] As shown in Figures 11A and 11B, the software is divided into multiple layers by a layered architecture, with each layer having a clear role and task. Each layer communicates with each other through software interfaces. In some embodiments, the Android system can be divided from top to bottom into an application layer, an application framework layer (Framework), and a system library (Native).
[0218] The Android runtime includes core libraries and a virtual machine. The Android runtime is responsible for scheduling and managing the Android system.
[0219] The core library includes two parts: performance functions that need to be called by the Java language and the Android core library.
[0220] The application layer and the application framework layer run in a virtual machine. The virtual machine executes the Java files in the application layer and the application framework layer as binary files. The virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, security and exception management, garbage collection, etc.
[0221] The application layer includes a set of application packages (Android application packages, APKs), such as a desktop launcher APK (HWLauncher6.apk), a system interface APK (SystemUI.apk), a file manager APK (FileManager.apk), a global search APK (Hisearch.apk), and a wireless sharing APK (AirSharing.apk).
[0222] In some embodiments, the desktop launcher APK includes a standard desktop launcher (UniHomelauncher) and an extended screen desktop launcher (PcHomelauncher). The system interface APK (SystemUI.apk) includes a standard status bar (StatusBar) and an extended screen status bar (PcStatusBar). The file manager APK (FileManager.apk) includes a standard interface, a column interface, and a file box. The global search APK (Hisearch.apk) includes a standard search interface and an extended screen search interface. The wireless sharing APK (AirSharing.apk) includes general wireless projection and high-definition display projection developed by Huawei. In this embodiment of the present application, the extended screen desktop may also be referred to as a PC desktop, and the extended screen status bar may also be referred to as a PC status bar. This is not particularly limited in this specification.
[0223] As shown in FIG. 11A and FIG. 11B, in this embodiment of the present application, the desktop launcher supports the execution of multiple desktop instances, for example, UniHomelauncher and PcHomelauncher. UniHomelauncher is used to launch the standard desktop displayed by the mobile phone 100, and PcHomelauncher is used to launch the extended screen desktop projected to the computer 200, where the extended screen desktop is a PC-like desktop applicable to the computer 200. The standard desktop is displayed based on the application window running in the default screen display area (Display0), and the extended screen desktop is displayed based on the application window running in the extended screen display area (Display1). The system UI supports the execution of multiple status bar instances, for example, the standard status bar and the extended screen status bar. The display ID corresponding to the standard status bar is the ID of Display0, and the display ID corresponding to the extended screen status bar is the ID of Display1. The added column interface and file box of the file manager are responsible for the extended screen desktop file operations (copy, paste, move, delete, restore, drag, etc.). Global search also supports running multiple search interface instances, for example a standard search interface corresponding to a standard desktop and an extended screen search interface corresponding to an extended screen desktop.
[0224] The application layer further includes kits, including a software development kit (HwSDK), a user interface kit (Uikit), and a projection protocol kit (Cast+kit).
[0225] In this embodiment of the present application, HwSDK is added to the kit to implement the screen projection method provided in the embodiment of the present application. HwSDK is a set of development tools for establishing application software for software packages, software frameworks, hardware platforms, and operating systems related to this application. In order to ensure the compatibility of the kit, Uikit and Cast+kit are modified in this embodiment of the present application so that Uikit can implement the enhancement of the functions of native controls on the extended screen desktop, the optimization of the text right-click menu, the optimization of the dynamic effects of operations such as mouse click and mouse hover, etc.; Cast+kit can implement the projection of the extended screen desktop to a high-definition display.
[0226] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications in the application layer. The application framework layer includes some predefined functions.
[0227] In this embodiment of the present application, a display projection service (HwProductiveMultiWindowManager) and a dockbar management service (DockBarManagerService) developed by Huawei are added to the application framework layer to implement the screen projection method provided in the embodiment of the present application. The display projection service developed by Huawei is used to run multiple application windows of the same application simultaneously and project a specific window in the multiple application windows to a destination device (e.g., computer 200). The dockbar management service is used to manage the dockbar.
[0228] In order to ensure compatibility of the application framework layer, the display management service (DisplayManagerService, DMS), the input / output service (InputManagerService, IMS), and the parallel view service (HwPartsMagicWindow) are further modified in this embodiment of the present application.
[0229] The DMS is used to: manage the life cycle of interface display; control the logical display of the default screen display area (Display0) and the extended screen display area (Display1) of the current connection; send notifications to the system and applications when the display state of Display0 and Display1 changes; and so on. The IMS is used to manage the input and output of the mobile phone 100. The input and output devices of the mobile phone 100 may include a printer, a hard disk, a keyboard, a mouse, a hard disk, a magnetic disk, and a writable read-only optical disk. The parallel view service is used to implement the application screen split function. Specifically, two user interfaces corresponding to two different activities of an application can be displayed simultaneously, so that the two user interfaces can be displayed on a split screen of the same display screen, or the two user interfaces can be displayed on different display screens. In addition, the parallel view service provided in this embodiment of the present application supports user interface display by using a floating window.
[0230] In this embodiment of the present application, for the mobile phone 100, the package management service (PackageManagerService, PMS) and wallpaper service (WallpaperService) in the application framework layer are also modified, so that a policy for selecting a default launcher (i.e., UniHomelauncher) is added to the package management service, and the WallpaperService supports displaying wallpapers on multiple displays.
[0231] The system library may include multiple function modules. In this embodiment of the present application, the system library may include an event dispatcher (InputDispatcher), an audio system (AudioSystem), a projection protocol (Huawei Cast+), etc. In this embodiment of the present application, in order to implement the projection of the extended screen desktop to a high-definition display, the projection protocol is also correspondingly modified in this embodiment of the present application.
[0232] Next, the software system framework to which the projection method provided in the embodiment of the present application is applied will be described in detail, divided into a launcher and a system UI.
[0233] For example, for the System UI, Figures 12A, 12B, and 12C show another software system framework according to an embodiment of the present application. From Figures 11A and 11B, it can be seen that SystemUI.apk includes a standard status bar and an extended screen status bar. From Figures 12A, 12B, and 12C, it can be seen that SystemUI.apk specifically includes: a system interface application (SystemUIApplication); and base classes (Base Classes), services (Services), components (Components), dependency providers (Dependency Providers), and UI control classes (UI Controls) used to implement the standard status bar.
[0234] SystemUIApplication is a subclass of Application and is responsible for initializing all components of the System UI.
[0235] The base classes include the system interface factory class (SystemUIFactory), the system interface root component (SystemUIRootComponent), etc. SystemUIFactory is used to create system UI components. SystemUIRootComponent is used to implement the initialization of the dependency injection framework (dagger).
[0236] The services include the system interface service (SystemUIService). SystemUIService is used to initialize a set of components of the System UI. When the System UI is started, SystemUIService instantiates the subservices defined in the service list of SystemUIService one by one. The start() method of each subservice is called to run the subservice. All the subservices inherit from the SystemUI abstract class. The status bar and navigation bar are subservices in the service list.
[0237] Components include a command queue, dependency classes, a lock screen view mediator, a notification center, standard system bars, a standard status bar, and more.
[0238] CommandQueue is a Binder class used to process requests related to the status bar and notification center. CommandQueue is registered by the status bar with the StatusBarManagerService to receive messages from the StatusBarManagerService. CommandQueue internally maintains an event queue. StatusBarService is used to implement callbacks in CommandQueue. In this embodiment of the application, the CommandQueue component is modified so that it supports message delivery for multiple StatusBars (i.e., standard status bars and extended screen status bars).
[0239] Dependency is used to make dependencies available globally.
[0240] SystemBars inherits from the base class System UI and is the entry class for creating the entire system UI view. Standard Status Bar is mainly used to display application notification icons and system status icons (alarm clock icon, Wi-Fi icon, SIM card icon, system time icon, etc.) on the standard desktop and to control and manage these icons. Notification is used to display notification information on the status bar and to control and manage notification information.
[0241] KeyguardViewMediator is the core class for the lock screen. Other lock screen objects interact with each other through KeyguardViewMediator. KeyguardViewMediator is the status callback management class. All calls from the lock screen service (KeyguardService) are routed to the UI thread by KeyguardViewMediator.
[0242] The dependency class provider includes a status bar window control class (StatusBarWindowController), a status bar icon controller implementation class (StatusBarIconControllerImpl), a status bar policy (StatusBarPolicy), and the like.
[0243] The StatusBarWindowController is used to manage the status bar window view (StatusBarWindowView) and can invoke the WindowManager's interfaces to display a standard status bar. In the present embodiment of the present application, the StatusBarWindowController component is modified so that it supports adding, removing, and managing multiple status bar objects.
[0244] StatusBarIconControllerImpl is used to manage application icons in the status bar, including changing the icon size, position, and color.
[0245] StatusBarPolicy is used to manage the display policy of the status bar (e.g., updating the status bar icon, display time, and display position). The StatusBarPolicy class is a policy management class, and the actual functionality is implemented by StatusBarService.
[0246] The UI control classes include status bar window view (StatusBarWindowView), notification panel view (NotificationPanelView), quick setting fragment (QSFragment), status bar fragment (StatusBarFragment), status bar view (StatusBarView), etc.
[0247] StatusBarWindowView is used to determine the root layout and to create the status bar window view if the status bar is not extended.
[0248] StatusBarView is responsible for creating and instantiating the entire system UI views (including status bar, notification center, lock screen, etc.). StatusBarView defines the names, display sequence, portable network graphics (Png), etc. of the icons displayed in the status bar. During the initialization of StatusBarService, StatusBarView is initialized to display the status bar. StatusBarService calls the makeStatusBarView method to implement the initialization of the status bar.
[0249] NotificationPanelView is the controlling class for the notification center after the status bar is pulled down.
[0250] QSFragment is the control class for the control center after the status bar is pulled down.
[0251] StatusBarFragment manages the collapsed state of the status bar and is responsible for the lifecycle management of the icons in the status bar.
[0252] To implement the extended screen status bar, in this embodiment of the present application, the Service, Component, dependency class provider, and UI control classes used to implement the extended screen status bar are added to the system interface APK.
[0253] Services used to implement the extension screen status bar include a ProductiveService, which inherits from Service.
[0254] The components used to implement the extended screen status bar include: PC Dependency class (PcDependency), PC System Providers (PcSystemProviders), PC System Bars (PcSystembars), and extended screen status bar. PcDependency, PcSystembars, and extended screen status bar all inherit from the corresponding components of the standard status bar mentioned above and implement similar functionality for extended screen status bar. The details will not be described again here.
[0255] Dependent class providers used to implement extended screen status bar include: PC status bar window control class (PcStatusBarWindowController), screen control class (ScreenController), lock screen control class (KeyguardController), and remote control class (RemoteController). PcStatusBarWindowController inherits from the StatusBarWindowController of the standard status bar mentioned above, and implements similar functionality for extended screen status bar. Details are not described here.
[0256] The screen control class (ScreenController) is used to control the on / off of the projection screen.
[0257] In this embodiment of the application, the Keyguard component, for example the lock screen control class (KeyguardController), is modified so that the Keyguard component supports screen locking on multiple displays.
[0258] The remote control class (RemoteController) is used to communicate with the application framework layer (Framework).
[0259] The UI control classes used to implement extended screen status bar include: PC status bar window view (PcStatusBarWindowView), PC notification panel view (PcNotificationPanelView), PC quick setting fragment (PcQSFragment), PC status bar fragment (PcStatusBarFragment), PC status bar view (PcStatusBarView), etc. The added UI control classes inherit from the corresponding control classes of the standard status bar mentioned above and implement similar functionality for extended screen status bar. The details will not be repeated here.
[0260] In addition, to ensure compatibility, in this embodiment of the present application, the window management service (WMS), status bar management service (StatusBarManagerService), wallpaper management service (WallpaperManagerService), notification management service (NotificationManagerService, NMS), and PC module (HwPartsPowerOffice) in the application framework layer are also correspondingly modified.
[0261] The Window Manager Service (WMS) contains the window management policy (WindowManagerPolicy) and the lock screen service agent (KeyguardServiceDelegate). WMS allows the same application to run multiple application windows simultaneously.
[0262] StatusBarManagerService supports the registration and management of multiple status bars (standard status bars and extension status bars, etc.). StatusBarManagerService is the manager of StatusBarService. StatusBarService is used to implement: loading, updating, and removing status bar icons; application interaction with the status bar; notification information handling; etc.
[0263] The WallpaperManagerService allows wallpaper to be displayed on multiple displays (eg, Display0 corresponding to the standard desktop and Display1 corresponding to the extended screen desktop).
[0264] NMS supports PC UX style and supports managing the notification center after multiple status bars are pulled down.
[0265] HwPartsPowerOffice is used to modify the projection entry. In this embodiment of the application, modifications to the PC Management Service (HwPCManagerService) are added to HwPartsPowerOffice to implement loading of the extended screen desktop and extended screen status bar in the projection scenario.
[0266] It should be noted that inheritance in this application means that a subclass inherits the functionality and behavior of a parent class such that a subclass object (instance) has the instance domain and methods of the parent class; or, that a subclass inherits methods from a parent class such that the subclass has the same behavior as the parent class.
[0267] In some embodiments, the system architecture diagrams shown in FIG. 12A, FIG. 12B, and FIG. 12C further include an interface layer, which includes Android Interface Definition Language (AIDL) and Broadcast. AIDL is a communication interface between different processes. Broadcast is used to send and receive broadcast messages, and can implement message forwarding.
[0268] It should be noted that the system UI includes multiple types of system interfaces. Figures 12A, 12B, and 12C are merely examples for explanation, and are not limited to the components of the system UI and the subclasses of the system UI shown in Figures 12A, 12B, and 12C. In this embodiment of the present application, other components of the system UI and other subclasses of the system UI may be further included. This is not particularly limited in this specification.
[0269] For example, for launcher, Figures 13A and 13B show yet another software system framework according to an embodiment of the present application. From Figures 11A and 11B, it can be seen that the desktop launcher APK includes UniHomelauncher and PcHomelauncher. As shown in Figures 13A and 13B, the desktop launcher APK specifically includes a common class, a UI control class, a service, and an activity stack.
[0270] In this application, the following common classes are modified to ensure compatibility with the extended screen desktop: desktop launcher provider, database assistant, desktop launcher settings class, and desktop launcher constants class.
[0271] A LauncherProvider is a database content provider for the desktop launcher's database of application icons for multiple desktop instances (e.g., standard desktop and extended screen desktop) run by the desktop launcher; it allows other applications to access or perform operations on the data in the desktop launcher.
[0272] The DatabaseHelper is used to create and manage databases.
[0273] LauncherSettings is used to implement the definition of the string for the database item. The inner class Favorites provides a Uri to perform operations on the LauncherProvider and the field name of the corresponding field in the database.
[0274] LauncherConstants maintains and manages constants within an application.
[0275] In this application, the following are added to the common classes to implement the extended screen desktop: PC layout configuration (PclayoutConfig), PC device file (PcDeviceProfile), PC cell counter (PcCellNumCalculator), PC desktop launcher policy (PcLauncherPolicy), PC desktop launcher model (PcLauncherModel), PC loading task (PcLoaderTask), etc. The added common classes are inherited from the corresponding common classes in the standard desktop and are used to implement similar functionality in the extended screen desktop.
[0276] PclayoutConfig is used to set the layout attributes (e.g., width and height) and parameters of the extended screen desktop. The display effect of components on the extended screen desktop can be restricted by specifying the layout attributes.
[0277] PcDeviceProfile is used to define the basic attributes of each module on the extended screen desktop; it is responsible for initializing the values of attributes, setting the padding of each element's layout, etc.
[0278] PcCellNumCalculator is a policy class for desktop icon layout.
[0279] PcLauncherPolicy manages the display policy for the extended screen desktop.
[0280] PcLauncherModel is a data handling class that stores the desktop state of the extended screen desktop, provides an API for reading and writing to the database, and updates the database when applications are removed, replaced, or added.
[0281] PcLoaderTask is used to load the extended screen desktop.
[0282] In this application, the following are further added to the control classes to implement the extended screen desktop: PC Drag Layer (PcDraglayer), PC Desktop Workspace (PcWorkSpace), PC Cell Layout (PcCelllayout), PC Program Dock View (PcDockview), PC Folder (PcFolder), PC Folder a Icon (PcFolderIcon), etc. All added control classes inherit from the corresponding control classes in the standard desktop and are used to implement similar functionality in the extended screen desktop.
[0283] PcDraglayer is a ViewGroup responsible for event distribution, it is used to proactively handle events for the extended screen desktop and distribute events based on the context. The DragLayer contains: desktop layout (Workspace), navigation points (QuickNavigationView), dock areas (Hotseat) and recent task list (OverviewContainer). Hotseat is a container responsible for managing the dockbars.
[0284] PcWorkSpace is a subclass of PagedView that consists of multiple CellLayout controls, each of which represents a split screen. PcWorkSpace is used to implement the split-screen sliding feature on extended screen desktops.
[0285] PcCellLayout is used to manage the display and layout of split screen icons on an extended screen desktop.
[0286] PcDockview is used to implement the Dock layout on the projection side.
[0287] PcFolder is used to implement folders on the extended screen desktop, including folders created by the user and folders provided by the system.
[0288] To implement an extended screen desktop, the activity stack of this embodiment of the present application supports managing a task stack corresponding to the extended screen desktop. A PC desktop service (PcHomeService) is added to the service. The PcHomeService is used to launch the extended screen desktop.
[0289] In addition, to ensure compatibility between the application framework layer and extended screen desktop projection, in this embodiment of the present application, the Activity Management Service (ActivityManagerService, AMS) in the application framework layer is correspondingly modified so that the AMS supports the simultaneous execution of multiple application windows by using the same application, e.g., the simultaneous execution of the two desktop instances described above.
[0290] In some embodiments, a dockbar is added to the extended screen desktop; correspondingly, IdockBar.aidl is added to the desktop launcher to provide a framework layer binder interface for performing operations on the dockbar.
[0291] Next, a task stack according to one embodiment of the present application will be described.
[0292] For example, as shown in FIG. 14, the activity stack includes a task stack corresponding to a default screen and a task stack corresponding to an extended screen. The mobile phone 100 may separately hold a task stack corresponding to a default screen and a task stack corresponding to an extended screen. The mobile phone 100 distinguishes between the two task stacks by using a display ID. The display ID of the task stack corresponding to the default screen is the ID of Display0, and the display ID of the task stack corresponding to the extended screen is the ID of Display1. As shown in FIG. 14, the task stack corresponding to Display1 executes one desktop task stack (HomeStack) and N application stacks (AppStack), that is, from stack 1 to stack N, where the HomeStack includes one or more desktop tasks (Task), and the AppStack includes one or more application tasks; the task stack corresponding to Display0 executes one HomeStack and one AppStack, where the AppStack includes one or more application tasks (e.g., Task-A and Task-B). One task includes one or more activities.
[0293] PcHomeLauncher uses Display1 to execute the HomeStack of the extended screen of the mobile phone 100, and UniHomeLauncher uses Display0 to execute the HomeStack of the default screen of the mobile phone 100. This makes it possible to implement data separation between the HomeStack of the extended screen and the HomeStack of the default screen. After obtaining an input event using a pointer event listener (TapPointerListener), the WMS can deliver input events that operate on the extended screen to Display1 and input events that operate on the default screen to Display0.
[0294] Next, based on the above application scenario and software system, a specific implementation of the screen projection method according to an embodiment of the present application will be described in detail.
[0295] See Figures 11A to 13B. In an embodiment of the present application, a software system framework is modified, such that the modified software system framework supports running multiple desktop instances and multiple status bar instances on different displays. Based on the aforementioned software system framework, an embodiment of the present application provides a screen projection method, including the following steps:
[0296] S101: After being connected to the display of the projection destination device (eg, computer 200), the mobile phone 100 receives a projection instruction to confirm the projection.
[0297] S102: In response to the projection instruction, the mobile phone 100 uses the system UI to add an extended screen status bar and an associated logic control class, and the display ID corresponding to the extended screen status bar is the ID of the extended screen display area Display1.
[0298] S103: In response to the projection instruction, the mobile phone 100 uses the launcher to further add an extended screen desktop and a related logic control class, and the display ID corresponding to the extended screen desktop is the ID of the extended screen display area Display1.
[0299] Specifically, in some embodiments, in response to a projection instruction, the mobile phone 100 invokes the service ProductiveService using HwPCManagerService to load the extended screen status bar; and invokes the service PcHomeService using HwPCManagerService to load the extended screen desktop.
[0300] In order to further describe the specific implementation of the projection method provided in this embodiment of the present application, the software implementation procedures of the system UI and launcher according to this embodiment of the present application will be described in detail separately.
[0301] For example, the software implementation procedure of the system UI according to this embodiment of the present application is shown in Figure 15A-1 and Figure 15A-2. The implementation procedure includes the following steps:
[0302] (1) When the mobile phone 100 is powered on, in the non-projection mode, the mobile phone 100 starts the Zeyote process, generates a virtual machine instance using the Zeyote process, and executes a system service (SystemServer).
[0303] (2) SystemServer launches a series of services required to run the system, including SystemUIService.
[0304] (3) SystemUIService launches the System UI and calls SystemUIApplication.
[0305] Specifically, the SystemServer launches the boot service, core service, and other services individually; it launches the system UI and launcher individually by calling the mActivityManagerService.systemReady() method in the startOtherService method.
[0306] (4) SystemUIApplication uses the startServicesIfNeeded function to start system UI components, including Systembars.
[0307] (5) After startup, SystemBars launches a standard status bar (StatusBar) based on the configuration item config_statusBarComponent.
[0308] In this embodiment of the present application, after starting, the SystemUIService reads the configuration item config_SystemUIServiceComponents and loads each component (including SystemBars). After loading, the SystemBars component reads the configuration item (config_statusBarComponent) and determines the status bar operation control type according to the configuration item; and determines whether to start the extended screen status bar (PcStatusBar) or the standard status bar (StatusBar) according to the determined status bar operation control type.
[0309] In some embodiments, when the mobile phone 100 is in a non-projection mode, the value of config_systemBarComponent is com.android.systemui.statusbar.phone.PhoneStatusBar and SystemBars determines that the status bar control type is StatusBar. When the mobile phone 100 is in a projection mode, the value of config_systemBarComponent is com.android.systemui.statusbar.tablet.TabletStatusBar and SystemBars determines that the status bar control type is PcStatusBar.
[0310] (6) The CommandQueue's callback interface is called to add a callback to the standard status bar.
[0311] (7) The standard status bar initializes the layout and registers the IstatusBar object corresponding to the standard status bar with the StatusBarManagerService.
[0312] (8) The standard status bar creates a standard status bar window view (StatusBarWindowView) and adds it to the StatusBarWindowController.
[0313] (9) To add a standard status bar to Display1, StatusBarWindowController calls the WindowManager interface to add a standard status bar to WMS.
[0314] In some embodiments, during the launch process of StatusBar, the CommandQueue object is transferred to the StatusBarManagerService and stored as mBar. When a client obtains an interface of the system service StatusBarManagerService through the ServiceManager, the client can invoke methods of the CommandQueue object through the mBar. The CommandQueue invokes the callback interface to send messages back to the StatusBar to update the StatusBar.
[0315] (10) The standard status bar calls the StatusBarPromptManager to register the projected Broadcast.
[0316] (11) After the standard status bar is created, the notification manager service (NotificationManagerService) is called to register a message listener.
[0317] (12) After being connected to the display (DisplayDevice) of the projection destination device (i.e., the extended screen), the mobile phone 100 calls the DMS.
[0318] In this embodiment of the present application, the mobile phone 100 may connect to the target device using a wired connection, or may connect to the target device using wireless communication technologies such as NFC, Wi-Fi, Bluetooth, etc.
[0319] (13) The DMS triggers a display event (OnDisplayevent), creates a logical display area Display1 corresponding to the extended screen, and calls the display management target (DisplayManagerGlobal) to obtain the display ID of Display1.
[0320] In some embodiments, the DMS calls the handleDisplayDeviceAddedLocked function to create a corresponding logical device (LogicalDevice) for the display (DisplayDevice), adds the LogicalDevice to a list of logical devices (mLogicalDevices) managed by the DMS, and adds the DisplayDevice to the display list (mDisplayDevices) of the DMS to create a logical display area (LogicalDisplay) for the DisplayDevice (i.e., the extended screen display area Display1). The DMS calls DisplayManagerGlobal to determine the display ID of the logical display area.
[0321] (14) DisplayManagerGlobal sends a display event to the display listening agent (DisplaylistenerDelegate) to add a display listening agent for Display1.
[0322] DisplayManagerGlobal primarily manages communication between the Display Manager and the DMS.
[0323] (15) The DisplaylistenerDelegate sends a notification (onDisplayAdded) indicating that a display area has been added.
[0324] (16) RootActivityContainer launches HwPCManagerService to load the extension screen status bar.
[0325] In this embodiment of the application, modifications to HwPCManagerService are added to hwPartsPowerOffice to launch the extended screen desktop and extended screen status bar in a projection scenario.
[0326] (17) The HwPCManagerService sends a projected capsule prompt broadcast to the StatusBarPromptManager.
[0327] (18) HwPCManagerService sends a projection notification message to NotificationManagerService.
[0328] (19) HwPCManagerService receives a mode switch instruction, which instructs the current non-projection mode to be switched to the projected mode.
[0329] In this embodiment of the present application, after receiving the capsule prompt broadcast and the projection notification message, the system UI displays the capsule prompt in the status bar and displays the projection notification message in the notification center. For example, the capsule prompt is the prompt box 13 shown in FIG. 3E. After the mobile phone 100 receives a user's input operation of tapping the connection control unit 303 of the prompt box 13, the HwPCManagerService obtains a mode switching instruction. For example, after the mobile phone 100 receives the NFC connection response sent by the computer 200, the HwPCManagerService receives the mode switching instruction.
[0330] (20) In response to the instruction, HwPCManagerService launches ProductiveService.
[0331] In some embodiments, the HwPCManagerService calls bindService to launch the ProductiveService.
[0332] (21) ProductiveService calls Systembars to launch the extended screen status bar.
[0333] In some embodiments, ProductiveService calls PcSystembars to launch the extended screen status bar.
[0334] (22) Systembars creates an extension screen status bar based on a configuration file.
[0335] In some embodiments, Systembars reads the configuration config_PcstatusBarComponent, determines that the status bar's control type is PcStatusBar, and creates the extended screen status bar.
[0336] (23) The extension screen status bar calls the callback interface of the CommandQueue to add a callback to the extension screen status bar.
[0337] (24) The extended screen status bar initializes the layout and registers an IstatusBar object corresponding to the extended screen status bar with the StatusBarManagerService.
[0338] (25) The extended screen status bar creates a PC status bar window view (StatusBarWindowView) and adds it to the StatusBarWindowController.
[0339] (26) In order to add an extended screen status bar to Display1, StatusBarWindowController calls the WindowManager interface to add the extended screen status bar to WMS.
[0340] For example, referring to the software implementation procedure of the system UI shown in FIG. 15A-1 and FIG. 15A-2, FIG. 15B-1 and FIG. 15B-2 show an example of the software implementation of the StatusBar.
[0341] As shown in FIG. 15B-1 and FIG. 15B-2, in the non-projection mode, CommandQueue needs to support only one status bar instance, i.e., the standard status bar or the extended screen status bar. It can be understood that the mobile phone needs to support only the standard status bar in the non-projection mode, and the computer needs to support only the extended screen status bar in the non-projection mode. In the projection mode, CommandQueue needs to support multiple status bar instances and store callbacks for multiple status bar instances. For example, when the mobile phone 100 is projected to the computer 200, CommandQueue needs to support the standard status bar corresponding to the default screen display area (Display0) of the mobile phone 100 and the extended screen status bar corresponding to the extended screen display area (Display1) of the mobile phone 100.
[0342] In the projection mode, the status bar context needs to be adjusted to ensure that each status bar gets the corresponding display information (such as the display ID). The StatusBarWindowController also needs to support adding multiple status bars. When the WindowManagerService adds a window using the addWindow function, the display ID of the window's window status (windowState) needs to be changed so that the window can be correctly displayed on the corresponding display screen. For example, the standard status bar can be displayed on the default screen of the mobile phone 100, and the extended screen status bar can be displayed on the extended screen of the mobile phone 100 (i.e., the display screen of the computer 200).
[0343] See Figures 15B-1 and 15B-2. When the SystemUIService is started, it calls the startServicesIfNeeded function of the SystemUIApplication to start the components of the system UI (including SystemBars).
[0344] In non-projection mode, after SystemBars is launched, it gets the default status bar (i.e., the standard status bar of the mobile phone 100) based on the configuration item config_statusBarComponent. SystemBars calls the start() function of the standard status bar to perform initialization. The callback is set using a CommandQueue component. Then, the Binder interface is called to register the IstatusBar object corresponding to the standard status bar with the StatusBarManagerService for management using the registerStatusBar function.
[0345] When the mobile phone 100 is connected to a display (i.e., computer 200), the DMS receives an OnDisplayDeviceEvent through an input channel, and the DMS delivers a DisplayEvent based on a CallbackRecord. After the mobile phone 100 switches from a non-projection mode to a projection mode, the DMS creates a logical display area Display1 corresponding to the extended screen, and calls DisplayManagerGlobal to obtain a display ID of Display1. DisplayManagerGlobal sends a display event to DisplaylistenerDelegate to add a display listening agent of Display1. The system UI component reads the configuration item config_PcSystemUIServiceComponents in the configuration file Config.xml. After SystemBars is launched, SystemBars launches the extended screen status bar based on the configuration item config_PcstatusBarComponent. As shown in FIG. 15B-1 and FIG. 15B-2, in the projection mode, SystemBars calls the start() function of the extended screen status bar to perform initialization. The callback is set using a CommandQueue component. Next, the Binder interface is called to register the IstatusBar object corresponding to the extended screen status bar with the StatusBarManagerService for management using the registerStatusBar function. The extended screen status bar then creates a StatusBarWindowView and adds it to the StatusBarWindowController, which calls the WindowManager interface to add the extended screen status bar to the WMS.WMS calls ViewRootImpl and IwindowSession of the window management target (WindowManagerGlobal) and changes the display ID of the WindowState of the window corresponding to the extended screen status bar to the ID of Display1.
[0346] As shown in Figures 15B-1 and 15B-2, the StatusBarManagerService includes an ArryMap list and a SpareArry list. The ArryMap list holds Binder objects for multiple IsatusBar objects registered with the StatusBarManagerService. The SpareArry list holds the correspondence between multiple display Uistate objects and multiple standard status bars.
[0347] For example, Figures 15C-1 and 15C-2 show software implementation procedures of a launcher according to an embodiment of the present application. Next, the software implementation procedures shown in the figures will be described in detail.
[0348] First, it should be noted that in this embodiment of the application, since it is necessary to support extended screen display in projected mode, the category option "android.intent.category.SECONDARY_HOME" is added to the intent filter configuration of the PcHomeLauncher node in the application's AndroidMainfest.xml. This option is used to represent the extended screen desktop.
[0349] In the non-projected mode, in step (2) above, the SystemServer starts a series of services required to run the system, including the launcher.
[0350] Specifically, the SystemServer process launches PMS and AMS during boot. After boot, PackageManagerService parses the application APK and installs it to the system. AMS is mainly used to launch and manage four major components. The entry to launch the launcher is the systemReady method of AMS.
[0351] (31) AMS starts the launcher using the StartHomeOnAllDisplays method.
[0352] (32) The activity task manager (ActivityTaskManagerinternal) calls StartHomeOnDisplays to start the launcher.
[0353] (33) The RootActivityContainer determines whether the display ID is the ID of the default screen display area (i.e., Display0). If the display ID is the ID of the default screen display area, the standard desktop activity is resolved (resolveHomeActivity) and step (34) is performed; otherwise, if the display ID is not the ID of the default screen display area, the activity of the extended screen desktop is resolved (resolveSecondaryHomeActivity) and step (37) is performed.
[0354] In some embodiments, if the display ID is that of Display0, the PMS queries for an activity in CATEGORY_HOME and uses that as the desktop; or, if the display ID is that of Display1, the PMS queries for an activity in SECONDARY_HOME and uses that as the desktop.
[0355] (34) The ActivityStartController calls the ActivityStarter.
[0356] (35)ActivityStarter calls startHomeActivityLocked to launch the standard desktop.
[0357] In projection mode, for steps (12) to (16), please refer to the relevant explanations of Figures 15A-1 and 15A-2.
[0358] During the execution of steps (12) to (16), the DisplayManagerService sends an onDisplayAdded notification when it adds a display area Display. Upon receiving the notification, the HwPCManagerService of the PC module (hwPartsPowerOffice) starts the launcher for the extended screen (i.e., PcHomeLauncher) using startHomeOnDisplay.
[0359] (36)HwPCManagerService calls the PC desktop service (HwHomeService) using BindService.
[0360] (37)HwHomeService calls AMS using StartHomeOnProductiveDisplay.
[0361] (38) AMS calls the StartHomeOnAllDisplays method to launch PcHomeLauncher.
[0362] (39) The Activity Task Manager calls StartHomeOnDisplays to launch PcHomeLauncher.
[0363] Next, step (33) is executed, the activity of the extended screen desktop is obtained in step (33) (resolveSecondaryHomeActivity); and step (40) is executed.
[0364] (40) The ActivityStartController calls the ActivityStarter.
[0365] (41)ActivityStarter calls startHomeActivityLocked to launch the extended screen desktop.
[0366] Based on the above embodiment, an embodiment of the present application provides a screen projection method, which includes but is not limited to steps S201 to S205.
[0367] S201: A first electronic device invokes a first module of a first application to execute a first desktop, and the first desktop is associated with a first display area; the first electronic device displays a first display content based on the first display area, and the first display content includes the first desktop.
[0368] S202: In response to the first user operation, the first electronic device invokes a second module of the first application to execute a second desktop, the second desktop being associated with a second display area; the first electronic device sends second display content corresponding to the second display area to the second electronic device, the second display content including the second desktop.
[0369] In this embodiment of the present application, the first electronic device may be the aforementioned electronic device 100, for example, the mobile phone 100; the second electronic device may be the aforementioned electronic device 200, for example, the computer 200. The first application may be the aforementioned desktop launcher, for example, HWLauncher6; the first module may be a standard desktop launcher, for example, UniHomelauncher; the second module may be an extended screen desktop launcher, for example, PcHomelauncher. The first desktop may be the aforementioned standard desktop, and the second desktop may be the aforementioned extended screen desktop. The first display area may be the aforementioned default screen display area, i.e., Display0; the second display area may be the aforementioned extended screen display area, i.e., Display1.
[0370] For example, the first display content may be a user interface displayed by the mobile phone 100 shown in Figure 3A, and the first desktop may be the desktop shown in Figure 3A. The second display content may be a user interface displayed by the computer 200 based on the projection data transmitted by the mobile phone 100, as shown in Figure 3G; the second desktop may be the desktop shown in Figure 3G.
[0371] S203: In response to a second user operation performed on the first display content, the first electronic device displays a third display content based on a task stack executed in the first display area.
[0372] For example, the first display content may be the user interface 11 displayed by the mobile phone 100 shown in FIG. 3A, the second user operation may be a downward sliding operation performed on the status bar of the user interface 11 shown in FIG. 3A, and the third display content may be the control center interface 12 shown in FIG. 3B.
[0373] S204: In response to a third user operation performed on the second display content displayed by the second electronic device, the first electronic device determines, based on a task stack executed in the second display area, that the display content corresponding to the second display area is a fourth display content.
[0374] S205: The first electronic device transmits the fourth display content to the second electronic device.
[0375] For example, the second display content may be the user interface 16 displayed by the computer 200 shown in FIG. 3G, and the second user operation may be an input operation performed on an interface element (e.g., an icon in the status bar 401, the search bar 402, or an icon in the dock bar 403) displayed in the user interface 16. For example, the interface element may be a notification center icon 401A in the status bar 401, and the fourth display content may include the user interface 16 and the notification center window 17 shown in FIG. 4A.
[0376] It should be noted that the first electronic device receives a third user operation using the second electronic device. After receiving the third user operation, the second electronic device determines a first input event, and the first input event indicates the third input operation. For example, the first input event includes the coordinates of the third input operation performed on the display screen of the second electronic device, the operation type of the third input operation (e.g., a touch operation or a mouse click operation), etc. The second electronic device sends the first input event to the first electronic device; the first electronic device determines the third input operation indicated by the first input event based on the first input event and the task stack performed in the second display area, and executes a response event corresponding to the third input operation. After the response event is executed, the display content corresponding to the second display area is updated to a fourth display content. The first display device sends the updated fourth display content to the second display device, and the second display device displays the fourth display content.
[0377] In this embodiment of the present application, the first electronic device supports the simultaneous execution of multiple desktop instances in different display areas by using the same application, for example, executing a first desktop in a first display area by using a first module of the first application, and executing a second desktop in a second display area by using a second module of the first application. The first electronic device determines display content on a home screen of the first electronic device based on a task stack executed in the first display area; and determines display content to be projected to the second electronic device based on a task stack executed in the second display area. In this manner, the first electronic device and the second electronic device may display different desktops and other different content based on the two different display areas.
[0378] In some embodiments, in response to a second user operation performed on the first display content, the first electronic device displaying a third display content based on a task stack executed in the first display area includes: in response to a second user operation performed on the first desktop in the first display content, the first electronic device displays the third display content, which is a task stack of the first application, based on the task stack executed in the first display area; in response to a third user operation performed on the second display content displayed by the second electronic device, determining that the display content corresponding to the second display area is a fourth display content based on the task stack executed in the second display area includes: in response to a third user operation performed on the second desktop displayed by the second electronic device, the first electronic device determines that the display content corresponding to the second display area is a task stack of the first application, based on the task stack executed in the second display area.
[0379] For example, the first display content may be an application icon (e.g., a gallery icon) on the desktop (i.e., the first desktop) shown in FIG. 3A, and the second user operation may be a touch operation performed on the application icon. In response to the second user operation, the mobile phone 100 determines a response event corresponding to the second user operation based on a task stack (e.g., the aforementioned desktop task stack Homestack) that is a task stack of the desktop launcher and that is executed on Display0. For example, the second display content may be a desktop (i.e., the second desktop) displayed by the computer 200 shown in FIG. 6A-1 and FIG. 6A-2 (i.e., the second desktop), and the third user operation may be an input operation performed on the application list icon 701A of the dock bar 403 displayed on the user interface 16. In response to the third user operation, the mobile phone 100 determines a response event corresponding to the third user operation based on a task stack of the desktop launcher that is executed on Display1 (e.g., the above-mentioned desktop task stack Homestack), executes the response event, and then transmits an updated fourth display content (i.e., the user interface 24 shown in Figures 6A-1 and 6A-2) corresponding to the second display area to the computer 200. The computer 200 displays the user interface 24 shown in Figures 6A-1 and 6A-2.
[0380] In this embodiment of the present application, for a second user operation performed on the first desktop, the first electronic device may execute a response event corresponding to the second user operation based on the task stack, which is the task stack of the first application and executed in the display area associated with the first desktop; for a third user operation performed on the second desktop, the first electronic device may execute a response event corresponding to the third user operation based on the task stack, which is the task stack of the first application and executed in the display area associated with the second desktop. This can ensure data separation between events (input events and / or response events) of different desktops. In addition, since both desktop instances are executed by modules of the first application, the two desktops can implement specified data sharing, and the second desktop can inherit some or all functional features of the first desktop.
[0381] In some embodiments, before the first electronic device displays the first display content based on the first display area, the method further includes: the first electronic device invokes a third module of the second application to execute a first status bar, the first status bar being associated with the first display area, and the first display content including the first status bar; the method further includes: in response to the first user operation, the first electronic device invokes a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area, and the second display content including the second status bar.
[0382] In this embodiment of the present application, the first user operation is an input operation by a user to determine the projection of the first electronic device to the second electronic device. In some embodiments, in step S202, in response to the projection instruction, the first electronic device calls a second module of the first application to execute a second desktop and a fourth module of the second application to execute a second status bar, and both the second desktop and the second status bar are associated with the second display area. For example, for the projection instruction, please refer to the projection instruction or the mode switching instruction in the above embodiment.
[0383] In this embodiment of the present application, the second application may be the aforementioned system interface, e.g., System UI; the third module may be a standard status bar, e.g., StatusBar; the fourth module may be an extended screen status bar, e.g., PcStatusBar. The first status bar may be the aforementioned standard status bar, and the second status bar may be the aforementioned extended screen status bar.
[0384] For example, the first status bar may be status bar 101 shown in FIG. 3A, and the second status bar may be status bar 401 shown in FIG. 3G.
[0385] In this embodiment of the present application, the first electronic device supports the simultaneous execution of multiple status bar instances in different display areas using the same application, e.g., executing a first status bar in a first display area using a third module of a second application and executing a second status bar in a second display area using a fourth module of the second application. In this manner, since the two status bars are associated with different display areas, the first electronic device and the second electronic device may display different status bars, thereby ensuring data separation between the events (input events and / or response events) of the two status bars. Furthermore, since both status bars are executed by modules of the second application, the two status bars may implement sharing of designated data (e.g., notification messages) and the second status bar may inherit some or all functional features of the first status bar.
[0386] In some embodiments, before the first electronic device displays the first display content based on the first display area, the method further includes: the first electronic device invokes a fifth module of the third application to execute a first display object of the first variable, the first variable being associated with the first display area and the first display content including the first display object; the first variable being associated with the second display area and the second display content including the first display object.
[0387] In this embodiment of the present application, the first electronic device supports simultaneous display of display objects corresponding to the same variable in multiple different display areas. In this embodiment of the present application, the third application and the second application may be the same application or may be different applications, which is not particularly limited in this specification.
[0388] In some embodiments, the method further includes: in response to a fourth user operation performed on the first display content, a fifth module of the third application is invoked to change the display object of the first variable to a second display object; the first electronic device updates the display content corresponding to the first display area to a fifth display content, where the fifth display content includes the second display object; the first electronic device updates the display content corresponding to the second display area to a sixth display content and sends the sixth display content to the second electronic device, where the sixth display content includes the second display object.
[0389] In this embodiment of the present application, the first electronic device supports simultaneous display of display objects corresponding to the same variable in multiple different display areas, and after a user changes the display object of the first variable in the first display area, the display object of the first variable in the second display area also changes accordingly.
[0390] In some embodiments, the first variable indicates a wallpaper display object, the wallpaper display object being a still image and / or a moving image, and the wallpaper includes a lock screen wallpaper used when the screen is locked and / or a desktop wallpaper used when the screen is unlocked.
[0391] In this embodiment of the present application, the third application may be a system interface (system UI) or a wallpaper application. For example, the fifth module may be a wallpaper management service, such as WallpaperManagerService.
[0392] For example, a first display object of the wallpaper is displayed in a first display area as desktop wallpaper 107 shown in Figure 3A; a first display object of the wallpaper is displayed in a second display area as desktop wallpaper 404 shown in Figure 3G. Desktop wallpaper 107 and desktop wallpaper 404 originate from the same picture.
[0393] For example, the first display object of the wallpaper is displayed in the first display area as lock screen wallpaper 902 on the lock screen shown in Figure 10B; the first display object of the wallpaper is displayed in the second display area as lock screen wallpaper 901 on the lock screen shown in Figure 10A. Desktop wallpaper 107 and desktop wallpaper 404 are derived from the same picture.
[0394] In this embodiment of the present application, after a user changes the wallpaper displayed on the first electronic device, the wallpaper projected on the second electronic device also changes accordingly.
[0395] In some embodiments, a plurality of themes are pre-configured on the first electronic device, the theme indicating a desktop layout style, an icon display style, and / or an interface color, etc.; the first variable indicates a display object of the theme, the display object of the theme being display content corresponding to one of the plurality of themes.
[0396] In this embodiment of the present application, after a user changes the theme displayed on the first electronic device, the theme projected on the second electronic device changes accordingly.
[0397] In some embodiments, a first module of a first application includes a first common class used to create and run a first desktop, a first user interface UI control class, and a desktop task stack for the first desktop; a second module of the first application includes a second common class used to create and run a second desktop, a second UI control class, and a desktop task stack for the second desktop, where some or all of the classes of the second common class are inherited from the first common class and some or all of the classes of the second UI control class are inherited from the first UI control class.
[0398] In this embodiment of the present application, a second common class, a second UI control class, and a desktop task stack of the second desktop used to create and run the second desktop are added to the first electronic device; some or all of the added common class and UI control class are inherited from the first common class and the first UI control class corresponding to the original first desktop. Thus, the second desktop can inherit some functional features of the first desktop, and the two desktops can implement sharing of specified data.
[0399] In some embodiments, the second common class includes one or more of the following: desktop launcher provider, database assistant, desktop launcher settings class, desktop launcher constants class, PC layout configuration, PC device file, PC cell counter, PC desktop launcher policy, PC desktop launcher model, PC loading task, etc.; the second UI control class includes one or more of the following: PC drag layer, PC desktop workspace, PC cell layout, PC program dock view, PC folder, PC folder a Icons, etc.
[0400] For example, the second common class may be the common class shown in Figures 13A and 13B, the second UI control class may be the UI control class shown in Figures 13A and 13B, the desktop task stack of the first desktop may be the task stack of the standard desktop shown in Figures 13A and 13B, and the desktop task stack of the second desktop may be the task stack of the extended screen desktop shown in Figures 13A and 13B.
[0401] In some embodiments, the third module of the second application includes a first component used to create and execute the first status bar, a first dependency control class, and a third UI control class; the second module of the first application includes a second component used to create and execute the second status bar, a second dependency control class, and a fourth UI control class, some or all of the components of the second component inherit from the first component, some or all of the classes of the second dependency control class inherit from the first dependency control class, and some or all of the classes of the fourth UI control class inherit from the third UI control class.
[0402] In this embodiment of the present application, a second component, a second dependency control class, and a fourth UI control class used to create and execute a second status bar are added to the first electronic device; some or all of the added components, dependency control classes, and UI control classes are inherited from the first component, the first dependency control class, and the third UI control class corresponding to the original first status bar. Thus, the second status bar can inherit some functional features of the first status bar, and the two status bars can implement sharing of specified data.
[0403] In some embodiments, the second component includes one or more of the following: a PC dependency class, a PC system provider, a PC system bar, and a second status bar; the second dependency control class includes one or more of the following: a PC status bar window control class, a screen control class, a lock screen control class, and a remote control class; the fourth UI control class includes one or more of the following: a PC status bar window view, a PC notification panel view, a PC quick settings fragment, a PC status bar fragment, and a PC status bar view.
[0404] For example, the first component, the first dependency control class, and the third UI control class may be the component, dependency control class, and UI control class shown in Figures 12A, 12B, and 12C, respectively, for implementing a standard status bar, and the second component, the second dependency control class, and the fourth UI control class may be the component, dependency control class, and UI control class shown in Figures 12A, 12B, and 12C, respectively, for implementing an extended screen status bar.
[0405] In some embodiments, the identification ID of the display area associated with the second module is an ID of the second display area; in response to the first user operation, the first electronic device invokes a second module of the first application to execute the second desktop, the second desktop being associated with the second display area includes: in response to the first user operation, a PC management service receives a mode switch instruction, the instruction instructing to switch a current non-projection mode to a projection mode; in response to the instruction, the PC management service invokes a PC desktop service, the PC desktop service invokes an activity management service, the activity management service invokes a PC desktop service to execute the second module of the first application; The activity task manager is invoked; the root activity container is invoked to determine the ID of the display area associated with the second module; if the ID of the display area associated with the second module is the ID of the second display area, then the second desktop's Activity is queried and used as the desktop's Activity to be launched, or if the ID of the display area associated with the second module is the ID of the first display area, then the first desktop's Activity is queried and used as the desktop's Activity to be launched; the activity launch controller invokes the activity starter to launch the second desktop.
[0406] In some embodiments, in response to the first user operation, the first electronic device invokes a fourth module of the second application to execute the second status bar, the second status bar being associated with the second display area includes: in response to the first user operation, the PC management service receives a mode switching instruction, the instruction instructs to switch a current non-projection mode to a projection mode; in response to the instruction, the PC management service launches a productivity service, the productivity service invokes a system bar to control the second status bar, the system bar creates the second status bar based on a configuration file; the second status bar invokes a callback interface of the command queue to add a callback to the second status bar; the second status bar initializes a layout and registers an IstatusBar object corresponding to the second status bar with the status bar management service; the second status bar creates a PC status bar window view and adds the PC status bar window view to a status bar window control class; the status bar window control class invokes a window management interface to add the second status bar to the window management service to add the second status bar to the second display area.
[0407] In some embodiments, in the non-projection mode, the command queue supports a first status bar associated with the first display area; in the projected mode, the command queue supports both a first status bar associated with the first display area and a second status bar associated with the second display area.
[0408] The implementations of the present application can be combined as necessary to achieve different technical effects.
[0409] All or part of the above-mentioned embodiments may be implemented by software, hardware, firmware, or any combination thereof. When software is used for implementation, all or part of the above-mentioned embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded into a computer and executed, the procedures or functions according to the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (e.g., coaxial cable, optical fiber, or digital subscriber line) or wireless (e.g., infrared, radio wave, microwave) manner. The computer-readable storage medium may be any available medium accessible to a computer, or a data storage device integrating one or more available media, such as a server or a data center. The usable media may be magnetic media (e.g., a floppy disk, hard disk, or magnetic tape), optical media (e.g., a DVD), semiconductor media (e.g., a solid state disk (SSD)), and the like.
[0410] Those skilled in the art may understand that all or part of the steps of the method in the embodiment may be implemented by a computer program that instructs relevant hardware. The program may be stored in a computer-readable storage medium. When the program is executed, the steps of the method in the embodiment are executed. The aforementioned storage medium includes any medium that can store program code, such as a ROM, a random access memory RAM, a magnetic disk, or an optical disk.
[0411] In conclusion, the above description is only an embodiment of the technical solution of the present invention, and is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement or improvement made according to the disclosure of the present invention shall be within the protection scope of the present invention.
Claims
1. 1. A screen projection method comprising: Invoking, by a first electronic device, a first module of a first application to execute a first desktop, the first desktop being associated with a first display area; displaying, by the first electronic device, first display content based on the first display area, the first display content including the first desktop; invoking, by the first electronic device in response to a first user operation, a second module of the first application to execute a second desktop, the second desktop being associated with a second display area; sending, by the first electronic device, second display content corresponding to the second display area to the second electronic device, the second display content including the second desktop, the second display content adding functionality not available in application windows of the first electronic device and masking functionality of the first electronic device that is not applicable to the second electronic device; displaying, by the first electronic device in response to a second user operation performed on the first display content, a third display content based on a task stack executed in the first display area; determining, by the first electronic device in response to a third user operation performed on the second display content displayed by the second electronic device, that the display content corresponding to the second display area is a fourth display content based on a task stack executed in the second display area; transmitting, by the first electronic device, the fourth display content to the second electronic device; Including, method.
2. The step of displaying, by the first electronic device in response to a second user operation performed on the first display content, a third display content based on a task stack executed in the first display area includes: displaying, by the first electronic device in response to the second user action performed on the first desktop in the first display content, the third display content based on a task stack of the first application, the task stack being executed in the first display area; The step of determining, by the first electronic device in response to a third user operation performed on the second display content displayed by the second electronic device, that the display content corresponding to the second display area is a fourth display content based on a task stack executed in the second display area, includes: determining, by the first electronic device in response to the third user operation performed on the second desktop displayed by the second electronic device, that the display content corresponding to the second display area is the fourth display content based on a task stack of the first application, the task stack being executed in the second display area. The method of claim 1.
3. Prior to the step of displaying, by the first electronic device, a first display content based on the first display area, the method further comprises: calling, by the first electronic device, a third module of a second application to execute a first status bar, the first status bar being associated with the first display area and the first display content including the first status bar; The method further comprises: invoking, by the first electronic device in response to the first user operation, a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area and the second display content including the second status bar; The method of claim 1.
4. Prior to the step of displaying, by the first electronic device, a first display content based on the first display area, the method further comprises: invoking, by the first electronic device, a fifth module of a third application to execute a first display object based on a first variable, the first variable being associated with the first display area and the first display content including the first display object; the first variable is associated with the second display area, and the second display content includes the first display object; The method of claim 1.
5. The method further comprises: in response to a fourth user operation performed on the first display content, invoking the fifth module of the third application to change the display object based on the first variable to a second display object; updating, by the first electronic device, display content corresponding to the first display area to fifth display content, the fifth display content including the second display object; updating, by the first electronic device, the display content corresponding to the second display area with sixth display content and transmitting the sixth display content to the second electronic device, the sixth display content including the second display object; Including, The method according to claim 4.
6. The first variable indicates a display object of a wallpaper, the display object of the wallpaper being a still image and / or a moving image, and the wallpaper includes a lock screen wallpaper used when a screen is locked and / or a desktop wallpaper used when the screen is unlocked. The method according to claim 4.
7. A plurality of themes are preset on the first electronic device, the themes indicating a desktop layout style, an icon display style, and / or an interface color, etc.; the first variable indicates a display object of the theme, the display object of the theme being display content corresponding to one of the plurality of themes; The method according to claim 4.
8. the first module of the first application includes a first common class used to create and run the first desktop, a first user interface (UI) control class, and a desktop task stack for the first desktop; the second module of the first application includes a second common class used to create and run the second desktop, a second UI control class, and a desktop task stack for the second desktop, some or all of the classes of the second common class inherit from the first common class, and some or all of the classes of the second UI control class inherit from the first UI control class; The method of claim 1.
9. The second common class includes one or more of: a desktop launcher provider, a database assistant, a desktop launcher settings class, a desktop launcher constants class, a PC layout configuration, a PC device file, a PC cell counter, a PC desktop launcher policy, a PC desktop launcher model, a PC loading task, etc.; The second UI control class includes one or more of: a PC drag layer, a PC desktop workspace, a PC cell layout, a PC program dock view, a PC folder, a PC folder icon, and the like; The method according to claim 8.
10. the third module of the second application includes a first component used to create and execute the first status bar, a first dependency control class, and a third UI control class; the second module of the first application includes a second component used to create and execute the second status bar, a second dependency control class, and a fourth UI control class, some or all of the components in the second component inherit from the first component, some or all of the classes in the second dependency control class inherit from the first dependency control class, and some or all of the classes in the fourth UI control class inherit from the third UI control class; The method according to claim 3.
11. The second component includes one or more of: a PC dependency class, a PC system provider, a PC system bar, and the second status bar; The second dependency control class includes one or more of: a PC status bar window control class, a screen control class, a lock screen control class, and a remote control class; The fourth UI control class includes one or more of: a PC status bar window view, a PC notification panel view, a PC quick settings fragment, a PC status bar fragment, and a PC status bar view. The method of claim 10.
12. the ID of the display area associated with the second module is the ID of the second display area; Invoking, by the first electronic device in response to the first user operation, a second module of the first application to execute a second desktop, the second desktop being associated with a second display area, the steps including: receiving, by a PC management service in response to the first user operation, a mode switching instruction, the instruction instructing to switch a current non-projection mode to a projection mode; invoking, by the PC management service in response to the instruction, a PC desktop service, where the PC desktop service invokes an activity management service, which invokes an activity task manager to launch the second module of the first application; calling a root activity container to determine the ID of the display area associated with the second module; if the ID of the display area associated with the second module is the ID of the second display area, querying an activity of the second desktop to use as the activity of the desktop to be launched, or if the ID of the display area associated with the second module is the ID of the first display area, querying an activity of the first desktop to use as the activity of the desktop to be launched; and calling, by an activity launch controller, an activity starter to launch the second desktop; The method of claim 1.
13. Invoking, by the first electronic device in response to the first user operation, a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area, the steps including: receiving, by a PC management service in response to the first user operation, a mode switching instruction, the instruction instructing to switch a current non-projection mode to a projection mode; launching, by the PC management service in response to the instruction, a productivity service, the productivity service invoking a system bar to initiate the second status bar, the system bar creating the second status bar based on a configuration file; calling, by the second status bar, a callback interface of a command queue to add a callback to the second status bar; initializing a layout by the second status bar, and registering an IstatusBar object corresponding to the second status bar with a status bar management service; creating the PC status bar window view with the second status bar and adding the PC status bar window view to a status bar window control class; and calling, by the status bar window control class, a window management interface to add the second status bar to a window management service to add the second status bar to the second display area; The method of claim 11.
14. In the non-projection mode, the command queue supports the first status bar associated with the first display area; and in the projection mode, the command queue supports both the first status bar associated with the first display area and the second status bar associated with the second display area. The method of claim 13.
15. 1. An electronic device comprising a touch screen, a memory, one or more processors, a plurality of applications, and one or more programs, the one or more programs being stored in the memory; when the one or more processors execute the one or more programs, the electronic device: Invoking a first module of a first application to execute a first desktop, the first desktop being associated with a first display area; displaying a first display content based on the first display area, the first display content including the first desktop; In response to a first user operation, invoke a second module of the first application to execute a second desktop, the second desktop being associated with a second display area; sending second display content corresponding to the second display area to a second electronic device, the second display content including the second desktop, the second display content adding functionality not available in application windows of the electronic device and masking functionality of the electronic device that is not applicable to the second electronic device; displaying third display content based on a task stack executed in the first display area in response to a second user operation executed on the first display content; in response to a third user operation performed on the second display content displayed by the second electronic device, determining that the display content corresponding to the second display area is a fourth display content based on a task stack executed in the second display area; transmitting the fourth display content to the second electronic device; It is possible to implement Electronic devices.
16. The electronic device further comprises: displaying the third display content based on a task stack of the first application, the task stack being executed in the first display area, in response to the second user operation executed on the first desktop in the first display content; It is possible to implement The electronic device further comprises: determining, in response to the third user operation performed on the second desktop displayed by the second electronic device, that the display content corresponding to the second display area is the fourth display content based on a task stack of the first application, the task stack being executed in the second display area; It is possible to implement 16. The electronic device of claim 15.
17. The electronic device further comprises: calling a third module of a second application to execute a first status bar, the first status bar being associated with the first display area, and the first display content including the first status bar; It is possible to implement The electronic device further comprises: In response to the first user operation, invoke a fourth module of the second application to execute a second status bar, the second status bar being associated with the second display area, and the second display content including the second status bar; It is possible to implement 16. The electronic device of claim 15.
18. The electronic device further comprises: calling a fifth module of a third application to execute a first display object based on a first variable, the first variable being associated with the first display area and the first display content including the first display object; and the first variable being associated with the second display area and the second display content including the first display object.
16. The electronic device of claim 15.
19. The electronic device further comprises: invoking the fifth module of the third application to change the display object based on the first variable to a second display object in response to a fourth user operation performed on the first display content; updating, by the electronic device, display content corresponding to the first display area to fifth display content, the fifth display content including the second display object; updating, by the electronic device, the display content corresponding to the second display area with sixth display content and transmitting the sixth display content to the second electronic device, the sixth display content including the second display object; It is possible to implement 20. The electronic device of claim 18.
20. The first variable indicates a display object of a wallpaper, the display object of the wallpaper being a still image and / or a moving image, and the wallpaper includes a lock screen wallpaper used when a screen is locked and / or a desktop wallpaper used when the screen is unlocked.
20. The electronic device of claim 18.
21. A plurality of themes are preset on the electronic device, the themes indicating a desktop layout style, an icon display style, and / or an interface color, etc.; the first variable indicates a display object of the theme, the display object of the theme being display content corresponding to one of the plurality of themes; 20. The electronic device of claim 18.
22. the first module of the first application includes a first common class used to create and run the first desktop, a first user interface (UI) control class, and a desktop task stack for the first desktop; the second module of the first application includes a second common class used to create and run the second desktop, a second UI control class, and a desktop task stack for the second desktop, some or all of the classes of the second common class inherit from the first common class, and some or all of the classes of the second UI control class inherit from the first UI control class; 16. The electronic device of claim 15.
23. The second common class includes one or more of: a desktop launcher provider, a database assistant, a desktop launcher settings class, a desktop launcher constants class, a PC layout configuration, a PC device file, a PC cell counter, a PC desktop launcher policy, a PC desktop launcher model, a PC loading task, etc.; The second UI control class includes one or more of: a PC drag layer, a PC desktop workspace, a PC cell layout, a PC program dock view, a PC folder, a PC folder icon, and the like; 23. The electronic device of claim 22.
24. the third module of the second application includes a first component used to create and execute the first status bar, a first dependency control class, and a third UI control class; the second module of the first application includes a second component used to create and execute the second status bar, a second dependency control class, and a fourth UI control class, some or all of the components in the second component inherit from the first component, some or all of the classes in the second dependency control class inherit from the first dependency control class, and some or all of the classes in the fourth UI control class inherit from the third UI control class; 20. The electronic device of claim 17.
25. The second component includes one or more of: a PC dependency class, a PC system provider, a PC system bar, and the second status bar; The second dependency control class includes one or more of: a PC status bar window control class, a screen control class, a lock screen control class, and a remote control class; The fourth UI control class includes one or more of: a PC status bar window view, a PC notification panel view, a PC quick settings fragment, a PC status bar fragment, and a PC status bar view.
25. The electronic device of claim 24.
26. The electronic device further comprises: receiving, by a PC management service in response to the first user operation, a mode switching instruction, the instruction instructing to switch a current non-projection mode to a projection mode; invoking, by the PC management service in response to the instruction, a PC desktop service, which invokes an activity management service, which invokes an activity task manager to launch the second module of the first application; Invoking the root activity container to determine an ID of the display area associated with the second module; if the ID of the display area associated with the second module is the ID of the second display area, look up the activity of the second desktop and use it as the desktop activity to be launched, or if the ID of the display area associated with the second module is the ID of the first display area, look up the activity of the first desktop and use it as the desktop activity to be launched; calling an activity starter by an activity launch controller to launch the second desktop; It is possible to implement 16. The electronic device of claim 15.
27. The electronic device further comprises: receiving, by a PC management service in response to the first user operation, a mode switching instruction, the instruction instructing to switch a current non-projection mode to a projection mode; launching a productivity service by the PC management service in response to the instruction, the productivity service invoking a system bar to initiate the second status bar, the system bar creating the second status bar based on a configuration file; Invoking a callback interface of a command queue by the second status bar to add a callback to the second status bar; initializing a layout by the second status bar and registering an IstatusBar object corresponding to the second status bar with a status bar management service; creating a PC status bar window view by the second status bar and adding the PC status bar window view to a status bar window control class; calling, by the status bar window control class, a window management interface to add the second status bar to a window management service to add the second status bar to the second display area; It is possible to implement 26. The electronic device of claim 25.
28. In the non-projection mode, the command queue supports the first status bar associated with the first display area; and in the projection mode, the command queue supports both the first status bar associated with the first display area and the second status bar associated with the second display area.
28. The electronic device of claim 27.
Citation Information
Patent Citations
Extended projection screen method and projection screen system of mobile terminal
CN107493375A
Image processing coordination system and cooperation method, portable terminal device and image processing coordination program
JP2015204047A
Screencasting for multi-screen applications
US20140281896A1
Integrated android and windows device
US20190121682A1