Computing device and operation method thereof

The computing device and method facilitate a unified virtual keyboard experience across heterogeneous OS environments by enabling a host virtual keyboard to operate in a guest OS, reducing development costs and ensuring consistency.

WO2025198300A1PCT designated stage Publication Date: 2025-09-25SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/003492
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-18
Filing Date
2025-03-18
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

Supporting heterogeneous operating systems in electronic devices requires developing multiple virtual keyboards, which is costly and time-consuming, and results in inconsistent user experiences due to different virtual keyboards for each OS.

Method used

A computing device and method that enables a host virtual keyboard to operate in a guest OS by transmitting a virtual keyboard execution request from the guest system to the host system through intermediary applications, allowing a unified virtual keyboard interface to be displayed on the guest application's execution screen.

Benefits of technology

Reduces development costs and provides a consistent user interface experience by using a single virtual keyboard across different OS environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025003492_25092025_PF_FP_ABST
    Figure KR2025003492_25092025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed are a computing device and an operation method thereof. The disclosed computing device: transmits, by a guest operating system, a first virtual keyboard execution request to a host operating system in response to detecting that a key input has been provided from a guest application; executes, by the host operating system, a first host virtual keyboard application; and displays, by the first host virtual keyboard application in response to the first host virtual keyboard application being executed, a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed.
Need to check novelty before this filing date? Find Prior Art

Description

Computing device and method of operation thereof

[0001] Various embodiments relate to a computing device and a method of operating the same, and more particularly, to a computing device and a method of operating the same, wherein the computing device includes a host system and a guest system and provides a virtual keyboard.

[0002] Electronic devices equipped with heterogeneous operating systems (OS) are being developed and released. While most electronic devices run on a single OS, some devices are equipped with multiple OSes for technical or business advantages. For example, Samsung Smart TVs / Monitors are based on the Tizen OS, but to run Android applications, the company developed the Android on Tizen (AoT) platform, which allows both Tizen and Android OSs to coexist.

[0003] The behavior of the virtual keyboard on heterogeneous operating systems depends on the OS to which the application requiring the virtual keyboard belongs. For example, if the application is a Tizen application, the virtual keyboard within TizenOS will be launched, and if it is an Android application, the virtual keyboard within AndroidOS will be launched.

[0004] Supporting heterogeneous operating systems requires developing multiple virtual keyboards, which presents challenges in terms of cost and development time. Furthermore, virtual keyboards operating on different operating systems struggle to provide a consistent user experience from a UI / UX perspective.

[0005] The disclosed embodiment aims to provide a computing device and an operating method thereof for enabling a virtual keyboard operating in a host OS to also operate in a guest OS, in a computing device including a host system and a guest system.

[0006] According to one embodiment, a computing device includes one or more processors and a memory storing instructions.

[0007] In one embodiment, instructions are executed by the one or more processors so that the computing device can transmit a first virtual keyboard execution request from the guest operating system to the host operating system upon detecting that a key input is to be provided from the guest application.

[0008] In one embodiment, instructions are executed by the one or more processors to cause the computing device to execute, by the host operating system, a first host virtual keyboard application.

[0009] In one embodiment, instructions are executed by the one or more processors so that the computing device can display a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed by the first host virtual keyboard application as the first host virtual keyboard application executes the first host virtual keyboard application.

[0010] A method of operating a computing device according to one embodiment may include transmitting a first virtual keyboard execution request from the guest operating system to the host operating system upon detecting that a key input is to be provided from the guest application.

[0011] A method of operating a computing device according to one embodiment may include executing, by the host operating system, a first host virtual keyboard application.

[0012] According to one embodiment, a method of operating a computing device may include displaying a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed by the first host virtual keyboard application upon execution of the first host virtual keyboard application.

[0013] In one embodiment, a non-transitory computer-readable recording medium storing one or more instructions executable by at least one processor of a computing device, wherein when the one or more instructions are executed by the at least one processor of the computing device, the computing device executes a guest application based on a guest operating system, and transmits a virtual keyboard execution request to a host operating system by the guest operating system upon detecting that a key input is to be provided in the guest application, and displays a host virtual keyboard user interface on at least a part of a display on which an execution screen of the guest application is displayed upon executing the host virtual keyboard application by the host operating system.

[0014] According to the disclosed computing device and method, the effort and cost of developing a virtual keyboard for each OS in a computing device supporting heterogeneous OS can be reduced.

[0015] Additionally, a unified user UI / UX experience can be provided by using a single virtual keyboard in a computing device supporting heterogeneous OS according to the disclosed computing device and method.

[0016] The foregoing and other aspects, features and advantages of the embodiments of the present disclosure will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.

[0017] FIG. 1 illustrates an example of a computing device including a host system and a guest system according to one embodiment.

[0018] Figure 2 shows an example in which a virtual keyboard is displayed according to the execution of each application, according to an example.

[0019] FIG. 3 illustrates an example of a computing device including a host system and a guest system according to one embodiment.

[0020] FIG. 4 illustrates an example of a flowchart of a method for operating a computing device according to one embodiment.

[0021] FIG. 5 is a reference diagram for explaining the operation of a guest system and a host system included in a computing device according to one embodiment.

[0022] FIG. 6 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0023] Figure 7 shows an example of a guest application execution screen according to an example.

[0024] FIG. 8 illustrates an example in which a host virtual keyboard is displayed on a portion of a guest application screen according to an example.

[0025] FIG. 9 illustrates a flowchart of an example of a method for terminating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0026] FIG. 10 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0027] FIG. 11 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0028] FIG. 12 illustrates an example of a computing device according to one embodiment.

[0029] The terms used in this disclosure will be briefly explained, and the present invention will be described in detail with reference to the drawings.

[0030] The terms used in this invention have been selected from widely used, current terms, taking into account the functions of the invention. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, in which case their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this invention should not be defined simply as names, but rather based on their inherent meanings and the overall content of the invention.

[0031] When a part of the specification is said to "include" a component, this does not exclude other components, but rather implies the inclusion of other components, unless otherwise specifically stated. Furthermore, terms such as "part," "module," etc., used in the specification refer to a unit that processes at least one function or operation, which may be implemented in hardware, software, or a combination of hardware and software.

[0032] The expressions "at least one of A, B, and C" and "at least one of A, B, or C" can represent "A", "B", "C", "A and B", "A and C", "B and C", and "A, B, and C".

[0033] Below, with reference to the attached drawings, embodiments of the present invention are described in detail so that those skilled in the art can easily implement the present invention. However, the present invention can be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description have been omitted to clearly explain the present invention, and similar parts have been designated with similar reference numerals throughout the specification.

[0034] In the embodiments of this specification, the term "user" means a person who controls a function or operation of a computing device or electronic device using a control device, and may include a viewer, an administrator, or an installer.

[0035] Computers contain general-purpose CPUs, or processors, designed to execute a set of system instructions. A processor executes instructions specific to that processor, and the set of instructions that a processor can execute is called the processor's instruction set. The uniqueness of processors between computer systems typically leads to incompatibilities in the hardware architecture of the computer systems. Computer manufacturers typically want to enable more applications to run on their processor families. Therefore, to increase the number of operating systems and application programs that can run on a computer system, a host computer, called a "host," may employ virtual machine technology, which allows it to emulate the instructions of another type of CPU, called a "guest."

[0036] FIG. 1 illustrates an example of a computing device including a host system and a guest system according to one embodiment.

[0037] Referring to FIG. 1, a computing device 100 may include a host system 110 and a guest system 120. The computing device 100 may display one or more host applications 51 and one or more guest applications 52 on its home screen 50. For example, in FIG. 1, the host applications 51 displayed on the home screen 50 may include host applications #1 to #4, and the guest applications 52 may include guest applications #1 and #2. For example, in Samsung Electronics' Tizen system, the Tizen home screen may include not only Tizen applications as host applications but also Android applications as guest applications. When there is an execution request for the host application 51, the computing device 100 may execute the host application 51 based on the host system 120. When there is an execution request for the guest application 52, the computing device 100 may execute the guest application 52 based on the guest system 110.

