Multi-user multi-display input for vehicle operating systems
By initiating multiple input method editor sessions for each user profile across various displays, the system facilitates concurrent text input for multiple users in a vehicle, overcoming limitations of single-display systems.
Patent Information
- Application Number
- PCT/US2024/034547
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-18
- Publication Date
- 2025-12-26
AI Technical Summary
Existing vehicle operating systems are designed to support user interactions with only a single display, failing to accommodate multiple users interacting with different displays in the vehicle cabin simultaneously for concurrent text input.
The system initiates and maintains multiple input method editor sessions for each user profile at different display devices, allowing concurrent text input interfaces for multiple users across multiple displays.
Enables multiple occupants in a vehicle to simultaneously input text into applications displayed on multiple input/output devices, enhancing user interaction capabilities beyond single-display systems.
Smart Images

Figure US2024034547_26122025_PF_FP_ABST
Abstract
Description
MULTI-USER MULTI-DISPLAY INPUT FOR VEHICLE OPERATING SYSTEMSBACKGROUND
[0001] A vehicle head unit (which may be referred to as an infotainment system) may be configured to execute a vehicle operating system to facilitate control of, to provide a few examples, entertainment (such as music, video, images, etc.), information, navigation, and voice calls, as well as vehicle systems, such as heating, ventilation, and air conditioning (HVAC) systems, lighting systems, and seat control systems (including heating and / or cooling, seat adjustment, etc.). The vehicle head unit may be coupled to a display, such as a touchscreen display, that enable occupants of the vehicle to interact with functionalities provided by the vehicle head unit.SUMMARY
[0002] In general, various aspects of the techniques set forth in this disclosure are directed to a vehicle operating system for a vehicle head unit that provides support for concurrent user input at multiple input / output display devices (e.g., presence-sensitive displays). Vehicles have begun integrating increasingly more displays in a cabin of the vehicle. For examples, the cabin of a vehicle may include one or more dash-mounted displays as well as one or more displays disposed behind the front seats of the vehicle for use by rear seat passengers. However, a vehicle operating system that has been designed to support user interactions with only a single display may not be able to support multiple users interacting with different displays in the cabin of the vehicle to input text via the different displays at the same time.
[0003] In accordance with aspects of this disclosure, to support concurrent user input at multiple input / output display devices, the vehicle operating system may associate an input method editor session with a particular user using a particular input / output display device, and may initiate and concurrently maintain multiple input method editor sessions each associated with a corresponding input / output display device being used by a corresponding user. For example, the vehicle operating system may initiate a first input method editor session for a first input / output display device and, while maintaining the first input method editor session, initiate a second input method editor session for a second input / output display device.
[0004] The vehicle operating system may, based on initiating the first input method editor session, display, at the first input / output display device, a first text input interface (e.g., an on-screen virtual keyboard). A first user may therefore interact with the first text inputinterface to input text into an text input field of an application presented at the first input / output display device.
[0005] While the vehicle operating system displays the first text input interface at the first input / output display device, the vehicle operating system may also, based on initiating the second input method editor session, display, at the second input / output display device, a second text input interface. A second user may therefore interact with the second text input interface to input text into an text input field of an application presented at the second input / output display device while the first user interacts with the first text input interface to input text at the first input / output display device.
[0006] In this way, various aspects of the techniques described in this disclosure may enable a single-instance of a vehicle operating system to facilitate multiple occupants of a vehicle to concurrently provide text input at multiple input / output display devices for inputting text into applications displayed at the multiple input / output display devices, providing a technical improvement over vehicle operating systems that may only enable text input at a single input / output display device.
[0007] In some aspects, the techniques described herein relate to a method including: initiating, by an operating system executing at one or more processors of a computing device, a first input method editor (IME) session for a first user profile at a first input / output (I / O) display device communicably coupled to the one or more processors, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; while maintaining the first IME session, initiating, by the operating system executing at the one or more processors, a second IME session for a second user profile at a second I / O display device communicably coupled to the one or more processors, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receiving, by a first application executing at the one or more processors and from the first IME, the first application having a first user interface displayed at the first VO display device, first text input that corresponds to first user input received at the first text input interface; and receiving, by a second application executing at the one or more processors and from the second IME, the second application having a second user interface displayed at the second I / O display device, second text input that corresponds to second user input received at the second text input interface.
[0008] In some aspects, the techniques described herein relate to a computing device including: a memory configured to store an operating system; and processing circuitryconfigured to execute the operating system to: initiate a first input method editor (IME) session for a first user profile at a first input / output (I / O) display device communicably coupled to the processing circuitry, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate a second IME session for a second user profile at a second VO display device communicably coupled to the processing circuitry, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; wherein the processing circuitry is further configured to execute a first application having a first user interface displayed at the first I / O display device to receive, from the first IME, first text input that corresponds to first user input received at the first text input interface; and wherein the processing circuitry is further configured to execute a second application having a second user interface displayed at the second I / O display device to receive, from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0009] In some aspects, the techniques described herein relate to a non-transitory computer- readable storage medium having instructions stored thereon that, when executed, cause one or more processors to: initiate, by an operating system, a first input method editor (IME) session for a first user profile at a first input / output (I / O) display device communicably coupled to the processing circuitry, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate, by the operating system, a second IME session for a second user profile at a second I / O display device communicably coupled to the processing circuitry, including outputting, for display at the second VO display device, a second text input interface for a second IME associated with the second IME session; receive, by a first application having a first user interface displayed at the first I / O display device and from the first IME, first text input that corresponds to first user input received at the first text input interface; and receive, by a second application having a second user interface displayed at the second I / O display device and from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0010] In some aspects, the techniques described herein relate to a computer program product comprising instructions that, when executed, cause one or more processors to: initiate, by an operating system, a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the processing circuitry,including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate, by the operating system, a second IME session for a second user profile at a second I / O display device communicably coupled to the processing circuitry, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receive, by a first application having a first user interface displayed at the first I / O display device and from the first IME, first text input that corresponds to first user input received at the first text input interface; and receive, by a second application having a second user interface displayed at the second VO display device and from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0011] In some aspects, the techniques described herein relate to an apparatus comprising: means for an operating system to initiate a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the processing circuitry, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; means for an operating system to, while maintaining the first IME session, initiate a second IME session for a second user profile at a second I / O display device communicably coupled to the processing circuitry, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; means for a first application having a first user interface displayed at the first I / O display device to receive, from the first IME, first text input that corresponds to first user input received at the first text input interface; and means for a second application having a second user interface displayed at the second VO display device to receive, from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0012] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims.BRIEF DESCRIPTION OF DRAWINGS
[0013] FIG. l is a block diagram illustrating an example computing system that is configured to provide a vehicle operating system that enables multi-display and multi-user input, in accordance with various aspects of the techniques described in this disclosure.
[0014] FIG. 2 is a diagram illustrating an example of a vehicle that includes a computing system configured to execute a vehicle operating system that operates in accordance with various aspects described in this disclosure.
[0015] FIG. 3 illustrates example input / output display devices, in accordance with aspects of this disclosure.
[0016] FIG. 4 is a timing diagram illustrating an example process performed by the vehicle operating system shown in FIG. 1 to enable multi-user and multi-display input, in accordance with aspects of this disclosure.
[0017] FIG. 5 is a flowchart illustrating example operation of a computing system in executing a vehicle operating system configured to perform various aspects of the techniques described in this disclosure.DETAILED DESCRIPTION
[0018] FIG. l is a block diagram illustrating an example computing system that is configured to provide vehicle operating system that enables multi-display and multi-user input, in accordance with various aspects of the techniques described in this disclosure. As shown in the example of FIG. 1, a computing system 100 includes a computing device 102. Although described with respect to a vehicle, the computing system 100 may be utilized in different contexts, including standalone computing systems (including laptop computers, desktop computers, workstations and the like), gaming systems, cellular telephones (including so- called “smartphones”), media systems (including streaming media systems), audio / visual (A / V) receivers, televisions (including so-called “smart televisions”), smart speakers, smart watches, thermostats (including so-called “smart thermostats”), smart glasses, or any other computing system.
[0019] In any event, computing device 102 is an example of vehicle computing device, such as a vehicle head unit. FIG. 1 illustrates only one particular example of computing device 102, and many other examples of computing device 102 may be used in other instances and may include a subset of the components included in example computing device 102 or may include additional components not shown in FIG. 1.
[0020] As further shown in the example of FIG. 1, computing device 102 includes presencesensitive display 112, one or more processors 140, one or more communication units 142, one or more input components 144, one or more output components 146, and one or more storage devices 148, and communication channels 149. Communication channels 149 may interconnect each of the components 112, 140, 142, 146, and / or 148 for inter-componentcommunications (physically, communicatively, and / or operatively) and thereby allow components 112, 140, 142, 146, and 148 to communicate with one another. In some examples, communication channels 149 may include a system bus, a network connection, one or more inter-process communication data structures, or any other components for communicating data (also referred to as information). Although shown as including components 112, 140, 142, 146, and 148, computing device 102 (which may be referred to as “main computing device 102”) may include other components or less components than those shown, where such components may be included in other control units such as a telematic control unit (TCU).
[0021] One or more communication units 142 of computing device 102 may communicate with external devices by transmitting and / or receiving data. For example, computing device 102 may use one or more of communication units 142 to transmit and / or receive radio signals on a radio network such as a cellular radio network. In some examples, communication units 142 may transmit and / or receive satellite signals on a satellite network such as a Global Positioning System (GPS) network. Examples of communication units 142 include a network interface card (e.g. an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device that can send and / or receive information. Other examples of communication units 142 may include a controller area network (CAN - operating via CAN bus), short wave radios (e.g., NFC, BLUETOOTH (including BLE)), GPS, 3G, 4G, 5G, and WIFI radios found in mobile devices as well as Universal Serial Bus (USB) controllers and the like.
[0022] One or more input components 144 of computing device 102 may receive input. Examples of input are tactile, audio, kinetic, and optical input, to name only a few examples. Input components 144 of computing device 102 include, in one example, a mouse, keyboard, touchpad, voice responsive system, video camera, buttons, scroll wheel, dial, control pad, a microphone (or, in other words, an audio capture device), or any other type of device for detecting input from a human or machine. Input components 144 may include cameras. In some examples, input component 144 may be a presence-sensitive input component, which may include a presence-sensitive screen, touch-sensitive screen, etc. separate from presencesensitive display 112.
[0023] One or more output components 146 of computing device 102 may generate output. Examples of output are tactile, audio, and video output. Output components 146 of computing device 102, in some examples, include a presence-sensitive screen (possibly separate from presence-sensitive display 112), a sound card, a video graphics adapter card, aspeaker, a liquid crystal display (LCD), organic light emitting diode (OLED), or any other type of device for generating tactile, audio and / or visual output to a human or machine.
[0024] In some examples, presence-sensitive display 112 of computing device 102 may include functionality of input component 144 and / or output components 146 and thus may be referred to herein as an input / output (I / O) display device. In the example of FIG. 1, presencesensitive display 112 may include a presence-sensitive input (PSI) component 104 (“PSI component 104”), such as a presence-sensitive screen or touch-sensitive screen. In some examples, presence-sensitive input component 104 may detect an object at and / or near the presence-sensitive input component. As one example range, presence-sensitive input component 104 may detect an object, such as a finger or stylus that is within two inches or less of presence-sensitive input component 104. Presence-sensitive input component 104 may determine a location (e.g., an (x,y) coordinate) of the presence-sensitive input component at which the object was detected. In another example range, presence-sensitive input component 104 may detect an object two inches or less from presence-sensitive input component 104 and other ranges are also possible. Presence-sensitive input component 104 may determine the location of presence-sensitive input component 104 selected by a user’s finger using capacitive, inductive, and / or optical recognition techniques.
[0025] In some examples, presence-sensitive display 112 may also provide output to a user using tactile, audio, or video stimuli as described with respect to output component 146. For instance, presence-sensitive display 112 may include display component 103 that displays a graphical user interface. Display component 103 may be any type of output component that provides visual output, such as described with respect to output components 146. While illustrated as an integrated component of computing device 102, presence-sensitive display 112 may, in some examples, be an external component that shares a data or information path with other components of computing device 102 for transmitting and / or receiving input and output. For instance, presence-sensitive display 112 may be a built-in component of computing device 102 located within and physically connected to the external packaging of computing device 102 (e.g., an in-vehicle screen mounted in a dashboard of a vehicle). In another example, presence-sensitive display 112 may be an external component of computing device 102 located outside and physically separated from the packaging of computing device 102 (e.g., a monitor, a projector, etc. that shares a wired and / or wireless data path with an electronic control unit of the vehicle). In some examples, presence-sensitive display 112, when located outside of and physically separated from the packaging of computing device102, may be implemented by two separate components: a presence-sensitive input component 104 for receiving input and a display component 103 for providing output.
[0026] One or more storage devices 148 within computing device 102 may store information for processing during operation of computing device 102 (e.g., computing device 102 may store data accessed by operating system (OS) 160 and applications 114A-114N (“applications 114”) during execution at computing device 102). As shown in the example of FIG. 1, one or more storage devices 148 may store operating system 160 and applications 114. In some examples, storage devices 148 is a temporary memory, meaning that a primary purpose of storage devices 148 is not long-term storage. Storage devices 148 of computing device 102 may be configured for short-term storage of information as volatile memory and therefore not retain stored contents if powered off. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.
[0027] Storage devices 148, in some examples, also include one or more computer-readable storage media. Storage devices 148 in some examples include one or more non-transitory computer-readable storage mediums. Storage devices 148 may be configured to store larger amounts of information than typically stored by volatile memory. Storage devices 148 may further be configured for long-term storage of information as non-volatile memory space and retain information after power on / off cycles. Examples of non-volatile memories include magnetic hard discs, optical discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. Storage devices 148 may store program instructions and / or information (e.g., data) associated with OS 160 and applications 114. Storage devices 148 may include a memory configured to store data or other information (which is not shown for ease of illustration purposes) associated with OS 160 and application 114.
[0028] One or more processors 140 may implement functionality and / or execute instructions associated with computing device 102. Examples of processors 140 include application processors, display controllers, auxiliary processors, one or more sensor hubs, and any other hardware configure to function as a processor, a processing unit, a processing device, a controller area network (CAN - operating via a CAN bus), or other processing circuitry. OS 160 and applications 114 may be operable (or, in other words, executed) by processors 140 to perform various actions, operations, or functions of computing device 102.
[0029] That is, OS 160 and applications 114 may form executable bytecode, which when executed, cause processors 140 to perform specific operations (and thereby causingcomputing device 102 to become a specific-purpose computer by which to perform) in accordance with various aspects of the techniques described herein. For example, processors 140 of computing device 102 may retrieve and execute instructions stored by storage devices 148 that cause processors 140 to perform the operations described herein that are attributed to OS 160 and applications 114. The instructions, when executed by processors 140, may cause computing device 102 to store information within storage devices 148.
[0030] As described above, computing system 100 may be integrated or otherwise included within a vehicle. The vehicle may include one or more of a bicycle, a tricycle, a unicycle, a motorcycle, an automobile, farm equipment (such as a tractor, combine, etc.), construction equipment (a dump truck, crane, etc.), military vehicle or equipment (a tank, armament, etc.), a truck, a semi-tractor (or, in other words, a semi-trailer), aviation equipment (such as an airplane), nautical equipment (such as a boat, carrier, submarine, etc.), or any other type of vehicle.
[0031] Computing device 102 (which may be, as noted above, referred to as vehicle head unit 102 and also as an infotainment system 102) may be configured to execute a vehicle operating system, such as OS 160 (which as a result may also be referred to as vehicle OS 160 - VOS 160), as well as applications 114, to facilitate control of, to provide a few examples, entertainment (such as music, video, images, etc.), information, navigation, and voice calls, as well as vehicle systems, such as heating, ventilation, and air conditioning (HVAC) systems, lighting systems, and seat control systems (including heating and / or cooling, seat adjustment, etc.). In some instances, vehicle operating systems may allow a single user profile to access a given instance of the vehicle operating system at once out of, in the example of FIG. 1, multiple user profiles (UP) 161 A-161N (“UP 161”) for VOS 160, where the single user profile is typically the operator of the vehicle. UP 161 may each define a set of access rights (or in other words privileges), preferences (e.g., for user interfaces, VOS 160 settings, etc.), and other user-specific configuration data or information. UP 161 may each be associated with a different user, although, in some examples, UP 161 may include user profiles for the same user. In other instances, vehicle operating systems may allow multiple user profiles to access a given instance of the vehicle operating system at once, but may designate a single user profile as a visible user profile that may interact with VOS 160 via presence-sensitive display 112 while designating the other user profiles as background user profiles that are not able to directly interact with VOS 160.
[0032] This vehicle operating system may be referred to as a single-instance, single-user vehicle operating system. That is, a single instance of the vehicle operating system may onlyallow a single user profile to access the single instance of the vehicle operating system and require a user profile switch in which the single user profile is replaced with another single user profile. In this respect, only a single user profile can access a single instance of the vehicle operating system at any given time.
[0033] OS 160 includes input method management service (IMMS) 162, which is a system service that manages and facilitates text input at an I / O display device, such as presencesensitive display 112 using an input method editor (IME) from, for example, of input method editors (IMEs) 166A-166G (“IMEs 166”). Each of IMEs 166 is a process that one or more processors 140 may execute to output a text input interface that enables a user to input text at an input / output display device, such as presence-sensitive display 112. For example, an IME may be a soft keyboard (also referred to as a virtual keyboard), a handwriting recognizer, and the like, and each IME may be associated with a text input interface (e.g., an on-screen virtual keyboard) that OS 160 may output, for display, at an I / O display device that enables onscreen text input at the I / O display device.
[0034] IMMS 162 may manage the use of an IME according to IME settings associated with a user profile, such as a single user profile that is currently accessing (e.g., logged into) VOS 160 out of UP 161. Each user profile of UP 161 is associated with a corresponding input method editor (IME) setting of IME settings 168A-168N (“IME settings 168”). An IME settings for a corresponding user profile may specify a default IME for the user profile (e.g., out of IMEs 166), the default text input language for the profile, spellcheck settings for the user profile, text autofill settings for the user profile, and the like.
[0035] In operation, when a single user profile is logged into VOS 160 via presence-sensitive display 112, one or more processors 140 may execute IMMS 162 to manage the use of an IME (e.g., IME 166A) to provide text input at an application (e.g., application 114A), such as by causing a text input interface of the IME to be displayed at presence-sensitive display 112 when an text input field of an application (e.g., application 114A) gains focus, to enable a user to interact with the text input interface to input text. IMMS 162 may also manage the use of the IME to provide text input at an application by performing handshaking of the IME with the application to enable the IME to communicate text inputted using the text user interface of the IME to the application. In this way, IMMS 162 may enable text to be inputted to the infocus text input field of the application via the text user interface of the IME.
[0036] A user may interact with a text input interface outputted by an IME to input text into a text input field of a foreground application. In the context where a user interacts with computing device 102 via presence-sensitive display 112, the foreground application may bethe foreground application in the user interface displayed by presence-sensitive display 112, or may be an application having a text input field that is selected in the user interface displayed by presence-sensitive display 112.
[0037] When a text input field of an application gains focus, such as when the user interacts with presence-sensitive display 112 to select the text input field of the application, the application may send, to IMMS 162, a request to output a text input interface (e.g., an onscreen virtual keyboard). IMMS 162 may, in response, send a request to the IME to output a text input interface for the IME. The IME may, in response, output, for display at presencesensitive display 112, a text input interface. IMMS 162 may create a text input channel between the IME and the application to enable the user to interact with the text input interface displayed at presence-sensitive display 112 to input text and to enable the application to retrieve the inputted text from the IME.
[0038] Vehicles may incorporate larger displays, such that a single physical display may present two or more virtual displays (e.g., a single physical dashboard display for front passengers may include two or more virtual displays - one or more for the front driver or, in other words, operator occupant zone, and one or more virtual displays for a front passenger occupant zone). Further, vehicles may also incorporate more displays, such as supporting presence-sensitive displays 150A-150N (“supporting presence-sensitive displays 150,” which may also be referred to as “displays 150”) in a cabin of the vehicle which, like presencesensitive display 112, are also referred to as I / O display devices. As such, multiple users may access VOS 160 and interact with computing device 102 via multiple displays within the cabin.
[0039] However, a vehicle operating system and an input method management service that are designed to manage text input at a single display may not be able to manage text input at multiple displays. For example, an input method management service designed to manage text input at a single display may not be able to determine the specific display out of multiple displays at which a text input field of an application has gained focus. Thus, such an input method management service may not be able to request an IME output a text input interface at the specific display at which the text input field of the application has gained focus in order to enable text input into the text input field.
[0040] Further, different user profiles may have different associated IME settings. For example, a first user profile may be associated with a different default language for text input (e.g., French) than the default language for text input (e.g., English) associated with a second user profile. An input method management service designed to manage text input for a singleuser profile at a single display may not be able to apply such different IME settings to IMEs for multiple user profiles accessing the vehicle operating system via different displays.
[0041] In operation, computing device 102 may, as shown in the example of FIG. 1, interface with displays 150, which may be similar to if not substantially similar to presence-sensitive display 112. In some examples, one or more of displays 150 may than integrate into computing device 102 similar to presence-sensitive display 112. In some examples, rather than integrate into computing device 102 similar to presence-sensitive display 112, one or more of displays 150 may be communicatively coupled (via wire or wirelessly) to computing device 102 and integrated throughout the cabin of the vehicle or separate from the vehicle. That is, one or more displays 150 may also, in some instances, represent tablets, smartphones, laptops, portable gaming device, portable video devices, or any other device capable of interfacing with computing device 102 to present a user interface associated with VOS 160 (and / or applications 114 executing in an application space presented by VOS 160, which may be separate from a privileged kernel space in which VOS 160 executes to facilitate interactions between the applications and underlying hardware, such as components 112, and 140-148).
[0042] In accordance with various aspects of the techniques described in this disclosure, computing system 100 may implement a single instance of a vehicle operating system, such as VOS 160, that provides support for multiple users to separately access VOS 160 and to separately input text via multiple displays. For example, VOS 160 that provides support for multiple users to access VOS 160 and interact with computing device 102 via multiple displays may enable a first occupant of a vehicle to interact with presence-sensitive display 112 to input a destination address into a navigation application displayed at presencesensitive display 112 while concurrently enabling one or more other occupants of the vehicle to interact with one or more of supporting presence-sensitive displays 150 to input text to search a movie application displayed at one or more of supporting presence-sensitive displays 150 for a movie to watch.
[0043] VOS 160 and IMMS 162 may be designed to handle multiple users that may separately access VOS 160 and may separately input text via multiple displays. For example, when system-level services running on VOS 160 sends notifications or calls to methods to IMMS 162, such system-level services may include, in the notifications and / or method calls, an indication of a target display or an indication of a target user, so that IMMS 162 may route such notifications and or method calls to the appropriate I / O display device based on the indicated target display or target user. For example, such system-level services may includeaccessibility services, an input manager service, a notifier service, a status bar manager service, a window manager service, and the like.
[0044] Processors 140 may execute VOS 160 to enable multiple user profiles of UP 161 (also referred to as user accounts) to log into and interface with VOS 160 via multiple I / O display devices. A single user profile may log into VOS 160 at one or more I / O display devices, but no more than one user profile may be logged into VOS 160 at a single I / O display device at a time. To authorize multiple user profiles of UP 161 to access VOS 160, each of the users may register with VOS 160 by entering a username (associated with a given one of UP 161) and a password to log a corresponding user profile of UP 161 into VOS 160. Alternatively, VOS 160 may enable any other way by which to log a user profile into VOS 160, such as scanning a quick response (QR) code with a camera of a smartphone, entering a personal identification number (PIN), performing a biometric process (e.g., a fingerprint scan, a retina scan, etc.), facial recognition or any other way by which to log a given user profile of UP 161 into VOS 160. In this way, multiple user profiles may log into VOS 160 at multiple corresponding I / O display devices.
[0045] In some examples, when multiple user profiles are logged into VOS 160, one of the user profiles may be considered by VOS 160 to be a foreground user of VOS 160 and the other user profiles may each be considered by VOS 160 to be a visible background user of VOS 160. A visible background user may be a user for which VOS 160 may provide a user interface that is displayed by the I / O display device at which the user is logged into VOS 160, despite being a background user. For example, the user profile that is logged into VOS 160 at presence-sensitive display 112 may be considered a foreground user of VOS 160, while user profiles that are logged into VOS 160 at supporting presence-sensitive displays 150 may each be considered a visible background user.
[0046] After a user profile logs into VOS 160 at an I / O display device, one or more processors 140 may execute IMMS 162 to initiate an input method editor (IME) session for the user profile logged into the I / O display device. IME sessions that are shown in the example of FIG. 1 as input method editor (IME) sessions 164A-164N (“IME sessions 164”). for VOS 160.
[0047] An IME session for a user profile may be a semi-permanent interactive information interchange between IMMS 162 and an I / O display device at which the user profile accesses VOS 160. One or more processors 140 may execute IMMS 162 to start an IME session in response to a user profile logging into VOS 160 via an I / O display device and to end the IME session in response to the user profile logging out of VOS 160 via the I / O display device.IMMS 162 may associate the IME session with the user profile that is logged into the I / O display device and may map, bind, or otherwise associate the IME session with settings associated with the user profile, such as input method settings for the user profile. For example, if the user profile indicates an IME registered to the user profile (e.g., out of IMEs 166), IMMS 162 may set the IME registered to the user profile as the IME associated with IMMS 162. IMMS 162 may also apply the IME settings associated with the user profile (e.g., out of IME settings 168) to the IME associated with the IME session. As such, when one or more processors 140 execute the IME associated with the IME session, the IME may execute with the IME settings associated with the IME session. For example, the IME may execute using the default language indicated by the IME settings, the spellcheck settings indicated by the IME settings, the autofill settings associated with the IME settings, and the like.
[0048] As part of initiating an IME session for a user profile logged into VOS 106 at an VO display device, IMMS 162 may also associate the IME session with a set of per-user fields associated with the user profile and a set of per-IME session fields. The fields may include information that may be useful for the IME session, such as the current focused window, which is discussed later herein and IME adjustment settings for the IME registered to the user.
[0049] If multiple user profiles log into VOS 160 via multiple VO display devices, IMMS 162 may initiate, a corresponding IME session for each user profile and / or I / O display device. That is, IMMS 162 may initiate and concurrently maintain multiple IME sessions, meaning that IMMS 162 may maintain multiple IME sessions at the same time. IMMS 162 may, for each IME session for a corresponding user profile, set the IME registered to the corresponding profile as the IME associated with the IME session and may apply the IME settings associated with the corresponding user profile to the IME associated with the IME session. In this way, different IME sessions for different user profiles may each provide an associated IME having IME settings personalized for the user profile.
[0050] By concurrently maintaining multiple IME sessions associated with multiple VO display devices, IMMS 162 may enable multiple users to separately and concurrently input text at different VO display devices for input into multiple applications having user interfaces displayed at the multiple I / O devices. That is, IMMS 162 may initiate and maintain a first IME session to enable a first user to interact with a first IME (e.g., IME 166A) displayed at a first I / O display device (e.g., presence-sensitive display 112) to input the entered text into a first application (e.g., application 114A) having a user interface displayed at the first I / O display device while also initiating and maintaining a second IME session to enable, at thesame time, a second user to interact with a second IME (e.g., IME 166B) displayed at a second I / O display device (e.g., presence-sensitive display 150A) to input the entered text into a second application (e.g., application 114B) having a user interface displayed at the second I / O display device.
[0051] For example, a first user may log a first user profile (e.g., UP 161 A) of multiple UP 161 into VOS 160 at a first I / O display device (e.g., presence-sensitive display 112) and a second user may log a second user profile (e.g., UP 161B) of multiple UP 161 into VOS 160 at a second EO display device (e.g., supporting presence-sensitive display 150A). IMMS 162 may, in response to the first user profile logging into the first I / O display device, initiate a first IME session (e.g., IME session 164A) for the first UO display device. As described above, initiating the first IME session may include associating a first IME (e.g., IME 166 A) registered to the first user profile with the first IME session, applying first IME settings (e.g., IME settings 168 A) associated with the first user profile to the first IME, and the like.
[0052] While IMMS 162 maintains the first IME session, IMMS 162 may, in response to the second user profile logging into the second UO display device, initiate a second IME session (e.g., IME session 164B) for the second I / O display device. Similarly, as described above, initiating the second IME session may include associating a second IME (e.g., IME 166B) registered to the second user profile with the second IME session, applying second IME settings (e.g., IME settings 168B) associated with the user profile to the second IME, and the like.
[0053] Initiating the first IME session for the first I / O display device may enable a first IME (e.g., IME 166A) to output, for display at the first I / O display device, a first text input interface (e.g., a virtual keyboard) associated with the first IME that enables a first user to interact with the first text input interface to input text via the first text input interface.
[0054] Similarly, initiating the second IME session for the second I / O display device may enable a second IME (e.g., IME 166B) to output, for display at the second I / O display device, a second text input interface (e.g., a handwriting recognition interface) associated with the second IME that enables a second user to interact with the second text input interface to input text via the second text input interface. By being able to concurrently maintain multiple IME sessions, IMMS 162 may enable the first user to input text via the first text input interface while the second user inputs text via the second text input interface.
[0055] Users may provide input at first and second I / O display devices to interact with VOS 160 and applications 114 executing at one or more processors 140. For example, a first user may interact with first I / O display device to launch and interact with a first application (e.g.,application 114A) that is a movie viewer to select a movie to watch at first I / O display device. The first application may, for example, output a user interface, such as a window, for display at the first I / O display device. Similarly, a second user may interact with the second I / O display device to launch and interact with a second application (e.g., application 114B), and the second application may, for example, output a user interface, such as a window, for display at the second I / O display device. In some examples, the first and the second applications may be different applications, such as a movie viewer and a messaging application, or may be two separate instances of the same application (e.g., two instances of a movie viewer).
[0056] An IME session associated with a user profile may enable text input into a text field displayed by a I / O display device at which the user profile is logged into VOS 160, and may not enable text input into text fields displayed by other I / O display devices at which the user profile is not logged into VOS 160. For example, if a user profile is logged into a first I / O display device, the text input interface outputted by an IME associated with the IME session for display at the first I / O display device may enable text to be inputted via the text input interface into text fields of applications that are displayed by the first I / O display device. However, the text input interface outputted by the IME associated with the IME session for display at the first I / O display device cannot be used to input text into text fields of applications that are displayed by another I / O display device.
[0057] One or more processors 140 may execute IMMS 162 to, as part of maintaining IME sessions for user profiles logged into VOS 160 at multiple I / O display devices, track various interaction states of such user profiles during the IME sessions. For example, IMMS162 may track, and associate with each I / O display device and / or user profile for which IMMS 162 is maintaining an IME session, information such as, for each I / O display device, the currently focused window at the I / O display device, which may be the foreground window (e.g., of an application) displayed at the VO display device. Tracking the currently focused window at the I / O display device may be useful for IMMS 162 to determine the correct VO display device at which to display a text input interface for an IME in order to correctly route text inputted the text input interface to the text input field of an application.
[0058] One or more processors 140 may execute IMMS 162 to, for each of multiple IME sessions maintained by IMMS 162, continuously track the currently focused window displayed at the I / O display device associated with the IME session and to associate the currently focused window with the IME session. As discussed above, the I / O display device associated with the IME session may be the VO display device at which the user profileassociated with the IME session is logged into VOS 160. If IMMS 162 determines, for an IME session, that a new currently focused window displayed at the I / O display device associated with the IME session, IMMS 162 may associate the new currently focused window with the IME session as the currently focused window associated with the IME session. IMMS 162 may associate a window with an IME session as the currently focused window associated with the IME session by, for example, associating an identifier for the window with the IME session as the currently focused window.
[0059] The first and second users may interact with the first and second applications via the first and second I / O display devices, respectively. For example, the first user may select a search field of the first application, which may be a text input field, to input text to search for a specific movie to watch. Similarly, the second user may select a chat field of the second application, which may also be a text input field, to input a message to be sent to a friend.
[0060] Selecting a text input field may cause the text input field to gain focus the text input field becomes active and may be ready to receive text input. When a text input field of an application gains focus, meaning that the text input field is selected for providing text input into the text input field, the application may send, to IMMS 162, a request to output a text input interface (e.g., an on-screen virtual keyboard). The request may indicate the currently focused window containing the focused text input field, such as a window identifier or other form of identifier identifying the currently focused window. IMMS 162 may, in response to receiving the request, determine whether the currently focused window indicated by the request matches the currently focused window associated with an IME session out of the multiple IME sessions maintained by IMMS 162.
[0061] If IMMS 162 determines that the currently focused window indicated by the request matches the currently focused window associated with an IME session maintained by the IMMS 162, IMMS 162 may send a request to the IME registered with the IME session to output a text input interface associated with the IME for display at the I / O display device associated with the IME session. IMMS 162 may also create a text input channel between the IME and the application. The text input channel may enable IME to send text inputted via the text input interface associated with the IME to the application and / or for the application to retrieve and / or receive such text input from the IME. In this way, IMMS 162 enables a user to interact with a text input interface (e.g., an on-screen virtual keyboard) displayed at an I / O display device to input text into a text input field of a user interface of an application displayed at the same VO display device.
[0062] For example, the first user may interact with the user interface (e.g., a currentlyfocused window) of a first application displayed at the first I / O display device to select a text input field. In response, the first application may send, to IMMS 162, a request to output a text input interface that indicates the currently focused window containing the selected text input field. Because IMMS 162 has been tracking the currently focused window being displayed at the first and second I / O display devices as part of maintaining the first and second IME sessions, IMMS 162 may determine that the currently focused window indicated in the request is the currently focused window associated with the first IME session.
[0063] As such, IMMS 162 may send a request to the first IME registered with the first IME session to output a text input interface for display at the first I / O display device, which is associated with the first IME session. IMMS 162 may also create a text input channel between the first IME and the first application. In this way, the first user may provide user input at the first text user interface to input text, and the first application may receive, from the first IME, text input that corresponds to the user input provided at the first text input interface.
[0064] Similarly, the second user may interact with the user interface (e.g., the currently focused window) of a second application displayed at the second VO display device to select a text input field. In response, the second application may send, to IMMS 162, a request to output a text input interface that indicates the currently focused window containing the selected text input field. Because IMMS 162 has been tracking the currently focused window being displayed at the first and second I / O display devices as part of maintaining the first and second IME sessions, IMMS 162 may determine that the currently focused window indicated in the request is the currently focused window associated with the second IME session.
[0065] As such, IMMS 162 may send a request to the second IME registered with the second IME session to output a text input interface for display at the second I / O display device, which is associated with the second IME session. IMMS service 162 may also create a text input channel between the second IME and the second application. In this way, the second user may provide user input at the second text user interface to input text, and the second application may receive, from the second IME, text input that corresponds to the user input provided at the second text input interface.
[0066] By being able to maintain multiple IME sessions associated with different VO display devices, IMMS 162 may therefore enable the first user to interact with the first text input interface displayed at the first I / O display device to enter text into a text input field displayed at the first I / O display device while the second user interacts with the second text input interface displayed at the second I / O display device to enter text into a text input fielddisplayed at the second I / O display device. In this way, the techniques of this disclosure enable multiple occupants of a vehicle to interact with a single vehicle operating system via multiple I / O display devices.
[0067] For example, the techniques of this disclosure may enable rear seat passengers of a vehicle may interact with separate I / O display devices to select movies to watch, select music to listen to, or otherwise select content to consume, without having to rely on one person, which may sometimes be the driver of the vehicle, to interact with a main, console-mounted, I / O display device to select the content that these passengers are able to consume. Decreasing the need for the driver of a vehicle to interact with an I / O display device may decrease distractions for the driver, which may increase the safety of occupants of the vehicle.
[0068] FIG. 2 is a diagram illustrating an example of a vehicle that includes a computing system configured to execute a vehicle operating system that operates in accordance with various aspects of the single-instance multi-user techniques described in this disclosure. As shown in the example of FIG. 2, an interior (which may be referred to as a “cabin”) of vehicle 200 may include a computing system in the form of vehicle head unit 202, which represents an example of computing device 102.
[0069] Vehicle head unit 202 is, in the example of FIG. 2, integrated into approximately a center portion (e.g., a center console) of a front dashboard 220. Vehicle head unit 202 includes a display 212, which may represent one example of presence-sensitive display 112. Display 212 may be displaced in a front dashboard 220 of vehicle 200. Display 212 may represent a single physical display that supports presentation of multiple virtual displays 213A and 213B. Display 212 may present virtual display 213A in the driver occupant zone and virtual display 213B in a front passenger occupant zone.
[0070] Vehicle 200 may also include (in this example, physical) displays 250A and 250B, which may represent examples of displays 150 described above with respect to FIG. 1. Displays 250A and 250B are integrated into a rear passenger compartment of the cabin (i.e., in headrests of the front seats in the example of FIG. 2) on both the operator side (display 250A) and a passenger side (display 250B). Although described a physical displays 250A and 250B in the example of FIG. 2, displays 250A and / or 250B may represent virtual displays.
[0071] While shown as multiple physical displays 212 / 250, various aspects of the techniques may operate with respect to a single physical display (or multiple physical displays) having separate logically separated displays (or so-called virtual displays 213 A and / or 213B). That is, a single physical display 212 / 250 may be logically split (e.g., via software) to represent two distinct physical displays (from the perspective of the instance of VOS 160). In thisrespect, a single physical display may represent multiple different displays and displays 212 / 250 may each represent a logically separate virtual display.
[0072] For example, virtual displays 213A and 213B may represent, for the purposes of the techniques described in this disclosure, to be separate I / O display devices. VOS 160 may log a first user profile (of UP 161) into VOS 160 via virtual display 213A and may log a second user profile (of UP 161) into VOS 160 via virtual display 213B. IMMS 162 may therefore initiate a first IME session (of IME sessions 164) associated with virtual display 213 A. The first IME session may enable a first IME (of IMEs 166) to output, for display at virtual display 213 A, a text input interface with which a first user may interact to input text into a text field displayed at virtual display 213 A. Similarly, while IMMS 162 maintains the first IME session, IMMS 162 may initiate and maintain a second IME session (of IME sessions 164) associated with virtual display 213B. The second IME session may enable a second IME (of IMEs 166) to output, for display at virtual display 213B, a text input interface with which a second user may interact to input text into a text field displayed at virtual display 213B.
[0073] In another example, IMMS 162 may initiate a first IME session (of IME sessions 164) associated with display 250A. The first IME session may enable a first IME (of IMEs 166) to output, for display at display 250A, a text input interface with which a first user may interact to input text into a text field displayed at display 250A. Similarly, while IMMS 162 maintains the first IME session, IMMS 162 may initiate and maintain a second IME session (of IME sessions 164) associated with virtual display 213B. The second IME session may enable a second IME (of IMEs 166) to output, for display at virtual display 213B, a text input interface with which a second user may interact to input text into a text field displayed at virtual display 213B.
[0074] In some examples, VOS 160 may also determine an operating state of vehicle 200. The operating state of vehicle 200 may refer to various operating conditions in which VOS 160 may present various interfaces via displays 212 / 213 / 250. Such operating conditions may for example include a driving state, an idle state, a parked state, etc.
[0075] VOS 160 may, for certain displays, restrict the display from being used to enter text when vehicle 200 is in a driving state due to the safety concern of distracting the driver while the driver is operating vehicle 200. For example, VOS 160 may prevent a display that is positioned within the vehicle for use by the driver of the vehicle, such as virtual display 213 A that is within reach of the driver’s seat in the cabin of vehicle 200, from being used to enter text when vehicle 200 is in a driving state.
[0076] In this example, IMMS 162 may determine whether a request to output a text inputinterface for an IME, as received from an application, is a request to output the text input interface for display at virtual display 213 A. IMMS 162 may determine whether the request indicates a currently focused window that is displayed at virtual display 213 A. If IMMS 162 determines that the request indicates a currently focused window that is displayed at virtual display 213 A, IMMS 162 may, in response, refrain from sending a request to an IME to output a text input interface for display at virtual display 213 A. In this way, the techniques of this disclosure may also decrease distractions to the driver of vehicle 200 and may increase the safety of passengers of vehicle 200.
[0077] FIG. 3 illustrates example input / output display devices, in accordance with aspects of this disclosure. FIG. 3 is described with respect to FIG. 1 and FIG. 2.
[0078] As shown in FIG. 3, I / O display device 312 and VO display devices 350A and 350B may represent any combination of presence-sensitive display 112 of FIG. 1, supporting presence-sensitive displays 150A and 150B of FIG. 1, display 212 of FIG. 2, virtual displays 213 A and 213B of FIG. 2, and / or displays 250A and 250B of FIG. 2. Each of I / O display devices 312, 350A, and 350B may display corresponding graphical user interfaces 322A- 322C, respectively. For example, I / O display device 312 may display graphical user interface 322A associated with a first user profile (e.g., user profile 161 A) that is logged into VOS 160 via VO display device 312, I / O display device 350A may display graphical user interface 322B associated with a second user profile (e.g., user profile 161B) that is logged into VOS 160 via I / O display device 350A, and I / O display device 350B may display graphical user interface 322C associated with a second user profile (e.g., user profile 161C) that is logged into VOS 160 via VO display device 350B.
[0079] One or more processors 140 may execute IMMS 162 to initiate and concurrently maintain IME sessions associated with each of I / O display devices 312, 350A, and 350B, which may enable users to concurrently use VO display devices 312, 350A, and 350B to input text at text fields 326A-326C displayed at VO display devices 312, 350A, and 350B, respectively. For example, IMMS 162 may enable a first IME to output, for display at VO display device 312, text input interface 324A in the form of a virtual keyboard, with which a first user may interact to input text into text input field 326A. while the first user inputs text via VO display device 312, IMMS 162 may enable a second IME to output, for display at VO display device 350A, text input interface 324B in the form of a virtual keyboard, with which a second user may interact to input text into text input field 326B. Similarly, while the first user inputs text via I / O display device 312 and the second user inputs text via VO display device 350A, IMMS 162 may enable a third IME to output, for display at I / O display device350B, text input interface 324C in the form of a handwriting recognition interface, with which a third user may interact to input text into text input field 326C.
[0080] FIG. 4 is a timing diagram illustrating an example process performed by the vehicle operating system shown in FIG. 1 to enable multi-user and multi-display input. As shown in FIG. 4, a first user profile may log into I / O display device 450A, which is an example of any of presence-sensitive display 112 of FIG. 1 and supporting presence-sensitive displays 150A and 150B of FIG. 1. In response to the first user profile logging into VO display device 450A, a vehicle operating system, such as VOS 160 of FIG. 1, may register the first user profile and I / O display device 450A with IMMS 462, which is an example of IMMS 162 of FIG. 1 (470). IMMS 462 may, in response to registering the first user profile and I / O display device 450A, query for IMEs that are installed for the first user profile and may register IME 466A, which is an example of one of IMEs 166 of FIG. 1, as being installed for the first user profile, as part of initializing a first IME session associated with the first user profile and VO display device 450A (472).
[0081] A second user profile may log into I / O display device 450B, which is another example of any of presence-sensitive display 112 of FIG. 1 and supporting presence-sensitive displays 150A and 150B of FIG. 1. In response to the second user profile logging into I / O display device 450B, a vehicle operating system, such as VOS 160 of FIG. 1, may register the second user profile and VO display device 450B with IMMS 462(474). IMMS 462 may, in response to registering the second user profile and I / O display device 450B, query for IMEs that are installed for the second user profile and may register IME 466B, which is another example of one of IMEs 166 of FIG. 1, as being installed for the second user profile as part of initializing a second IME session associated with the second user profile and VO display device 450B (476).
[0082] When a window of a first application that is displayed at VO display device 450A becomes the currently focused window (e.g., foreground window), the first application may notify IMMS 462 that its window is the currently focused window at VO display device 450A (478). IMMS 462 may, in response to receiving the notification, attempt to bind the currently focused window of the first application to the first IME session associated with the first user profile and VO display device 450A and may return, to the first application, a result as to whether IMMS 462 successfully bound the currently focused window of the first application to the first IME session (480).
[0083] Similarly, when a window of a second application that is displayed at VO display device 450B becomes the currently focused window (e.g., foreground window), the secondapplication may notify IMMS 462 that its window is the currently focused window at I / O display device 450B (482). IMMS 462 may, in response to receiving the notification, attempt to bind the currently focused window of the second application to the second IME session associated with the second user profile and I / O display device 450B and may return, to the second application, a result as to whether IMMS 462 successfully bound the currently focused window of the second application to the second IME session (484).
[0084] When a text input field in the currently focused window of the first application displayed at I / O display device 450A gains focus, the first application may send, to IMMS 462, a request to output a text input interface (486). The request may indicate the currently focused window containing the focused text input field, such as a window identifier or other form of identifier identifying the currently focused window. IMMS 462 may, in response to receiving the request, determine that the currently focused window indicated in the request matches the currently focused window bound to the first IME session. IMMS 462 may therefore send a request to IME 466A registered with the first IME session to output a text input interface for display at I / O display device 450A (488). IME 466A may receive the request and may, in response, output a text input interface for display at VO display device 450A (490).
[0085] Similarly, when a text input field in the currently focused window of the second application displayed at VO display device 450B gains focus, the second application may send, to IMMS 462, a request to output a text input interface (491). The request may indicate the currently focused window containing the focused text input field, such as a window identifier or other form of identifier identifying the currently focused window. IMMS 462 may, in response to receiving the request, determine that the currently focused window indicated in the request matches the currently focused window bound to the second IME session. IMMS 462 may therefore send a request to IME 466B registered with the second IME session to output a text input interface for display at I / O display device 450B (492). IME 466B may receive the request and may, in response, output a text input interface for display at VO display device 450B (493).
[0086] When the currently focused window of the first application that was displayed at VO display device 450A loses focus, such as when the window is closed or otherwise no longer displayed at I / O display device 450A, the first application may send, to IMMS 462, a request to hide the text input interface being displayed at I / O display device 450A (494). IMMS 462 may, in response to receiving the request, send a request to IME 466A to cease outputting the text input interface for display at VO display device 450A (495).
[0087] Similarly, when the currently focused window of the second application that was displayed at I / O display device 450B loses focus, such as when the window is closed or otherwise no longer displayed at I / O display device 450B, the second application may send, to IMMS 462, a request to hide the text input interface being displayed at I / O display device 450B (496). IMMS 462 may, in response to receiving the request, send a request to IME 466B to cease outputting the text input interface for display at I / O display device 450B (497).
[0088] FIG. 5 is a flowchart illustrating example operation of a computing system in executing a vehicle operating system configured to perform various aspects of the techniques described in this disclosure. FIG. 5 is described with respect to FIG. 1.
[0089] As shown in FIG. 5, one or more processors 140 of computing device 102 may execute operating system 160 to initiate a first input method editor (IME) session 164 A for a first user profile 161 A at a first input / output (I / O) display device 150A communicably coupled to the one or more processors 140, including outputting, for display at the first I / O display device 150A, a first text input interface for a first IME 166A associated with the first IME session 164A (502). In some examples, one or more processors 140 may execute operating system 160 to initiate the first IME session 164 A in response to the first user profile 161A logging into the operating system 160 at the first I / O display device 150A.
[0090] In some examples, to output, for display at the first I / O display device 150A, the first text input interface for the first IME session 164 A, one or more processors 140 may execute operating system 160 to receive, from the first application 114 A, a first request to output a text input interface for display at the first I / O display device 150A, wherein the first request specifies a currently focused window of the first application 114 A. one or more processors 140 may execute operating system 160 to determine that the currently focused window of the first application 114A specified by the first request matches a currently focused window associated with the first IME session 164 A. One or more processors 140 may execute operating system 160 to, in response to determining that the currently focused window of the first application 114A specified by the first request matches a currently focused window associated with the first IME session 164 A out of currently focused windows associated with a plurality of IME sessions 164 A and 164B, send, to the first IME 166 A, a second request to output a text input interface for display at the first I / O display device 150A.
[0091] In some examples, to receive, from the first application 114 A, the first request to output a text input interface for display at the first I / O display device 150A, one or more processors 140 may execute the first application 114A to determine that a text input field in the currently focused window of the first application 114A has gained focus. One or moreprocessors 140 may execute the first application 114A to, in response to determining that the text input field in the currently focused window of the first application 114A has gained focus, send, to the operating system 160, the request to output a text input interface for display at the first I / O display device 150A.
[0092] In some examples, during the first IME session 164 A, one or more processors 140 may execute operating system 160 to determine that the first I / O display device 150A has a new currently focused window. One or more processors 140 may execute operating system 160 to, in response to determining that the first I / O display device 150A has the new currently focused window, associate the new currently focused window with the first IME session 164 A as the currently focused window associated with the first IME session 164 A.
[0093] While operating system 160 maintains the first IME session, one or more processors 140 may execute operating system 160 to initiate a second IME session 164B for a second user profile 16 IB at a second I / O display device 150B communicably coupled to the one or more processors 140, including outputting, for display at the second I / O display device 150B, a second text input interface for a second IME 166B associated with the second IME session 164B (504). In some examples, one or more processors 140 may execute operating system 160 to initiate the second IME session 164B in response to the second user profile 16 IB logging into the operating system 160 at the second I / O display device 150B.
[0094] One or more processors 140 may execute a first application 114A to receive, from the first IME 166A, the first application 114A having a first user interface displayed at the first I / O display device 150A, first text input that corresponds to first user input received at the first text input interface (506). One or more processors 140 may execute operating system 160 to establish a first text input channel between the first IME 166A and the first application 114 A. One or more processors 140 may therefore execute the first application to receive, from the first IME 166 A via the first text input channel, the first text input.
[0095] One or more processors 140 may execute a second application 114B to receive, from the second IME 166B, the second application 114B having a second user interface displayed at the second VO display device 150B, second text input that corresponds to second user input received at the second text input interface (508). One or more processors 140 may execute operating system 160 to establish a second text input channel between the second IME 166B and the second application 114B. One or more processors 140 may therefore execute the second application 114B to receive, from the second IME 166B via the second text input channel, the second text input.
[0096] In some examples, to initiate the first IME session 164 A, one or more processors 140 may execute operating system 160 to apply first IME settings 168 A associated with the first user profile 161 A to the first IME 166 A. In some examples, to initiate the second IME session 164B, one or more processors 140 may execute operating system 160 to apply second IME settings 168B associated with the second user profile 16 IB to the second IME 166B. The first input method editor settings 168 A and the second input method editor settings 168B may each include one or more of a default text input language, spellcheck settings, or text autofill settings.
[0097] In some examples, at least one of the first I / O display device 150A and the second I / O display device 150B is a presence-sensitive display device. In some examples, at least one of the first text input interface and the second text input interface is a virtual keyboard.
[0098] In some examples, the computing device 102 is a vehicle head unit in a vehicle. In some examples, the first VO display device 150A is positioned within the vehicle for use by a driver of the vehicle. In some examples, to output, for display at the first I / O display device 150A, the first text input interface for the first IME 166A associated with the first IME session 164 A, one or more processors 140 may execute operating system 160 to determine that the vehicle is not in a driving state. One or more processors 140 may execute operating system 160 to, in response to determining that the vehicle is not in the driving state, output, for display at the first I / O display device 150A, the first text input interface for the first IME 166A associated with the first IME session 164.
[0099] The above described techniques may enable the following examples:
[0100] Example 1. A method comprising: initiating, by an operating system executing at one or more processors of a computing device, a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the one or more processors, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; while maintaining the first IME session, initiating, by the operating system executing at the one or more processors, a second IME session for a second user profile at a second I / O display device communicably coupled to the one or more processors, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receiving, by a first application executing at the one or more processors and from the first IME, the first application having a first user interface displayed at the first I / O display device, first text input that corresponds to first user input received at the first text input interface; and receiving, by a second application executing at the one or moreprocessors and from the second IME, the second application having a second user interface displayed at the second I / O display device, second text input that corresponds to second user input received at the second text input interface.
[0101] Example 2. The method of example 1, wherein outputting, for display at the first I / O display device, the first text input interface for the first IME session further comprises: receiving, by the operating system executing at the one or more processors and from the first application, a first request to output a text input interface for display at the first I / O display device, wherein the first request specifies a currently focused window of the first application; determining, by the operating system executing at the one or more processors, that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session; in response to determining that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session out of currently focused windows associated with a plurality of IME sessions, sending, by the operating system executing at the one or more processors to the first IME, a second request to output a text input interface for display at the first I / O display device.
[0102] Example 3. The method of example 2, wherein receiving, by the operating system and from the first application, the first request to output a text input interface for display at the first I / O display device further comprises: determining, by the first application executing at the one or more processors, that a text input field in the currently focused window of the first application has gained focus; and in response to determining that the text input field in the currently focused window of the first application has gained focus, sending, by the first application executing at the one or more processors and to the operating system, the first request to output a text input interface for display at the first I / O display device.
[0103] Example 4. The method of any of examples 2 and 3, further comprising: during the first IME session, determining, by the operating system executing at the one or more processors, that the first I / O display device has a new currently focused window; and in response to determining that the first I / O display device has the new currently focused window, associating, by the operating system executing at the one or more processors the new currently focused window with the first IME session as the currently focused window associated with the first IME session.
[0104] Example 5. The method of any of examples 1-4, wherein receiving, by the first application and from the first IME, the first text input comprises: establishing, by the operating system executing at the one or more processors, a first text input channel betweenthe first IME and the first application, and receiving, by the first application and from the first IME via the first text input channel, the first text input; and wherein receiving, by the second application and from the second IME, the second text input comprises: establishing, by the operating system executing at the one or more processors, a second text input channel between the second IME and the second application, and receiving, by the second application and from the second IME via the second text input channel, the second text input.
[0105] Example 6. The method of any of examples 1-5 wherein initiating the first IME session comprises in response to the first user profile logging into the operating system at the first I / O display device, initiating, by the operating system executing at the one or more processors, the first IME session; and wherein initiating the second input IME session comprises in response to the second user profile logging into the operating system at the second I / O display device, initiating, by the operating system executing at the one or more processors, the second IME session.
[0106] Example 7. The method of example 6, wherein initiating the first IME session further comprises applying, by the operating system executing at the one or more processors, first IME settings associated with the first user profile to the first IME; wherein initiating the second IME session further comprises applying, by the operating system executing at the one or more processors, second IME settings associated with the second user profile to the second IME; and wherein the first IME settings and the second IME settings each comprise one or more of a default text input language, spellcheck settings, or text autofill settings.
[0107] Example 8. The method of any of examples 1-7, wherein at least one of the first VO display device and the second VO display device is a presence-sensitive display device.
[0108] Example 9. The method of any of examples 1-8, wherein at least one of the first text input interface and the second text input interface is a virtual keyboard.
[0109] Example 10. The method of any of examples 1-9, wherein the computing device is a vehicle head unit in a vehicle.
[0110] Example 11. The method of example 10, wherein the first I / O display device is positioned within the vehicle for use by a driver of the vehicle, and wherein outputting, for display at the first I / O display device, the first text input interface for the first IME associated with the first IME session further comprises: determining, by the operating system executing at the one or more processors, that the vehicle is not in a driving state; and in response to determining that the vehicle is not in the driving state, outputting, by the one or more processors for display at the first VO display device, the first text input interface for the first IME associated with the first IME session.
[0111] Example 12. A computing device comprising: a memory configured to store an operating system; and processing circuitry configured to execute the operating system to: initiate a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the processing circuitry, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate a second IME session for a second user profile at a second I / O display device communicably coupled to the processing circuitry, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; wherein the processing circuitry is further configured to execute a first application having a first user interface displayed at the first VO display device to receive, from the first IME, first text input that corresponds to first user input received at the first text input interface; and wherein the processing circuitry is further configured to execute a second application having a second user interface displayed at the second I / O display device to receive, from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0112] Example 13. The computing device of example 12, wherein to output, for display at the first VO display device, the first text input interface for the first IME session, the processing circuitry are further configured to execute the operating system to: receive, from the first application, a first request to output a text input interface for display at the first I / O display device, wherein the first request specifies a currently focused window of the first application; determine that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session; in response to determining that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session out of currently focused windows associated with a plurality of IME sessions, send, to the first IME, a second request to output a text input interface for display at the first VO display device.
[0113] Example 14. The computing device of example 13, wherein to receive, from the first application, the first request to output a text input interface for display at the first VO display device, the processing circuitry is further configured to execute the first application to: determine that a text input field in the currently focused window of the first application has gained focus; and in response to determining that the text input field in the currently focusedwindow of the first application has gained focus, send, to the operating system, the first request to output a text input interface for display at the first I / O display device.
[0114] Example 15. The computing device of any of examples 13 and 14, wherein the processing circuitry is further configured to execute the operating system to: during the first IME session, determine that the first I / O display device has a new currently focused window; and in response to determining that the first I / O display device has the new currently focused window, associate the new currently focused window with the first IME session as the currently focused window associated with the first IME session.
[0115] Example 16. The computing device of any of examples 12-15, wherein to receive the first text input, the processing circuitry is configured to execute the operating system to establish a first text input channel between the first IME and the first application and to execute the first application to receive, from the first IME via the first text input channel, the first text input; and wherein to receive the second text input, the processing circuitry is configured to execute the operating system to establish a second text input channel between the second IME and the second application and to execute the second application to receive, from the second IME via the second text input channel, the second text input.
[0116] Example 17. The computing device of any of examples 12-16 wherein to initiate the first IME session, the processing circuitry is further configured to execute the operating system to, in response to the first user profile logging into the operating system at the first I / O display device, initiate the first IME session; and wherein to initiate the second input IME session, the processing circuitry is further configured to execute the operating system to, in response to the second user profile logging into the operating system at the second I / O display device, initiate the second IME session.
[0117] Example 18. The computing device of example 17, wherein to initiate the first IME session, the processing circuitry is further configured to execute the operating system to apply first IME settings associated with the first user profile to the first IME; wherein to initiate the second IME session, the processing circuitry is further configured to execute the operating system to apply second IME settings associated with the second user profile to the second IME; and wherein the first IME settings and the second IME settings each comprise one or more of: a default text input language, spellcheck settings, or text autofill settings.
[0118] Example 19. The computing device of any of examples 12-18, wherein at least one of the first VO display device and the second I / O display device is a presence-sensitive display device, and wherein at least one of the first text input interface and the second text input interface is a virtual keyboard.
[0119] Example 20. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to: initiate, by an operating system, a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the one or more processors, including outputting, for display at the first VO display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate, by the operating system, a second IME session for a second user profile at a second I / O display device communicably coupled to the one or more processors, including outputting, for display at the second VO display device, a second text input interface for a second IME associated with the second IME session; receive, by a first application having a first user interface displayed at the first I / O display device and from the first IME, first text input that corresponds to first user input received at the first text input interface; and receive, by a second application having a second user interface displayed at the second VO display device and from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0120] Example 21. The non-transitory computer-readable storage medium of example 20, wherein the instructions that cause the one or more processors to output, for display at the first I / O display device, the first text input interface for the first IME session further cause the one or more processors to: receive, by the operating system executing at the one or more processors and from the first application, a first request to output a text input interface for display at the first I / O display device, wherein the first request specifies a currently focused window of the first application; determine, by the operating system executing at the one or more processors, that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session; in response to determining that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session out of currently focused windows associated with a plurality of IME sessions, send, by the operating system executing at the one or more processors to the first IME, a second request to output a text input interface for display at the first I / O display device.
[0121] Example 22. The non-transitory computer-readable storage medium of example 21, wherein the instructions that cause the one or more processors to receive, by the operating system and from the first application, the first request to output a text input interface for display at the first I / O display device further cause the one or more processors to: determine, by the first application executing at the one or more processors, that a text input field in thecurrently focused window of the first application has gained focus; and in response to determining that the text input field in the currently focused window of the first application has gained focus, send, by the first application executing at the one or more processors and to the operating system, the first request to output a text input interface for display at the first I / O display device.
[0122] Example 23. The non-transitory computer-readable storage medium of any of examples 21 and 22, wherein the instructions further cause the one or more processors to: during the first IME session, determine, by the operating system executing at the one or more processors, that the first I / O display device has a new currently focused window; and in response to determining that the first I / O display device has the new currently focused window, associate, by the operating system executing at the one or more processors the new currently focused window with the first IME session as the currently focused window associated with the first IME session.
[0123] Example 24. The non-transitory computer-readable storage medium of any of examples 20-23, wherein the instructions that cause the one or more processors to receive, by the first application and from the first IME, the first text input further cause the one or more processors to: establish, by the operating system executing at the one or more processors, a first text input channel between the first IME and the first application, and receive, by the first application and from the first IME via the first text input channel, the first text input; and wherein receiving, by the second application and from the second IME, the second text input comprises: establishing, by the operating system executing at the one or more processors, a second text input channel between the second IME and the second application, and receiving, by the second application and from the second IME via the second text input channel, the second text input.
[0124] Example 25. The non-transitory computer-readable storage medium of any of examples 20-24 wherein the instructions that cause the one or more processors to initiate the first IME session further cause the one or more processors to: in response to the first user profile logging into the operating system at the first I / O display device, initiate, by the operating system executing at the one or more processors, the first IME session; and wherein initiating the second input IME session comprises in response to the second user profile logging into the operating system at the second VO display device, initiating, by the operating system executing at the one or more processors, the second IME session.
[0125] Example 26. The non-transitory computer-readable storage medium of example 25, wherein the instructions that cause the one or more processors to initiate the first IME sessionfurther cause the one or more processors to: apply, by the operating system executing at the one or more processors, first IME settings associated with the first user profile to the first IME; wherein initiating the second IME session further comprises applying, by the operating system executing at the one or more processors, second IME settings associated with the second user profile to the second IME; and wherein the first IME settings and the second IME settings each comprise one or more of: a default text input language, spellcheck settings, or text autofill settings.
[0126] Example 27. The non-transitory computer-readable storage medium of any of examples 20-26, wherein at least one of the first VO display device and the second VO display device is a presence-sensitive display device.
[0127] Example 28. The non-transitory computer-readable storage medium of any of examples 20-27, wherein at least one of the first text input interface and the second text input interface is a virtual keyboard.
[0128] Example 29. The non-transitory computer-readable storage medium of any of examples 20-28, wherein the computing device is a vehicle head unit in a vehicle.
[0129] Example 30. The non-transitory computer-readable storage medium of example 29, wherein the first I / O display device is positioned within the vehicle for use by a driver of the vehicle, and wherein the instructions that cause the one or more processors to output, for display at the first I / O display device, the first text input interface for the first IME associated with the first IME session further cause the one or more processors to: determine, by the operating system executing at the one or more processors, that the vehicle is not in a driving state; and in response to determining that the vehicle is not in the driving state, outputting, by the one or more processors for display at the first I / O display device, the first text input interface for the first IME associated with the first IME session.
[0130] Example 31. A computer program product comprising instructions that, when executed, cause one or more processors to: initiate, by an operating system, a first input method editor (IME) session for a first user profile at a first input / output (I / O) display device communicably coupled to the one or more processors, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate, by the operating system, a second IME session for a second user profile at a second VO display device communicably coupled to the one or more processors, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receive, by a first application having a first user interface displayed at the firstI / O display device and from the first IME, first text input that corresponds to first user input received at the first text input interface; and receive, by a second application having a second user interface displayed at the second I / O display device and from the second IME, second text input that corresponds to second user input received at the second text input interface.
[0131] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over, as one or more instructions or code, a computer- readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another, e.g., according to a communication protocol. In this manner, computer-readable media generally may correspond to (1) tangible computer-readable storage media, which is non-transitory or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and / or data structures for implementation of the techniques described in this disclosure. A computer program product may include a computer-readable medium.
[0132] By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to non-transient, tangible storage media. Disk and disc, as used, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, ultra Blu-ray, etc. where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope of computer-readable media.
[0133] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described. In addition, in some aspects, the functionality described may be provided within dedicated hardware and / or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.
[0134] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and / or firmware.
[0135] Various examples have been described. These and other examples are within the scope of the following claims.
Claims
WHAT IS CLAIMED IS:
1. A method comprising: initiating, by an operating system executing at one or more processors of a computing device, a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the one or more processors, including outputting, for display at the first VO display device, a first text input interface for a first IME associated with the first IME session; while maintaining the first IME session, initiating, by the operating system executing at the one or more processors, a second IME session for a second user profile at a second VO display device communicably coupled to the one or more processors, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receiving, by a first application executing at the one or more processors and from the first IME, the first application having a first user interface displayed at the first VO display device, first text input that corresponds to first user input received at the first text input interface; and receiving, by a second application executing at the one or more processors and from the second IME, the second application having a second user interface displayed at the second I / O display device, second text input that corresponds to second user input received at the second text input interface.
2. The method of claim 1, wherein outputting, for display at the first VO display device, the first text input interface for the first IME session further comprises: receiving, by the operating system executing at the one or more processors and from the first application, a first request to output a text input interface for display at the first I / O display device, wherein the first request specifies a currently focused window of the first application; determining, by the operating system executing at the one or more processors, that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session; and in response to determining that the currently focused window of the first application specified by the first request matches a currently focused window associated with the first IME session out of currently focused windows associated with a plurality of IME sessions,sending, by the operating system executing at the one or more processors to the first IME, a second request to output a text input interface for display at the first I / O display device.
3. The method of claim 2, wherein receiving, by the operating system and from the first application, the first request to output a text input interface for display at the first I / O display device further comprises: determining, by the first application executing at the one or more processors, that a text input field in the currently focused window of the first application has gained focus; and in response to determining that the text input field in the currently focused window of the first application has gained focus, sending, by the first application executing at the one or more processors and to the operating system, the first request to output a text input interface for display at the first I / O display device.
4. The method of any of claims 2 and 3, further comprising: during the first IME session, determining, by the operating system executing at the one or more processors, that the first I / O display device has a new currently focused window; and in response to determining that the first VO display device has the new currently focused window, associating, by the operating system executing at the one or more processors the new currently focused window with the first IME session as the currently focused window associated with the first IME session.
5. The method of any of claims 1-4, wherein receiving, by the first application and from the first IME, the first text input comprises: establishing, by the operating system executing at the one or more processors, a first text input channel between the first IME and the first application, and receiving, by the first application and from the first IME via the first text input channel, the first text input; and wherein receiving, by the second application and from the second IME, the second text input comprises: establishing, by the operating system executing at the one or more processors, a second text input channel between the second IME and the second application, andreceiving, by the second application and from the second IME via the second text input channel, the second text input.
6. The method of any of claims 1-5 wherein initiating the first IME session comprises in response to the first user profile logging into the operating system at the first I / O display device, initiating, by the operating system executing at the one or more processors, the first IME session; and wherein initiating the second IME session comprises in response to the second user profile logging into the operating system at the second I / O display device, initiating, by the operating system executing at the one or more processors, the second IME session.
7. The method of claim 6, wherein initiating the first IME session further comprises applying, by the operating system executing at the one or more processors, first IME settings associated with the first user profile to the first IME; wherein initiating the second IME session further comprises applying, by the operating system executing at the one or more processors, second IME settings associated with the second user profile to the second IME; and wherein the first IME settings and the second IME settings each comprise one or more of: a default text input language, spellcheck settings, or text autofill settings.
8. The method of any of claims 1-7, wherein at least one of the first I / O display device and the second I / O display device is a presence-sensitive display device.
9. The method of any of claims 1-8, wherein at least one of the first text input interface and the second text input interface is a virtual keyboard.
10. The method of any of claims 1-9, wherein the computing device is a vehicle head unit in a vehicle.
11. The method of claim 10, wherein the first VO display device is positioned within the vehicle for use by a driver of the vehicle, and wherein outputting, for display at the first I / Odisplay device, the first text input interface for the first IME associated with the first IME session further comprises: determining, by the operating system executing at the one or more processors, that the vehicle is not in a driving state; and in response to determining that the vehicle is not in the driving state, outputting, by the one or more processors for display at the first I / O display device, the first text input interface for the first IME associated with the first IME session.
12. A computing device comprising: a memory configured to store an operating system; and processing circuitry configured to execute the operating system to: initiate a first input method editor (IME) session for a first user profile at a first input / output (I / O) display device communicably coupled to the processing circuitry, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate a second IME session for a second user profile at a second I / O display device communicably coupled to the processing circuitry, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; wherein the processing circuitry is further configured to execute a first application having a first user interface displayed at the first I / O display device to receive, from the first IME, first text input that corresponds to first user input received at the first text input interface; and wherein the processing circuitry is further configured to execute a second application having a second user interface displayed at the second I / O display device to receive, from the second IME, second text input that corresponds to second user input received at the second text input interface.
13. The computing device of claim 12, comprising means for performing any of the methods of claims 2-11.
14. A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause one or more processors to:initiate, by an operating system, a first input method editor (IME) session for a first user profile at a first input / output (VO) display device communicably coupled to the one or more processors, including outputting, for display at the first I / O display device, a first text input interface for a first IME associated with the first IME session; and while maintaining the first IME session, initiate, by the operating system, a second IME session for a second user profile at a second I / O display device communicably coupled to the one or more processors, including outputting, for display at the second I / O display device, a second text input interface for a second IME associated with the second IME session; receive, by a first application having a first user interface displayed at the first I / O display device and from the first IME, first text input that corresponds to first user input received at the first text input interface; and receive, by a second application having a second user interface displayed at the second I / O display device and from the second IME, second text input that corresponds to second user input received at the second text input interface.
15. The non-transitory computer-readable storage medium of claim 14, wherein the instructions further cause the one or more processors to perform any of the methods of claims 2-11.
Citation Information
Patent Citations
Multi-user multi-screen display method and device based on android
CN111240618A
Input method editor user profiles
US20100217795A1
Multi-user experience restrictions for vehicle operating systems
WO2024039994A1