[0038] If key input needs to be provided in each application, each application can provide a virtual keyboard. For example, if key input needs to be provided while the host application is running, the host system 120 can provide a host virtual keyboard. For example, if key input needs to be provided while the guest application is running, the guest system 110 can provide a guest virtual keyboard. Therefore, a user using the computing device 100 may experience different formats of virtual keyboards for each application even though they are using a single computing device 100. Furthermore, if there are multiple guest systems, different virtual keyboards may be provided for each guest application.

[0039] Figure 2 shows an example in which a virtual keyboard is displayed according to the execution of each application, according to an example.

[0040] Referring to FIG. 2, when a key input is to be provided during the execution of host application #1, a host virtual keyboard may be displayed. And when a key input is to be provided during the execution of guest application #1, a first guest virtual keyboard may be displayed. And when guest application #2 is based on a different guest system than guest application #1, a second guest virtual keyboard may be displayed when a key input is to be provided during the execution of guest application #2. Therefore, from the user's perspective, it may be inconvenient to encounter multiple virtual keyboards of different formats on a single computing device 100. To solve this, a method is required that can provide a host virtual keyboard even when a guest application is executed.

[0041] To this end, the present disclosure provides an intermediary application for communication between the guest system and the host system, respectively, and enables transmission of a virtual keyboard execution request from the guest system to the host system using the intermediary application provided in the guest system and the intermediary application provided in the host system. The intermediary application provided in the guest system may be referred to as a guest virtual keyboard application. The intermediary application provided in the host system may be referred to as a host application. In this way, when a key input is required in a running guest application, a virtual keyboard execution request is provided from the guest system to the host system, thereby enabling a virtual keyboard based on the host system to be executed. Accordingly, the computing device 100 may display a virtual keyboard based on the host system on at least a portion of a display screen on which a guest application execution screen is displayed. Key input received by the virtual keyboard based on the host system is transmitted from the host system back to the guest system using the intermediary applications, and the guest application may perform an operation or function corresponding to a key value corresponding to the key input.

[0042] FIG. 3 illustrates an example of a computing device including a host system and a guest system according to one embodiment.

[0043] Referring to FIG. 3, computing device 100 may include a guest system 110, a host system 120, a kernel 130, and a hardware platform 140.

[0044] Computing device 100 may represent a computer that supports the execution of an operating system and one or more application programs. This computing device 100 may be a general-purpose computer or a display device. The display device may include various types of electronic devices capable of receiving and displaying content, such as network TVs, smart TVs, Internet TVs, web TVs, IPTVs, and PCs.

[0045] Guest system 120 is a software implementation of a physical computing device, implementing a computing platform that supports the execution of software applications under the control of a guest operating system. The guest system may include, for example, a well-known commercial operating system, such as Android® from Google, Window® from Microsoft, the Linux® operating system, or MacOS® from Apple.

[0046] Guest system 110 may include a guest application 111, a guest OS framework 112, and a guest virtual keyboard application 113.

[0047] Guest application 111 may represent an application that can be run based on a guest operating system.

[0048] According to one embodiment, the guest application 111 may transmit information, such as an event indicating that a key input should be provided, to the guest OS framework 112. The guest application 111 may transmit information, such as an event indicating that a key input should be provided, to the guest OS framework 112 when the guest application 111 recognizes or detects a state in which a key input should be provided during its execution. For example, when a cursor is positioned in a search box in a user interface displayed on the screen during execution of the guest application, this may be recognized as a state in which a key input should be provided, and accordingly, the host application 111 may transmit information, such as an event indicating that a key input should be provided, to the host OS framework 112.

[0049] According to one embodiment, the guest application 111 may receive a key value corresponding to a key input from the guest OS framework 112, and perform a function or operation corresponding to the received key value. For example, if the received key value corresponds to a letter, number, or special character of the keyboard, the guest application 111 may perform an operation of outputting a character corresponding to the key value in a text display area. For example, if the received key value corresponds to a function key of the keyboard, the guest application 111 may perform a function corresponding to the function key. For example, the function key may include a Tab key that moves the cursor by a predetermined position, a Control key that performs a predetermined function when input together with another key, and an Enter key that performs a function of executing an input command.

[0050] Guest OS Framework 112 may consist of several different components, including support programs, compilers, code libraries, APIs, and classes that implement a standard structure for application programs for guest operating systems.

[0051] In one embodiment, the guest OS framework 112 may receive information, such as an event, indicating that a key input should be provided from the guest application 111, and forward an execution request to the guest virtual keyboard application 113.

[0052] According to one embodiment, the guest OS framework 112 may receive a key value corresponding to a key input entered by a user from a guest virtual keyboard application 113, and transmit the received key value to the guest application 111.

[0053] Guest virtual keyboard application 113 runs on the guest operating system and may represent an application that provides a virtual keyboard upon request from the guest OS framework. Guest virtual keyboard application 113 does not actually display the virtual keyboard on the display screen, but may act as an intermediary for executing the host virtual keyboard application 123.

[0054] In one embodiment, the guest virtual keyboard application 113 may forward a virtual keyboard execution request to the host application 121 of the host system 120 in response to an execution request from the guest OS framework 112.

[0055] According to one embodiment, the guest virtual keyboard application 113 may receive a key value corresponding to a key input from the host application 121 of the host system and transmit the received key value to the guest OS framework 112.

[0056] Host system 120 provides an operating system platform for executing processes on computing device 100. Host system 120 controls all hardware devices within computing device 100 and manages system resources for all applications running within it.

[0057] The host system 120 may include a host application 121, a host OS framework 122, and a host virtual keyboard application 123.

[0058] Host application 121 may represent an application that can be executed based on the host operating system. Host application 121 may represent an application that receives a virtual keyboard execution request from a guest system and relays it to the host system.

[0059] In one embodiment, the host application 121 may receive a virtual keyboard launch request from the guest virtual keyboard application 113 and forward information, such as an event indicating that a key input should be provided, to the host OS framework 122.

[0060] According to one embodiment, the host application 121 may receive a key value corresponding to a key input from the host OS framework 122 and transmit the received key value to the guest virtual keyboard application 113.

[0061] The Host OS Framework 122 may consist of several different components, including support programs, compilers, code libraries, APIs, and classes that implement a standard structure for application programs for the host operating system.

[0062] In one embodiment, the host OS framework 122 may receive information, such as an event, indicating that a key input should be provided from the host application 121, and forward an execution request to the host virtual keyboard application 123.

[0063] According to one embodiment, the host OS framework 122 may receive a key value corresponding to a key input entered by a user from the host virtual keyboard application 123, and transmit the received key value to the host application 121.

[0064] Host virtual keyboard application 123 runs on the host operating system and may represent an application that provides a virtual keyboard upon request from the host OS framework. Unlike a physical hardware keyboard, the virtual keyboard may represent a software keyboard that displays a keyboard layout on the display screen and enables input by selecting keys.

[0065] In one embodiment, the host virtual keyboard application 123 may perform virtual keyboard operations in response to an execution request from the host OS framework 122.

[0066] According to one embodiment, the host virtual keyboard application 123 may output a graphical user interface including a virtual keyboard to a display screen.

[0067] According to one embodiment, when a host virtual keyboard application 123 receives a key input from a user based on a graphical user interface including a virtual keyboard, the host virtual keyboard application 123 may transmit a key value corresponding to the received key input to the host OS framework 122.

[0068] In a computing device disclosed in this manner, a guest virtual keyboard application 113 and a host application 121 can be provided to act as intermediaries between a guest OS framework 112 and a host OS framework 122 so that the host virtual keyboard application can be executed in response to information such as an event indicating that a key input from a guest application 111 should be provided. By means of the guest virtual keyboard application 113 and the host application 121, it is possible to enable the host virtual keyboard to operate on the guest application.

[0069] Kernel 130 acts as a bridge between the guest system 110, the host system 120, and the physical hardware platform 140 of the computing device 100. Kernel 130 is a central operating system component that runs directly on the host. Kernel 130 allocates memory, schedules access to the physical CPU, and schedules access to the physical hardware devices connected to the computing device 100.

[0070] The hardware platform 140 may include one or more physical CPUs 141, one or more memories 142, and one or more physical hardware devices 143. The memories may include random access memory (RAM) that stores currently executing programs and data used by the programs. The hardware platform may also include channels, adapters, and the like.

[0071] FIG. 4 illustrates an example of a flowchart of a method for operating a computing device according to one embodiment.

[0072] Referring to FIG. 4, at operation 410, the computing device 100 may cause the guest system to transmit a virtual keyboard execution request to the host system based on information such as an event indicating that a key input generated by a guest application based on the guest operating system should be provided.

[0073] In one embodiment, an event may be generated during execution of a guest application based on a guest operating system to indicate that a key input is required. For example, during execution of the guest application, the guest application may detect a situation in which a key input is required and generate information, such as an event, indicating that the key input is required. Guest applications that may generate an event indicating that a key input is required may include, for example, a search application, an email application, a messaging application, and the like. For example, when a search application detects that a cursor is positioned in a text input field for keyword input, the search application may generate information, such as an event, indicating that a key input is required.

[0074] According to one embodiment, when information such as an event indicating that such a key input should be provided from a guest application occurs, the guest system may transmit a virtual keyboard execution request to the host system. In order to transmit such a virtual keyboard execution request from the guest system to the host system, a guest virtual keyboard application of the guest system and a host application of the host system may be provided. The guest virtual keyboard application of the guest system does not perform an actual virtual keyboard function, but may serve to transmit the virtual keyboard execution request to the host system and receive a key value corresponding to the key input from the host system to the host system. The host application of the host system may serve to receive the virtual keyboard execution request from the host system, receive the virtual keyboard execution request to the guest system, and transmit a key value corresponding to the key input received according to the virtual keyboard execution to the guest system.

[0075] In one embodiment, the guest system may transmit information about the language of the characters displayed on each key of the virtual keyboard to the host system. This may cause the virtual keyboard user interface to be displayed based on the transmitted information about the language of the characters.

[0076] In one embodiment, the guest system may transmit information to the host system regarding the area of ​​the screen where the virtual keyboard will be displayed. This may cause the virtual keyboard user interface to be displayed in the area of ​​the screen designated by the guest.

[0077] At operation 420, the computing device 100 can cause a host virtual keyboard application to be executed on a host system that has received a virtual keyboard execution request.

[0078] In one embodiment, a host system that receives a virtual keyboard execution request from a guest system may cause a host virtual keyboard application to be executed. The host virtual keyboard application may perform virtual keyboard operations to display a virtual keyboard user interface on the screen and receive key inputs through the virtual keyboard user interface.

[0079] At operation 430, the computing device 100 can cause a virtual keyboard user interface to be displayed on the execution screen of the guest application according to the execution of the host virtual keyboard application.

[0080] In one embodiment, the host system may receive information about the language of a character from the guest system and cause a virtual keyboard user interface to be displayed based on the information about the language of the character.

[0081] In one embodiment, the host system may receive information from the guest system regarding an area of ​​the screen where a virtual keyboard is to be displayed, and cause the virtual keyboard user interface to be displayed in an area of ​​the screen specified by the guest.

[0082] In one embodiment, when the host system receives a key input through a displayed virtual keyboard user interface, the host system can transmit a key value corresponding to the key input to the guest system, thereby causing a guest application on the guest system to perform an action or function corresponding to the key value.

[0083] FIG. 5 is a reference diagram for explaining the operation of a guest system and a host system included in a computing device according to one embodiment.

[0084] Referring to FIG. 5, guest system 110 may include a guest application 111, a guest OS framework 112, and a guest virtual keyboard application 113.

[0085] Guest system 110 is a software implementation of a physical computing device, implementing a computing platform that supports the execution of software applications under the control of a guest operating system. If the host system is Samsung Electronics' Tizen system, the guest system may include, for example, a well-known commercial operating system, such as Google's Android®, Microsoft's Window®, the Linux® operating system, or Apple's MacOS®.

[0086] Guest application 111 may represent an application that can run on a guest operating system. For example, if the host system is a Tizen OS, the guest application may be an application running on an Android OS. For example, such a guest application may be downloaded from an application store or an Android OS-based server and installed on the computing device.

[0087] In one embodiment, the guest application 111 may transmit information, such as an event, indicating that a key input should be provided to the guest OS framework 112. The guest application 111 may transmit information, such as an event, indicating that a key input should be provided to the guest OS framework 112 when the guest application 111 recognizes or detects a state in which a key input should be provided during its execution. For example, when a cursor is positioned in a search box, which is part of a user interface displayed on the screen during execution of the guest application, this may be recognized as a state in which a key input should be provided, and accordingly, the guest application 111 may transmit information, such as an event, indicating that a key input should be provided to the host OS framework 112. The guest application 111 may be any application capable of receiving a key input. For example, the guest application 111 may include a search application, an email application, a messaging application, etc.

[0088] According to one embodiment, the guest application 111 may receive a key value corresponding to a key input from the guest OS framework 112, and perform a function or operation corresponding to the received key value. For example, if the received key value corresponds to a letter, number, or special character of the keyboard, the guest application 111 may perform an operation of outputting a character corresponding to the key value in a text display area. For example, if the received key value corresponds to a function key of the keyboard, the guest application 111 may perform a function corresponding to the function key. For example, the function key may include a Tab key that moves the cursor by a predetermined position, a Control key that performs a predetermined function when input together with another key, and an Enter key that performs a function of executing an input command.

[0089] In one embodiment, the guest application 111 may transmit information, such as an event indicating that a key input should be stopped, to the guest OS framework 112. When the guest application 111 recognizes or detects a state in which the key input should be stopped during its execution, the guest application 111 may transmit information, such as an event indicating that the key input should be stopped, to the guest OS framework 112. For example, when a virtual keyboard is displayed on the screen and a virtual keyboard operation is performed and a situation is detected in which the virtual keyboard needs to be removed due to a user input, the guest application 111 may recognize this as a state in which the key input should be stopped, and accordingly, the guest application 111 may transmit an event indicating that the key input should be stopped to the host OS framework 112. For example, when a user input for selecting a specific content item is received from the user while the virtual keyboard is displayed, the computing device 100 must output content corresponding to the selected content item in full screen, and therefore, the virtual keyboard must disappear, so the guest application 111 may generate information, such as an event indicating that the key input should be stopped.

[0090] Guest OS Framework 112 may consist of several different components, including support programs, compilers, code libraries, APIs, and classes that implement a standard structure for application programs for guest operating systems.

[0091] In one embodiment, the guest OS framework 112 may receive information, such as an event, indicating that a key input should be provided from the guest application 111, and forward an execution request to the guest virtual keyboard application 113.

[0092] According to one embodiment, the guest OS framework 112 may receive a key value corresponding to a key input entered by a user from a guest virtual keyboard application 113, and transmit the received key value to the guest application 111.

[0093] According to one embodiment, the guest OS framework 112 may control the virtual keyboard to be placed in a specific area of ​​the display screen. That is, the guest OS framework 112 may provide the guest virtual keyboard application 113 with location information of the area where the virtual keyboard graphical user interface should be output. The guest OS framework 112 may directly determine the location information of the area where the virtual keyboard graphical user interface should be output or may receive it from the guest application 111.

[0094] According to one embodiment, the guest OS framework 112 may control the language of characters displayed on the virtual keyboard to be a specific language. That is, the guest OS framework 112 may provide information about the language of characters displayed on the virtual keyboard of the virtual keyboard graphical user interface to the guest virtual keyboard application 113. For example, the guest OS framework 112 may determine the language of characters displayed on the virtual keyboard by referring to information about the region or country in which the computing device 100 is installed. For example, if the computing device 100 is installed in China, the guest OS framework 112 may determine the default language of the virtual keyboard to be Chinese, and provide information about the language thus determined to the virtual keyboard graphical user interface 113.

[0095] The guest virtual keyboard application 113 may be an application that runs on the basis of the guest operating system and provides a virtual keyboard upon request of the guest OS framework. In order to operate according to the disclosed embodiment, the guest virtual keyboard application 113 does not actually have a user interface for the virtual keyboard or perform an operation of outputting it on a display screen, but may act as an intermediary for executing the host virtual keyboard application 123. That is, instead of providing a user interface for the guest virtual keyboard application itself, the guest virtual keyboard application 113 may communicate with the host application 121 of the host system 120 to execute the host virtual keyboard application 123.

[0096] According to one embodiment, the guest virtual keyboard application 113 may forward a virtual keyboard execution request to the host application 121 of the host system 120 in response to a virtual keyboard execution request from the guest OS framework 112.

[0097] According to one embodiment, the guest virtual keyboard application 113 may receive a key value corresponding to a key input from the host application 121 of the host system and transmit the received key value to the guest OS framework 112.

[0098] In one embodiment, when the guest virtual keyboard application 113 receives information about the language of characters displayed on the virtual keyboard from the guest OS framework 112, it may pass the information about the language to the host application 121 of the host system 120.

[0099] According to one embodiment, when the guest virtual keyboard application 113 receives location information of an area where a virtual keyboard is displayed from the guest OS framework 112, it can transmit the location information to the host application 121 of the host system 120. The host system 120 provides an operating system platform for executing processes on the computing device 100. The host system 120 controls all hardware devices within the computing device 100 and manages system resources for all applications running within it.

[0100] The host system 120 may include a host application 121, a host OS framework 122, and a host virtual keyboard application 123.

[0101] Host application 121 may represent an application that can be executed based on the host operating system. Host application 121 may represent an application that receives a virtual keyboard execution request from a guest system and mediates the request to the host system. Host application 121 may communicate with the guest virtual keyboard application of guest system 110 to trigger the host virtual keyboard.

[0102] According to one embodiment, the host application 121 may receive a virtual keyboard execution request from a guest virtual keyboard application 113, and may transmit information, such as an event, indicating that a key input should be provided based on the virtual keyboard execution request, to the host OS framework 122. That is, the host application 121 may represent an application created to act as an intermediary for transmitting a virtual keyboard execution request from the guest virtual keyboard application 113 to the host OS framework 122. When receiving a virtual keyboard execution request from the guest virtual keyboard application 113, the host application 121 recognizes this as a situation requiring a key input, and thus may transmit information, such as an event, indicating that a key input should be provided, to the host OS framework 122. In this way, the process of transmitting information such as an event indicating that a key input should be provided in response to a trigger operation from the guest virtual keyboard application 113 in the host application 121 to the host OS framework 122 can correspond to the process of recognizing a situation in which a key input is required in the guest application 111 and transmitting information such as an event indicating that a key input should be provided to the guest OS framework 112. That is, although the situation in which an actual key input is required occurred in the guest system 110, in order to wake up the host virtual keyboard application 123, the Android virtual keyboard application 113 provides a trigger signal corresponding to the situation in which a key input is required to the host application 121, thereby triggering an operation to execute the host virtual keyboard application in the host OS framework 122.By applying the mechanism for sending information such as an event indicating that a key input should be provided to the host system 120 as is, the virtual keyboard execution request of the guest system 110 can be efficiently delivered to the host system 120 without significantly changing the process of the host system 120.

[0103] According to one embodiment, the host application 121 may receive a key value corresponding to a key input from the host OS framework 122 and transmit the received key value to the guest virtual keyboard application 113.

[0104] In one embodiment, the host application 121 may receive information about the language of the virtual keyboard from the guest virtual keyboard application 113 and pass the information about the language to the host OS framework 122.

[0105] According to one embodiment, the host application 121 may receive location information of an area where a virtual keyboard is displayed from the guest virtual keyboard application 113 and transmit such location information to the host OS framework 122.

[0106] The Host OS Framework 122 may consist of several different components, including support programs, compilers, code libraries, APIs, and classes that implement a standard structure for application programs for the host operating system.

[0107] In one embodiment, the host OS framework 122 may receive information, such as an event, indicating that a key input should be provided from the host application 121, and forward an execution request to the host virtual keyboard application 123.

[0108] According to one embodiment, the host OS framework 122 may receive a key value corresponding to a key input entered by a user from the host virtual keyboard application 123, and transmit the received key value to the host application 121.

[0109] According to one embodiment, when the host OS framework 122 receives information about the language of characters of a virtual keyboard from the host application 121, it can transmit an execution request to the host virtual keyboard application 123 based on the information about the received language. For example, the host system 120 can include a host virtual keyboard application corresponding to one or more languages. When the host OS framework 122 receives information about the language of characters of the virtual keyboard from the host application 121, it can select a host virtual keyboard application corresponding to the received language and transmit an execution request to the selected host virtual keyboard application.

[0110] According to one embodiment, when the host OS framework 122 receives location information of an area where a virtual keyboard is displayed from the host application 121, the host virtual keyboard application 123 can control the virtual keyboard user interface to be displayed at a location according to the received location information.

[0111] Host virtual keyboard application 123 runs on the host operating system and may represent an application that provides a virtual keyboard upon request from the host OS framework. Unlike a physical hardware keyboard, the virtual keyboard may represent a software keyboard that displays a keyboard layout on the display screen and enables input by selecting keys.

[0112] In one embodiment, the host virtual keyboard application 123 may perform virtual keyboard operations in response to an execution request from the host OS framework 122.

[0113] According to one embodiment, the host virtual keyboard application 123 may output a graphical user interface including a virtual keyboard to a display screen.

[0114] According to one embodiment, when a host virtual keyboard application 123 receives a key input from a user based on a graphical user interface including a virtual keyboard, the host virtual keyboard application 123 may transmit a key value corresponding to the received key input to the host OS framework 122.

[0115] In a computing device disclosed in this manner, a guest virtual keyboard application 113 and a host application 121 can be provided to act as intermediaries between a guest OS framework 112 and a host OS framework 122 so that the host virtual keyboard application can be executed in response to information such as an event indicating that a key input from a guest application 111 should be provided. By means of the guest virtual keyboard application 113 and the host application 121, it is possible to enable the host virtual keyboard to operate on the guest application.

[0116] FIG. 6 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0117] Referring to FIG. 6, in operation 601, a guest application 111 may be executed. For example, the guest application 111 may be executed based on a user input that causes the guest application 111 to be executed. The execution of the guest application 111 may include displaying a screen corresponding to the execution of the guest application 111.

[0118] FIG. 7 illustrates an example of a guest application execution screen according to an example. For example, as illustrated in FIG. 7, computing device 100 may display a result screen 700 resulting from the execution of guest application 111.

[0119] In operation 602, while the guest application 601 is running, the guest application 111 can recognize a state in which a key input must be provided. For example, as illustrated in FIG. 7, if the guest application 111 is a search application, when it detects that the cursor 720 is positioned in the search box 710 for entering a search keyword, the guest application 111 can recognize that a key input must be provided.

[0120] At operation 603, the guest application 111 may transmit information, such as an event, indicating that a key input should be provided to the guest OS framework 112 upon recognizing that a key input should be provided.

[0121] At operation 604, the guest OS framework 112 may send a virtual keyboard launch request to the guest virtual keyboard application 113 upon receiving information, such as an event, indicating that a key input should be provided from the guest application 111.

[0122] At operation 605, the guest virtual keyboard application 113 may forward the virtual keyboard execution request to the host application 121 of the host system 120 upon receiving the virtual keyboard execution request from the guest OS framework 112.

[0123] At operation 606, the host application 121 may transmit information, such as an event, indicating that a key input should be provided to the host OS framework 122 upon receiving a virtual keyboard launch request from the guest virtual keyboard application 113. That is, the host application 121 may recognize that it has received a virtual keyboard launch request from the guest virtual keyboard application 113 and that a key input should be provided.

[0124] At operation 607, the host OS framework 122 may send a virtual keyboard launch request to the host virtual keyboard application 123 upon receiving information, such as an event, indicating that a key input should be provided from the host application 121.

[0125] At operation 608, the host virtual keyboard application 123 may be executed upon receiving a virtual keyboard execution request from the host OS framework 122. Execution of the virtual keyboard application may include displaying a virtual keyboard user interface on a display screen and receiving key input through the virtual keyboard user interface.

[0126] FIG. 8 illustrates an example in which a host virtual keyboard is displayed on a portion of a guest application screen according to an example. For example, as illustrated in FIG. 8, the computing device 100 may output a virtual keyboard graphical user interface 800 according to the execution of the host virtual keyboard application 123 on at least a portion of the guest application execution screen 700. In this way, the computing device 100 may provide a more consistent and convenient virtual keyboard system by providing a virtual keyboard graphical user interface 800 based on the host system 120 instead of a virtual keyboard based on the guest system 110 even while the guest application 111 is being executed.

[0127] At operation 609, the host virtual keyboard application 123 may receive a key input.

[0128] In operation 610, the host virtual keyboard application 123 can transmit a key value corresponding to the received key input to the host OS framework 122. The host virtual keyboard application 123 includes a table that maps key values ​​corresponding to each key input, and can obtain the key value corresponding to the received key input by referring to the table.

[0129] At operation 611, the host OS framework 122 may pass the key value received from the host virtual keyboard application 123 to the host application 121.

[0130] At operation 612, the host application 121 may pass the key value received from the host OS framework 122 to the guest virtual keyboard application 113 of the guest system 110.

[0131] At operation 613, the guest virtual keyboard application 113 may pass the key values ​​received from the host application 121 to the guest OS framework 112.

[0132] At operation 614, the guest OS framework 112 may pass the key value received from the guest virtual keyboard application 113 to the guest application 111.

[0133] In operation 615, the guest application 111 can perform an action or function corresponding to a key value received from the guest OS framework. For example, if the received key value corresponds to a character, the guest application 111 can output the character in the text area. For example, in the example of FIG. 8, if the key value corresponds to “a,” the guest application 111 can output “a” in the search box 710. If the received key value corresponds to a function key, the guest application 111 can perform an action related to the corresponding function key. For example, in the example illustrated in FIG. 8, if the received key value corresponds to the Enter key, the guest application 111 can perform a search operation for a string or word entered in the search box.

[0134] FIG. 9 illustrates a flowchart of an example of a method for terminating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0135] Referring to FIG. 9, in operation 901, the guest application 111 can recognize a state in which key input must be discontinued. For example, as illustrated in FIG. 7, if the guest application 111 is a search application, and a user input is received to select and execute one content item from among multiple content items displayed on the screen, no further key input is required, and thus this can be recognized as a state in which key input must be discontinued.

[0136] At operation 902, the guest application 111 may transmit information, such as an event indicating that the key input should be aborted, to the guest OS framework 112 upon recognizing that the key input should be aborted.

[0137] At operation 903, the guest OS framework 112 may send a virtual keyboard execution termination request to the guest virtual keyboard application 113 upon receiving information from the guest application 111, such as an event indicating that key input should be stopped.

[0138] At operation 904, the guest virtual keyboard application 113 may forward the virtual keyboard execution termination request to the host application 121 of the host system 120 upon receiving the virtual keyboard execution termination request from the guest OS framework 112.

[0139] At operation 905, the host application 121 may transmit information, such as an event, indicating that key input should be stopped upon receiving a virtual keyboard execution termination request from the guest virtual keyboard application 113 to the host OS framework 122. That is, the host application 121 may recognize that the virtual keyboard execution termination request received from the guest virtual keyboard application 113 is a state in which key input should be stopped.

[0140] At operation 906, the host OS framework 122 may send a virtual keyboard execution termination request to the host virtual keyboard application 123 upon receiving information from the host application 121, such as an event indicating that key input should be stopped.

[0141] At operation 907, the host virtual keyboard application 123 may terminate execution upon receiving a virtual keyboard execution termination request from the host OS framework 122. This terminates displaying the virtual keyboard user interface on the display screen.

[0142] FIG. 10 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0143] Operations 1001 to 1008 illustrated in FIG. 10 correspond to operations 601 to 608 illustrated in FIG. 6, except that in the example illustrated in FIG. 10, language information is provided from the guest system to the host system.

[0144] Referring to FIG. 10, operations 1001 to 1003 correspond to operations 601 to 603 illustrated in FIG. 6, and therefore further description thereof is omitted.

[0145] At operation 1004, the guest OS framework 112 may transmit a virtual keyboard launch request to the guest virtual keyboard application 113 upon receiving information, such as an event indicating that a key input should be provided from the guest application 111. At this time, the guest OS framework 112 may further provide language information along with the virtual keyboard launch request. The language information may include information indicating the language of the characters displayed on the virtual keyboard. For example, if the computing device 100 is installed in Korea, the language of the characters displayed on the virtual keyboard is preferably set to Korean by default. For example, if the computing device 100 is installed in China, the language of the characters displayed on the virtual keyboard is preferably set to Chinese by default. The method for determining the language of the characters displayed on the virtual keyboard may vary. For example, as described above, the guest OS framework 112 may determine the virtual keyboard language based on the language of the country in which the computing device 100 is installed. For example, if computing device 100 has registered information about language based on user input, guest OS framework 112 can determine the virtual keyboard language based on the registration information based on the user input.

[0146] At operation 1005, the guest virtual keyboard application 113 may forward the virtual keyboard execution request to the host application 121 of the host system 120 upon receiving the virtual keyboard execution request from the guest OS framework 112. At this time, the guest virtual keyboard application 113 may provide the language information received from the guest OS framework 112 together with the virtual keyboard execution request.

[0147] At operation 1006, the host application 121 may forward information, such as an event indicating that a key input should be provided, to the host OS framework 122 upon receiving a virtual keyboard launch request from the guest virtual keyboard application 113. At this time, the host application 121 may further forward the language information received from the guest virtual keyboard application 113.

[0148] At operation 1007, the host OS framework 122 may transmit a virtual keyboard execution request to the host virtual keyboard application 123 upon receiving information, such as an event, indicating that a key input should be provided from the host application 121. At this time, the host OS framework 122 may further receive language information from the host application 121. Accordingly, the host OS framework 122 may select a host virtual keyboard application corresponding to the language information received from the host application 121 among host virtual keyboard applications corresponding to a plurality of languages, and transmit the execution request to the selected host virtual keyboard application. For example, if the host system 120 includes a host virtual keyboard application corresponding to Korean, a host virtual keyboard application corresponding to Japanese, and a host virtual keyboard application corresponding to Chinese, and if the host OS framework 122 receives Chinese as the language information, the host OS framework 122 may request execution of the host virtual keyboard application corresponding to Chinese.

[0149] At operation 1008, the host virtual keyboard application 123 may be executed upon receiving a virtual keyboard execution request from the host OS framework 122.

[0150] Although the example illustrated in FIG. 10 illustrates an example in which the guest system provides information about the language of characters displayed on the virtual keyboard to the host system 120, the present invention is not limited thereto. In one embodiment, the host OS framework 122 of the host system 120 may also determine the language of characters displayed on the virtual keyboard.

[0151] FIG. 11 illustrates a flowchart of an example of a method for operating a virtual keyboard during execution of a guest application on a computing device according to one embodiment.

[0152] Operations 1101 to 1108 illustrated in FIG. 11 correspond to operations 601 to 608 illustrated in FIG. 6, except that in the example illustrated in FIG. 11, location information is provided from the guest system to the host system.

[0153] Referring to FIG. 11, operations 1101 to 1103 correspond to operations 601 to 603 illustrated in FIG. 6, and therefore further description thereof is omitted.

[0154] At operation 1104, the guest OS framework 112 may transmit a virtual keyboard launch request to the guest virtual keyboard application 113 upon receiving information, such as an event, indicating that a key input should be provided from the guest application 111. At this time, the guest OS framework 112 may further provide position information along with the virtual keyboard launch request. The position information may include information indicating the location of the area on the display screen where the virtual keyboard is to be displayed. For example, the screen layer of the virtual keyboard based on the host system may be displayed as an overlay on the screen layer of the guest application running on the guest system. However, even in this case, it is not desirable for the screen layer of the virtual keyboard based on the host system to cover the information displayed on the screen layer of the guest application running, and therefore, the guest OS framework 112 may take this into consideration and provide the host system with position information regarding the area where the virtual keyboard screen based on the host system is to be displayed.

[0155] At operation 1105, the guest virtual keyboard application 113 may forward the virtual keyboard execution request to the host application 121 of the host system 120 upon receiving the virtual keyboard execution request from the guest OS framework 112. At this time, the guest virtual keyboard application 113 may provide the location information received from the guest OS framework 112 together with the virtual keyboard execution request.

[0156] At operation 1106, the host application 121 may forward information, such as an event indicating that a key input should be provided, to the host OS framework 122 upon receiving a virtual keyboard launch request from the guest virtual keyboard application 113. At this time, the host application 121 may further forward the position information received from the guest virtual keyboard application 113.

[0157] In operation 1107, the host OS framework 122 may transmit a virtual keyboard execution request to the host virtual keyboard application 123 upon receiving information such as an event indicating that a key input should be provided from the host application 121. At this time, the host OS framework 122 may further receive location information from the host application 121. Accordingly, when the host OS framework 122 displays a virtual keyboard user interface upon execution of the host virtual keyboard application, the host OS framework 122 may control the virtual keyboard user interface to be output at a corresponding location on the display screen by referring to the received location information.

[0158] FIG. 12 illustrates an example of a computing device according to one embodiment.

[0159] Referring to FIG. 12, the computing device 100 may further include a communication unit 1310, a receiving unit 1320, a display 1330, a memory 1340, a control unit 1350, a playback unit 1360, an audio processing unit 1370, an audio output unit 1380, and a detection unit 1390.

[0160] The communication unit 1210 may include various communication circuits included in one or more modules that enable wireless communication between the computing device 100 and a wireless communication system or between the computing device 100 and a network in which other electronic devices are located. For example, the communication unit 1210 may include a mobile communication module 1211, a wireless Internet module 1212, and a short-range communication module 1213.

[0161] Mobile communication module 1211 transmits and receives wireless signals with at least one of a base station, an external terminal, and a server on a mobile communication network. The wireless signals may include various types of data, such as voice call signals, video call signals, or text / multimedia message transmission and reception.

[0162] The wireless Internet module 1212 refers to a module for wireless Internet access, which may be built into or external to the device. Wireless Internet technologies that may be used include WLAN (Wireless LAN) (WiFi), Wibro (Wireless broadband), Wimax (World Interoperability for Microwave Access), and HSDPA (High Speed ​​Downlink Packet Access). Through the wireless Internet module 1212, the device can establish a Wi-Fi P2P (Peer to Peer) connection with other devices.

[0163] Short-range communication module 1213 refers to a module for short-range communication. Short-range communication technologies that can be used include Bluetooth, BLE (Bluetooth Low Energy), RFID (Radio Frequency Identification), IrDA (Infrared Data Association), UWB (Ultra Wideband), and ZigBee.

[0164] The receiving unit 1220 can receive video (e.g., moving images, etc.), audio (e.g., voice, music, etc.), and additional information (e.g., EPG, etc.) from the outside of the computing device 100 under the control of the control unit 1250. The receiving unit 1210 may include one of an HDMI port (High-Definition Multimedia Interface port, 1211), a component jack (component jack, 1212), a PC port (PC port, 1213), and a USB port (USB port, 1214), or a combination of one or more thereof. In addition to the HDMI port, the receiving unit 1220 may further include a DisplayPort (DP), Thunderbolt, or MHL (Mobile High-Definition Link).

[0165] The playback unit 1260 can process a video signal received from the reception unit 1220 or the communication unit 1210 and output it to the display 1230 under the control of the control unit 1250.

[0166] The display 1230 can display the video signal received from the video processing unit 1260 on the screen.

[0167] The audio processing unit 1270 can convert an audio signal received from the receiving unit 1220 or the communication unit 1210 into an analog audio signal and output it to the audio output unit 1280 under the control of the control unit 1250.

[0168] Audio output section 1280 can output received analog audio signals through speakers.

[0169] The sensing unit 1290 detects a user's voice, a user's image, or a user's interaction, and may include a microphone, a camera unit, and an optical receiver. The microphone receives a user's uttered voice. The microphone may convert the received voice into an electrical signal and output it to the control unit 1250. The camera unit may receive an image (e.g., a series of frames) corresponding to a user's motion including a gesture within a camera recognition range. The optical receiver receives an optical signal (including a control signal) received from a remote control device. The optical receiver may receive an optical signal corresponding to a user input (e.g., a touch, a press, a touch gesture, a voice, or a motion) from the remote control device.

[0170] Memory 1240 can store programs related to the operation of the computing device 100 and various data generated during the operation of the computing device 100.

[0171] The processor 1250 may include various processing circuits and / or multiple processors. For example, the term "processor" as used herein, including in the claims, may include various processing circuits, including at least one processor. At least one processor, one or more processors, may be individually and / or collectively configured to perform various functions described herein in a distributed fashion. As used herein, "processor," "at least one processor," and "one or more processors" may be configured to perform multiple functions. However, these terms encompass, for example, but not limited to, situations where one processor performs some of the functions and other processor(s) perform other parts of the functions, and situations where a single processor may perform all of the functions. Furthermore, the at least one processor may include a combination of processors that perform various of the disclosed functions in a distributed manner. The at least one processor may execute program instructions to achieve or perform various functions.

[0172] According to one embodiment, the processor 1250 may execute a guest application based on the guest operating system by executing one or more instructions stored in the memory 1240.

[0173] In one embodiment, the processor 1250 may transmit a virtual keyboard execution request from the guest operating system to the host operating system upon detecting that a key input is required from the guest application by executing one or more instructions stored in the memory 1240.

[0174] According to one embodiment, the processor 1250 may be configured to display a host virtual keyboard user interface on at least a portion of a display on which an execution screen of the guest application is displayed, by executing one or more instructions stored in the memory 1240, as a result of the host operating system executing the host virtual keyboard application.

[0175] According to one embodiment, the processor 1250 may transmit a virtual keyboard execution request by a guest virtual keyboard application to the host application based on information, such as an event indicating that a key input generated by the guest application should be provided, by executing one or more instructions stored in the memory 1240.

[0176] According to one embodiment, the processor 1250 may perform an operation to cause a host virtual keyboard application to be executed upon receipt of a virtual keyboard execution request by the host application by executing one or more instructions stored in the memory 1240.

[0177] According to one embodiment, the processor 1250 may display a virtual keyboard user interface on at least a portion of a display on which an execution screen of the guest application is displayed, for virtual keyboard execution based on an operation of the host application, by executing one or more instructions stored in the memory 1240, by the host virtual keyboard application.

[0178] According to one embodiment, the processor 1250 may receive information, such as an event, indicating that a key input should be provided from the guest application by the guest OS framework by executing one or more instructions stored in the memory 1240, and upon receiving the event, transmit a virtual keyboard execution request to the guest virtual keyboard application.

[0179] According to one embodiment, the processor 1250 may transmit the virtual keyboard execution request by the guest virtual keyboard application to the host application by executing one or more instructions stored in the memory 1240.

[0180] In one embodiment, the processor 1250 may transmit information, such as an event, to the host OS framework indicating that a key input should be provided upon receipt of a virtual keyboard execution request from the guest virtual keyboard application by the host application by executing one or more instructions stored in the memory 1240.

[0181] According to one embodiment, the processor 1250 may transmit a virtual keyboard execution request to the host virtual keyboard application upon receipt of the event by the host OS framework by executing one or more instructions stored in the memory 1240.

[0182] According to one embodiment, the processor 1250 may execute one or more instructions stored in the memory 1240 to transmit a key value corresponding to a key input received based on the virtual keyboard user interface by the host virtual keyboard application to the guest application through the host application and the guest virtual keyboard application, and to cause the guest application to perform an operation corresponding to the key value.

[0183] In one embodiment, the processor 1250 may execute one or more instructions stored in the memory 1240 to cause the guest virtual keyboard application to transmit a virtual keyboard execution termination request to the host application based on information such as an event indicating that a key input generated by the guest application should be stopped.

[0184] According to one embodiment, the processor 1250 may execute one or more instructions stored in the memory 1240, thereby causing the host application to perform an action to terminate execution of the host virtual keyboard application upon receipt of the virtual keyboard execution termination request.

[0185] According to one embodiment, the processor 1250 may cause the host virtual keyboard application to stop outputting the virtual keyboard user interface on a display on which the execution screen of the guest application is displayed, based on the operation of the host application, by executing one or more instructions stored in the memory 1240.

[0186] According to one embodiment, the processor 1250 may receive information, such as an event indicating that key input from the guest application should be stopped, by executing one or more instructions stored in the memory 1240, by the guest OS framework, and upon receiving the event, transmit a virtual keyboard execution termination request to the guest virtual keyboard application.

[0187] According to one embodiment, the processor 1250 may transmit a request to terminate execution of the virtual keyboard to the host application by the guest virtual keyboard application by executing one or more instructions stored in the memory 1240.

[0188] In one embodiment, the processor 1250 may transmit information, such as an event, to the host OS framework indicating that key input should be stopped upon receipt of a virtual keyboard execution termination request from the guest virtual keyboard application by the host application by executing one or more instructions stored in the memory 1240.

[0189] According to one embodiment, the processor 1250 may transmit a virtual keyboard execution termination request to the host virtual keyboard application upon receipt of the event by the host OS framework by executing one or more instructions stored in the memory 1240.

[0190] According to one embodiment, the processor 1250 may receive information about a language from the guest OS framework and transmit the information about the language to the host application by executing one or more instructions stored in the memory 1240, by the guest virtual keyboard application.

[0191] According to one embodiment, the processor 1250 may transmit information about the language by the host application to the host OS framework by executing one or more instructions stored in the memory 1240.

[0192] According to one embodiment, the processor 1250 may transmit a virtual keyboard execution request to a host virtual keyboard application corresponding to the language by referencing the information about the received language by executing one or more instructions stored in the memory 1240, by the host OS framework.

[0193] According to one embodiment, the processor 1250 may determine, by the host OS framework, information about a language by executing one or more instructions stored in the memory 1240, and transmit the information about the language to a host virtual keyboard application corresponding to the language.

[0194] According to one embodiment, the processor 1250 may receive information about a display position of a virtual keyboard from the guest OS framework by the guest virtual keyboard application and transmit information about the display position to the host application by executing one or more instructions stored in the memory 1240.

[0195] According to one embodiment, the processor 1250 may transmit information about the display location to the host OS framework by the host application by executing one or more instructions stored in the memory 1240.

[0196] According to one embodiment, the processor 1250 may execute one or more instructions stored in the memory 1240, thereby causing the host OS framework to display the virtual keyboard user interface at the display location by referencing the information about the received display location.

[0197] According to one embodiment, a method of operating a computing device including a guest operating system and a host operating system may include executing a guest application based on the guest operating system.

[0198] In one embodiment, the method may include transmitting a virtual keyboard execution request from the guest operating system to the host operating system upon detecting that a key input is required from the guest application.

[0199] In one embodiment, the method may include displaying a host virtual keyboard user interface on at least a portion of a display on which an execution screen of the guest application is displayed as the host virtual keyboard application is executed by the host operating system.

[0200] In one embodiment, the method may include an action of transmitting a virtual keyboard execution request by the guest virtual keyboard application to the host application based on information, such as an event indicating that a key input generated by the guest application should be provided.

[0201] In one embodiment, the method may include performing, by the host application, an action to cause the host virtual keyboard application to be executed upon receipt of the virtual keyboard execution request.

[0202] In one embodiment, the method may include an action of displaying a virtual keyboard user interface on at least a portion of a display on which an execution screen of the guest application is displayed, for executing a virtual keyboard based on an operation of the host application, by the host virtual keyboard application.

[0203] In one embodiment, the method may include receiving, by the guest OS framework, information, such as an event, indicating that a key input should be provided from the guest application, and transmitting a virtual keyboard execution request to the guest virtual keyboard application upon receiving the event.

[0204] In one embodiment, the method may include an action of transmitting, by the guest virtual keyboard application, a request for executing the virtual keyboard to the host application.

[0205] In one embodiment, the method may include the operation of transmitting, by the host application, information, such as an event, indicating that a key input should be provided upon receipt of the virtual keyboard execution request from the guest virtual keyboard application, to the host OS framework.

[0206] In one embodiment, the method may include an operation of transmitting, by the host OS framework, a virtual keyboard execution request to the host virtual keyboard application upon receipt of the event.

[0207] According to one embodiment, the method may include transmitting, by the host virtual keyboard application, a key value corresponding to a key input received based on the virtual keyboard user interface to the guest application through the host application and the guest virtual keyboard application.

[0208] In one embodiment, the method may include performing, by the guest application, an operation corresponding to the key value.

[0209] In one embodiment, the method may include the guest virtual keyboard application transmitting a virtual keyboard execution termination request to the host application based on information, such as an event indicating that key input generated by the guest application should be stopped.

[0210] In one embodiment, the method may include an action whereby the host application performs an action to cause the host virtual keyboard application to terminate execution upon receipt of the virtual keyboard execution termination request.

[0211] In one embodiment, the method may include an operation in which, based on an operation of the host application, the host virtual keyboard application terminates output of the virtual keyboard user interface on a display in which an execution screen of the guest application is displayed.

[0212] In one embodiment, the method may include receiving, by the guest OS framework, information, such as an event, indicating that key input from the guest application should be stopped, and transmitting a virtual keyboard execution termination request to the guest virtual keyboard application upon receiving the event.

[0213] In one embodiment, the method may include an operation of transmitting, by the guest virtual keyboard application, a request to terminate execution of the virtual keyboard to the host application.

[0214] In one embodiment, the method may include transmitting information, such as an event, indicating that key input should be stopped to the host OS framework upon receipt of a virtual keyboard execution termination request from the guest virtual keyboard application by the host application.

[0215] In one embodiment, the method may include an operation of transmitting, by the host OS framework, a virtual keyboard execution termination request to the host virtual keyboard application upon receipt of the event.

[0216] In one embodiment, the method may include receiving, by the guest virtual keyboard application, information about a language from the guest OS framework and transmitting the information about the language to the host application.

[0217] In one embodiment, the method may include transmitting information about the language by the host application to the host OS framework.

[0218] In one embodiment, the method may include an operation of transmitting, by the host OS framework, a virtual keyboard execution request to the host virtual keyboard application corresponding to the language, with reference to the information about the received language.

[0219] In one embodiment, the method may include operations of determining, by the host OS framework, information about a language and transmitting the information about the language to a host virtual keyboard application corresponding to the language.

[0220] In one embodiment, the method may include receiving, by the guest virtual keyboard application, information about a display position of a virtual keyboard from the guest OS framework and transmitting information about the display position to the host application.

[0221] In one embodiment, the method may include transmitting information about the display location by the host application to the host OS framework.

[0222] In one embodiment, the method may include an operation of causing the virtual keyboard user interface to display at the display location, with reference to the information about the received display location, by the host OS framework.

[0223] Some embodiments may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules, executed by a computer. Computer-readable media may be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Computer-readable media may also include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.

[0224] The disclosed embodiments can be implemented as a S / W program including commands stored in a computer-readable storage media.

[0225] A computer may include an electronic device according to the disclosed embodiments, as a device capable of calling a command stored from a storage medium and performing an operation according to the called command according to the disclosed embodiments.

[0226] Computer-readable storage media may be provided in the form of non-transitory storage media. Here, "non-transitory" simply means that the storage medium does not contain signals and is tangible, but does not distinguish between whether data is stored semi-permanently or temporarily on the storage medium.

[0227] Additionally, the control method according to the disclosed embodiments may be provided as a computer program product. The computer program product may be traded as a product between a seller and a buyer.

[0228] A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, the computer program product may include a product in the form of a software program (e.g., a downloadable app) distributed electronically by a device manufacturer or through an electronic marketplace (e.g., Google Play Store, App Store). For electronic distribution, at least a portion of the software program may be stored on a storage medium or temporarily created. In this case, the storage medium may be a storage medium of a manufacturer's server, an electronic marketplace server, or a relay server that temporarily stores the software program.

[0229] In a system comprising a server and a device, the computer program product may include a storage medium of the server or a storage medium of the device. Alternatively, if a third device (e.g., a smartphone) exists that is communicatively connected to the server or device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include a software program itself that is transmitted from the server to the device or the third device, or from the third device to the device.

[0230] In this case, one of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments in a distributed manner.

[0231] For example, a server (e.g., a cloud server or an artificial intelligence server, etc.) may execute a computer program product stored on the server to control a device in communication with the server to perform a method according to the disclosed embodiments.

[0232] As another example, a third device may execute a computer program product to control a device in communication with the third device to perform a method according to the disclosed embodiments. When the third device executes the computer program product, the third device may download the computer program product from a server and execute the downloaded computer program product. Alternatively, the third device may execute a computer program product provided in a preloaded state to perform the method according to the disclosed embodiments.

[0233] Additionally, in this specification, a “part” may be a hardware component such as a processor or circuit, and / or a software component executed by a hardware component such as a processor.

[0234] The above description of the present disclosure is provided for illustrative purposes only, and those skilled in the art will readily appreciate that modifications to other specific forms can be made without altering the technical spirit or essential features of the present disclosure. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. For example, components described as being single may be implemented in a distributed manner, and similarly, components described as being distributed may be implemented in a combined manner.

[0235] The scope of the present disclosure is indicated by the claims described below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present disclosure.

Claims

1. In computing devices, one or more processors, and Contains memory that stores instructions, The computing device, wherein the above instructions are executed by the one or more processors, Upon detecting that a key input is provided from the guest application, the guest operating system transmits a first virtual keyboard execution request to the host operating system, By the above host operating system, the first host virtual keyboard application is executed, A computing device that displays a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed by the first host virtual keyboard application when the first host virtual keyboard application is executed.

2. In paragraph 1, The above instructions are executed by the one or more processors so that the computing device generates first information indicating that the key input is provided by the guest application, Based on the generation of the first information, the guest virtual keyboard application transmits the first virtual keyboard execution request to the host application of the host operating system, By the above host application, upon receipt of the first virtual keyboard execution request, the first host virtual keyboard application is executed, A computing device, wherein the first host virtual keyboard application displays the host virtual keyboard user interface on at least a first portion of the display.

3. In paragraph 1 or 2, The above instructions are executed by the one or more processors so that the computing device receives, by the guest operating system framework, the first information indicating that a key input is to be provided from the guest application, As the first information is received by the guest operating system, By the guest operating system framework, the first virtual keyboard execution request is transmitted to the guest virtual keyboard application, A computing device that transmits the first virtual keyboard execution request to the host application of the host operating system by the guest virtual keyboard application.

4. In any one of paragraphs 1 to 3, The above instructions are executed by the one or more processors so that the computing device transmits second information to the host OS framework indicating that a key input should be provided upon receipt of the first virtual keyboard execution request from the guest virtual keyboard application by the host application, A computing device that transmits a second virtual keyboard execution request to the first host virtual keyboard application upon receipt of the second information by the host OS framework.

5. In any one of paragraphs 1 to 4, The above instructions are executed by the one or more processors so that the computing device transmits a key value corresponding to a key input into the virtual keyboard user interface to the guest application through the host application of the host operating system and the guest virtual keyboard application by the first host virtual keyboard application, A computing device that performs an operation corresponding to the key value by the guest application.

6. In any one of paragraphs 1 to 5, The above instructions are executed by the one or more processors so that the computing device generates, by the guest application, first information indicating that the key input is interrupted, Based on the generation of the above first information, a request to terminate execution of the first virtual keyboard is transmitted to the host application of the host operating system by the guest virtual keyboard application, By the host application, upon receipt of a request to terminate execution of the first virtual keyboard, the first host virtual keyboard application is terminated, A computing device, wherein the display of the host virtual keyboard user interface is stopped by the host application.

7. In any one of paragraphs 1 to 6, The above instructions are executed by the one or more processors, and the computing device receives the first information from the guest application through the guest OS framework, and transmits a request to terminate execution of the first virtual keyboard to the guest virtual keyboard application upon receiving the first information. By the guest virtual keyboard application, the first virtual keyboard execution termination request is transmitted to the host application, By the host application, upon receipt of the first virtual keyboard execution termination request, second information indicating that key input should be stopped is transmitted to the host OS framework, A computing device configured to transmit a request to terminate execution of a second virtual keyboard to the first host virtual keyboard application upon receipt of the second information by the host OS framework.

8. In any one of paragraphs 1 to 7, The above instructions are executed by the one or more processors so that the computing device receives language information from the guest OS framework by the guest virtual keyboard application and transmits the language information to a host application of the host operating system, The language information is transmitted to the host OS framework by the host application, A computing device configured to transmit a virtual keyboard execution request to a second host virtual keyboard application corresponding to the language information by the host OS framework.

9. In any one of paragraphs 1 to 8, The above instructions are executed by the one or more processors so that the computing device receives, by the guest virtual keyboard application, location information for the host virtual keyboard user interface from the guest OS framework and transmits the location information to a host application of the host operating system, The location information is transmitted to the host OS framework by the host application, A computing device that displays the host virtual keyboard user interface at a location corresponding to the received location information by the host OS framework.

10. In a method of operating a computing device, An action to execute a guest application of the above guest operating system, An action of transmitting a first virtual keyboard execution request to the host operating system by the guest operating system upon detecting that a key input is provided through the guest application; An operation of executing a first host virtual keyboard application by the above host operating system, and A method comprising: displaying a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed by the first host virtual keyboard application when the first host virtual keyboard application is executed; 11. In paragraph 10, An action to generate first information indicating that the key input should be provided by the guest application; An operation of transmitting a request for executing the first virtual keyboard to a host application of the host operating system based on the generation of the first information, by the guest virtual keyboard application; An operation of executing the first host virtual keyboard application upon receipt of the first virtual keyboard execution request by the host application, and A method comprising: displaying, by the first host virtual keyboard application, the host virtual keyboard user interface on at least a first portion of the display.

12. In paragraph 10 or 11, An operation of receiving, by the guest operating system framework, the first information indicating that a key input should be provided from the guest application, and As the first information is received by the guest operating system, An operation of transmitting a request for executing the first virtual keyboard to a guest virtual keyboard application by the guest operating system framework, and A method comprising an action of transmitting, by the guest virtual keyboard application, the first virtual keyboard execution request to a host application of the host operating system.

13. In any one of paragraphs 10 to 12, An operation of transmitting second information indicating that a key input should be provided to the host OS framework upon receipt of the first virtual keyboard execution request from the guest virtual keyboard application by the host application, and A method comprising an operation of transmitting a second virtual keyboard execution request to the first host virtual keyboard application upon receipt of the second information by the host OS framework.

14. In any one of paragraphs 10 to 13, An operation of transmitting a key value corresponding to a key input into the virtual keyboard user interface by the first host virtual keyboard application to the guest application through the host application of the host operating system and the guest virtual keyboard application, and A method comprising an action of performing an action corresponding to the key value by the guest application.

15. A non-transitory computer-readable recording medium storing one or more instructions executable by at least one processor of a computing device, wherein the one or more instructions are executed by the at least one processor of the computing device, thereby causing the computing device to: When a key input is detected from a guest application, the guest operating system sends a request to the host operating system to execute a first virtual keyboard, By the above host operating system, the first host virtual keyboard application is executed, A non-transitory computer-readable recording medium for displaying a host virtual keyboard user interface for a virtual keyboard of the host operating system on at least a first portion of a display on which an execution screen of the guest application is displayed by the first host virtual keyboard application when the first host virtual keyboard application is executed.

Citation Information

Patent Citations

  • Input method and electronic equipment

    CN113741708A

  • Information processing apparatus and control method

    CN116560556A

  • Gas usage optimization control method for liquefied gas carrier ship

    KR1020220139133A

  • Operation Method of Dual Operating Systems, Touch Sensitive Electronic Device Having Dual Operating Systems, and Computer Readable Storage Medium Having Dual Operating Systems

    US20140043267A1

  • Selecting Operating Systems Based on a Computing Device Mode

    US20160196146A1