Providing remote keyboard services

By providing remote keyboard services on computing devices, the problem of lack of keyboards in the input mechanism of streaming media devices is solved, and the function of providing text input to streaming media devices without unlocking the device or calling applications is realized, simplifying the user input process.

CN119828950APending Publication Date: 2025-04-15APPLE INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411896928.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2016-09-21
Filing Date
2017-05-22
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

The input mechanism of streaming media devices usually lacks a keyboard, which causes users to search and select individual characters when entering text, which is cumbersome.

Method used

A system is provided that allows a separate computing device to provide remote keyboard services to media devices without calling an application or unlocking the device. The system presents a virtual keyboard notification to the user by receiving a text input field selection message on other devices, and receives keyboard input from the user, and sends it to other devices.

Benefits of technology

Users can provide text input to streaming media devices through a virtual keyboard without unlocking the device or calling the application, simplifying the input process and improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119828950A_ABST
    Figure CN119828950A_ABST
Patent Text Reader

Abstract

The invention relates to providing remote keyboard services. The systems described herein provide remote keyboard services for media devices on a computing device without having to invoke an application or unlock the computing device. The computing device may receive a message indicating that a text input field on the other device is selected, and present a notification to the user that prompts the user to invoke the virtual keyboard on the computing device to provide text input to the selected text input field. The computing device may receive user input selecting the notification and present a virtual keyboard for providing text input to the other devices. The computing device may receive a keyboard input from the user selecting a character and send the character to the other device. The other device may then use the character as a text input to the selected text input field.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of invention patent application No. 201780035030.8, filed on May 22, 2017, and entitled “Providing remote keyboard services”. Technical Field

[0002] The present disclosure generally relates to coordinating services between different devices. Background Art

[0003] Streaming media devices are becoming increasingly popular. Streaming media devices allow users to browse, search, and watch media content on demand. However, the input mechanism for these streaming media devices is often a simple remote control without a keyboard that requires the user to search for and select individual text characters when entering a search query into a text input control (e.g., a text input box). Therefore, the process of providing text input to these streaming media devices can be cumbersome for users.

[0004] Some streaming devices have corresponding applications that allow a user to provide text input using a virtual keyboard on the user's handheld device (e.g., a smart phone, tablet, etc.). However, the user must first install and invoke the application before being able to provide text input to the streaming device using the virtual keyboard. Summary of the invention

[0005] The system described herein provides remote keyboard services for media devices on separate computing devices without having to call an application or unlock the computing device. The computing device can receive a message indicating that a text input field on another device has been selected, and present a notification to the user prompting the user to call a virtual keyboard on the computing device to provide text input to the selected text input field. The computing device can receive user input for selecting a notification and present a virtual keyboard for providing text input to other devices. The computing device can receive keyboard input from a user selecting characters and send these characters to other devices. The other devices can then use these characters as text input to the selected text input field.

[0006] Certain specific implementations provide at least the following advantages. A user device can provide a remote virtual keyboard without invoking a specific application. A remote virtual keyboard can be provided even when the user's device is locked. Since the keyboard need is advertised to all user devices, the user can select the user device that is most convenient for the user.

[0007] The details of one or more specific implementations are set forth in the following drawings and detailed description. Other features, aspects, and potential advantages will be apparent in the detailed description and drawings, and in the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1 is a block diagram of an example system 100 for providing remote keyboard services on a user device.

[0009] Figure 2 An example graphical user interface for presenting a remote keyboard notification on a user device is shown.

[0010] Figure 3 An example graphical user interface for presenting a virtual keyboard on a user device is shown.

[0011] Figure 4 An example graphical user interface for presenting a virtual keyboard on a user device is shown.

[0012] Figure 5 is a flow chart of an example process for providing remote keyboard services on a user device.

[0013] Figure 6 is a flow chart of an example process for requesting remote keyboard services from a user device.

[0014] Figure 7 It is possible to implement Figures 1 to 6 A block diagram of an example computing device that illustrates features and processes.

[0015] Like reference symbols in the various drawings indicate like elements. DETAILED DESCRIPTION

[0016] Overview

[0017] The following discloses examples of methods, apparatus, and computer programs for providing remote keyboard services on user equipment. In the following description, for the purpose of providing explanation, many specific details are set forth in order to provide a thorough understanding of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details or with equivalent arrangements. In other examples, well-known structures and devices are shown in the form of block diagrams in order to avoid unnecessarily obscuring embodiments of the present invention.

[0018] Figure 1 1 is a block diagram of an example system 100 for providing remote keyboard services on a user device. In some implementations, the system 100 may include a user device 102 (e.g., 102a, 102b, ... 102n). For example, the user device 102a may be a computing device such as a smartphone, a tablet, a television, a desktop computer, a laptop computer, a home device, an e-book device, a gaming device, a smart watch, smart glasses, and / or other mobile or wearable devices, accessories and peripherals of these devices, or any combination thereof.

[0019] In some implementations, user devices 102 (e.g., user devices 102a, 102b, ..., 102n) may be configured with a corresponding operating system 104 that provides various services and features. For example, the operating system 104 may be configured to receive and decode status advertisement messages (e.g., Bluetooth packets, Bluetooth LE packets, etc.) from different devices within a close range of the user device 102. The status advertisement messages may include information describing the current status of the other devices, including the availability of different services, data required to coordinate processing between different devices, and / or requests for information and / or services from other devices. For example, user device 102a may receive status advertisement messages from user devices 102b and / or 102n that describe the current status of these devices.

[0020] In some implementations, the user device 102 may receive status advertisement messages from the media device 106. For example, the media device 106 may be a computing device, such as a streaming media player, a set-top box, a smart TV, a laptop computer, or other computing device. A user of the user device 102 may interact with the media device 106 to browse and search for media items to be played and / or other content to be viewed. For example, the media device 106 may present a graphical user interface on a display (e.g., a television, a computer monitor, etc.) connected to the media device 106 to allow the user to browse, search, and select media items (e.g., movies, websites, images, photos, etc.) of the media device 106 to be presented on the display of the media device 106.

[0021] In some implementations, the media device 106 may require text input from the user. For example, the media device 106 may require text input from the user when searching for media items. When logging into a subscription service that requires the user's login credentials, the media device 106 may require text input from the user. Sometimes, the operating system 108 of the media device 106 will require some text input. For example, the media device 106 can present prompts and text input controls on the display of the media device 106 for receiving network configuration input, login credentials, etc. Sometimes, an application 110 (e.g., a media content provider software application, a video application, a music application, a game application, a weather application, etc.) will present prompts and text input controls for receiving text input from the user. For example, the application 110 can provide a media item search feature that allows the user to enter text that defines the search query.

[0022] In some implementations, the user may provide text input using the remote control device 120. For example, the media device 106 may have been sold or worked with a remote control device 120 that has several directional buttons and selection buttons to move a cursor on the media device 106 and select items on the display. Sometimes the remote control device 120 may have a touch interface and the remote control device 120 may receive touch input gestures (e.g., swipe up, swipe down, swipe left, swipe right, tap, etc.) to move a cursor on the media device 106 and select items on the display. When using the remote control device 120 to provide text input to the media device 106, the user must typically use the remote control device 120 to move the cursor over an array of characters presented on a graphical user interface and select one character at a time until a suitable string is constructed. If the user must repeatedly perform the key input process to find the media item that the user wants the media device 106 to play, the process may be slow and cumbersome for the user and often leads to user frustration.

[0023] In order to solve the above problem by inputting text using the remote control device 120, the user device 102 may be configured with a remote control application 104 (e.g., 104a, 104b) for remote interaction with the media device 106. For example, the remote control application may control the media device 106 via a network 112. The network 112 may be, for example, a local area network, a wide area network, a local Wi-Fi network, an ad hoc peer-to-peer network, etc. The network 112 may be implemented using Internet Protocol, Bluetooth, Bluetooth Low Energy, or any other network protocol.

[0024] In some implementations, the remote control application 104 can be configured to provide functionality similar to the remote control device 120. For example, the remote control application 104 can present a directional control for moving a cursor and a selection control for selecting an item presented by the media device 106 on the display of the user device 102. However, the remote control application 104 can also provide the user with a virtual keyboard that can be used to provide text input to the media device 106. For example, the virtual keyboard can be presented by the remote control application 104a on the touch-sensitive display of the user device 102a, and the user can type on the virtual keyboard to select characters and create a string corresponding to the desired text input. The user device 102a can then send the text input to the media device 106 via the network 112. The media device 105 can then use the text input to perform a search, configure the operating system 108, configure the application 110, or for any other purpose.

[0025] While providing text input to a virtual keyboard provided by the remote control application 104 is an improvement over entering text using the remote control device 120, the user still has to worry about unlocking the user device 102a and invoking the remote control application 104a before being able to access and use the virtual keyboard to provide text input to the media device 106. Therefore, in some implementations, the operating system 104a of the user device 102a can provide a virtual keyboard service for providing text input to the media device 106. For example, the user device 102a can provide the virtual keyboard service without unlocking the user device 102a. The user device 102a can provide the virtual keyboard service without invoking the remote control application 104a.

[0026] In some implementations, the media device 106 can broadcast a remote keyboard service request to connect to a remote keyboard service provided by the user device 102. For example, the remote keyboard service request can be (e.g., is part of) a device status advertisement message indicating that a text input control has been selected on the media device 106. For example, when a user interacts with the media device 106 (e.g., using the remote control device 120) and selects a text input field, the media device 106 can generate a status advertisement message indicating that the text input field has been selected. For example, if the application 110 presents a media item search graphical user interface, the user can select a text input control on the graphical user interface so that the user can provide a search query. In response to selecting the text input control, the application 110 can call an application programming interface (API) of the operating system 108 to request keyboard support to provide input to the selected text input control.

[0027] If the operating system 108 presents a configuration graphical user interface that requires text input, the user may select a text input control on the graphical user interface so that the user may provide an appropriate configuration string (e.g., a network identifier, account credentials, etc.). In response to selecting the text input control, the operating system 108 may call an API of the operating system 108 to request keyboard support to provide input to the selected text input control. When the keyboard support API is called, the operating system 108 may generate a status advertisement message that includes data indicating that a text input control has been selected on the media device 106. For example, the status advertisement message may include an identifier of the media device 106, an identifier of the application 110, data indicating that the text input control has been selected (e.g., true / false), data describing the text input control or text input provided by the user and / or text input that the user has provided to the media device 106. The status advertisement message data may be encoded into the status advertisement message and decoded from the status advertisement message using a status advertisement message scheme, as described in U.S. patent application serial number 15 / 179,676, the disclosure of which is incorporated herein by reference in its entirety.

[0028] In some specific implementations, the media device 106 may broadcast the generated status advertisement message. For example, the media device 106 may broadcast the generated status advertisement message using wireless (e.g., peer-to-peer) technology, such as Bluetooth, Bluetooth low energy, peer-to-peer Wi-Fi, or some other wireless technology. For example, the status advertisement message may be broadcast without selecting a specific receiving device. For example, any user device (e.g., user device 102) within the range of the wireless signal transmitted by the media device 106 may receive and / or process the advertisement message generated by the media device 106. Alternatively, only user devices associated with the same user account (e.g., subscriber account, cloud service account, etc.) as the sending device can receive and decode the message from the sending device. Alternatively, the sending and / or receiving devices do not have to be associated with the same user and / or the same user account. For example, both the user device 102 and the media device 106 may be associated with different user accounts or no user account. The user device 102 and the media device 106 may be different types of computing devices from different manufacturers, with different configurations and / or different operating systems.

[0029] In some specific implementations, the user device 102 may receive the broadcasted status advertisement message. For example, the user device 102 (e.g., user device 102a, user device 102b, ... user device 102n) within the broadcast range of the media device 106 may receive the status advertisement message. In response to receiving the status advertisement message, the user device 102 may determine that the text input control on the media device 106 is the currently selected control based on the status data in the status advertisement message. When the user device 102 determines that the text input control is selected on the media device 106, the operating system 104 on the user device 102 will present a graphical notification on the corresponding device prompting the user to invoke the virtual keyboard. For example, if the user has a user device 102a (e.g., a smart phone), a user device 102b (e.g., a laptop), and a user device 102n (e.g., a tablet computer) that are all within the broadcast range of the media device 106, all of these devices may determine that the text input control on the media device 106 is the currently selected control based on the status advertisement message, and all of these user devices may present a graphical notification prompting the user to invoke the virtual keyboard on each of these user devices.

[0030] In some implementations, user device 102 (e.g., user device 102a, user device 102b, ... user device 102n) can present a keyboard notification on the screen of the user device even when the screen of the user device is locked. For example, user device 102 can present a remote keyboard notification when receiving a status advertisement message broadcast from media device 106.

[0031] Continuing with the above example, assuming that the user has a user device 102a within the broadcast range of the media device 106, the user device 102a can present a remote keyboard notification on the display of the user device 102a. After the user selects the notification on the user device 102a (e.g., by touching, swiping, etc.), the user device 102a can establish a two-way communication session with the media device 106 through the communication network 112. For example, the communication network 112 can include various networks, such as a data network, a wireless network, a telephone network, or any combination thereof. After the user device 102a responds to the remote keyboard service request (e.g., embodied in a status advertisement message), the media device 106 can broadcast another status advertisement message indicating that the media device 106 has been connected to the remote keyboard. Therefore, in response to receiving the status advertisement message indicating that the media device 106 has been connected to the remote keyboard, other user devices (e.g., user device 102b, user device 102n, etc.) can cancel (e.g., hide, remove from display) their corresponding keyboard notifications.

[0032] In some embodiments, the media device 106 may send information describing the required text input to the user device 102a. For example, after establishing a two-way communication session via the network 112, the operating system 108 of the media device 106 may send information describing the text input provided by the user via the remote keyboard to the operating system 104a of the user device 102a. For example, the information may include a prompt for a text input field (e.g., "Enter username", "Enter password", "Enter search query", etc.). The information may include an identification or representation of the application 110 or the operating system 108. For example, the information may include an image, icon, or graphic representing the manufacturer of the application 110 or the operating system 108. The operating system 104a may then use the information to present a text input control and / or a virtual keyboard on the display of the user device 102a, as further described below. Alternatively, the information may be obtained from a status advertisement message received by the user device 102a, as described above.

[0033] In some implementations, the operating system 104a may send virtual keyboard input to the media device 106. For example, the operating system 104a may detect when the user provides input to select characters or other graphical elements presented on the virtual keyboard. After detecting each input, the operating system 104a may send a message identifying the selected character or graphical element to the operating system 108. For example, the operating system 104a may send each character or graphical element individually when the character or graphical element is selected, so that the operating system 108 and / or the application 110 can respond appropriately to each keyboard input (e.g., by presenting search results, moving between text input controls, etc.). For example, the operating system 108 may send the keyboard input to the application 110 so that the application 110 can respond to the keyboard input according to the programming of the application 110. In some implementations, after the user provides input indicating that the user has completed providing text input to the selected control, the keyboard service provided by the user device 102a may be terminated. For example, when the user selects a graphical element (e.g., an "enter" key, a "done" element, etc.) on the virtual keyboard, the keyboard service may be terminated and the virtual keyboard may be canceled or hidden.

[0034] In some implementations, the operating system 104a may wait for a period of time before terminating the remote virtual keyboard service. For example, even though the user may have finished providing input to a text control presented by the media device 106, the operating system 104a may continue to present the virtual keyboard for a period of time (e.g., 5 seconds, 7 seconds, etc.) after the last input to allow the user to provide input to additional text controls presented by the media device 106. Thus, if the media device 106 requires additional text input, the user does not have to be responsible for invoking the virtual keyboard again.

[0035] Figure 2 An example graphical user interface 200 for presenting a remote keyboard notification 202 on a user device 102a is shown. For example, the notification 202 can be a graphical element presented by the operating system 104a on a display of the user device 102a in response to receiving a status advertisement message indicating that a text input control is selected on a media device 106, as described above. The notification 202 can be presented on each user device 102 that receives the status advertisement message. The notification 202 can include, for example, a description 204 and / or an image 206 representing the media device 106 and / or the application 110. The notification 202 can include a prompt 208 describing how to invoke a virtual keyboard on the user device 102a. For example, the user can invoke the virtual keyboard by selecting (e.g., long touching, pressure touching, tapping, swiping, etc.) the notification 202.

[0036] In some implementations, when the user device 102a is locked, the user device 102 (e.g., user device 102a, user device 102b, ... user device 102n) can present a keyboard notification 202 on the GUI 200 of the user device 102a. For example, the GUI 200 can be a lock screen of the user device 102a. When the user device 102a is unlocked (e.g., the user has been authenticated as a user of the user device 102a), the GUI 200 can be a home screen of the user device 102a.

[0037] Figure 3 An example graphical user interface 300 for presenting a virtual keyboard on a user device 102a is shown. For example, in response to a user selecting a notification 202, the operating system 104a may present the GUI 300 on a display of the user device 102a, as described above with reference to FIG. Figure 2 200 of the GUI 200. In some implementations, the user device 102a can present a graphical element 302 representing the application 110 and / or the media device 106. For example, the graphical element 302 can include a description 204 and / or an image 206 representing the media device 106. When the selected text input control is associated with the application 110, the graphical element 302 can include a graphical representation 304 (e.g., an image, icon, graphic, etc.) of the application 110.

[0038] In some implementations, the graphical element 302 may include a prompt 306 describing the text input that the user should provide. For example, the prompt 306 may include instructions such as "enter your password" or "enter a search term". In some implementations, the graphical element 302 may include prompt instructions 308 describing how to invoke a virtual keyboard on the user device 102a. For example, the prompt 308 may include instructions to provide a tap, swipe, long touch, or pressure touch gesture to the graphical element 302 to invoke the virtual keyboard.

[0039] In some implementations, GUI 300 can include virtual keyboard 310. For example, in response to a user selecting graphical element 302 to invoke virtual keyboard 310, virtual keyboard 310 can be presented on GUI 300. For example, in response to user device 102a receiving input specified by prompt 208, virtual keyboard 310 can be presented. For example, the virtual keyboard can include a typical virtual keyboard layout for selecting characters. In some implementations, GUI 300 can be presented without graphical element 302. For example, virtual keyboard 310 can be presented as shown in FIG. Figure 3 300 , but without graphical element 302 .

[0040] In some implementations, the user device 102a can present the virtual keyboard 310 in response to detecting the motion. For example, the user device 102a can present the virtual keyboard 310 in response to detecting the motion. Figure 2 200. When the user picks up the user device 102a to view the notification 202, the user device 102a can detect the motion of the user device 102a (e.g., using a built-in motion sensor, accelerometer, etc.), and the operating system 104a automatically presents the virtual keyboard 310 on the display of the user device 102a. For example, in response to detecting the motion of the user device 102a, the operating system 104a can present the virtual keyboard 310. Figure 3 GUI 300. Thus, a user of user device 102a may invoke virtual keyboard 310 simply by picking up user device 102a.

[0041] In some implementations, the virtual keyboard 310 may include a text control 308. For example, when a user selects a character presented on the virtual keyboard 310, the selected character may be represented on the text control 308. As described above, when characters are selected on the virtual keyboard 310, these characters are also sent to the media device 106, so both the user device 102a and the media device 106 may present similar character strings based on the characters selected by the user. Therefore, the user does not have to divert the user's attention from the display of the user device 102a when entering text, but can compare the text entered on the user device 102a with the text received by the media device 106 when needed.

[0042] In some implementations, the virtual keyboard 310 may include graphical elements 312 and / or 314 for navigating between text controls (e.g., text input boxes, text input fields, etc.) presented on the display of the media device 106. For example, the operating system 108 or application 110 on the media device 106 may require text to be entered into multiple text input controls. For example, the operating system 108 or application 110 may require a user's username and password. The user may select graphical element 312 to select the next text input control. The user may select graphical element 314 to select the previous text input control.

[0043] In some implementations, the virtual keyboard 310 may include a graphical element 316 for indicating that the user has finished providing text input. For example, the user may select the graphical element 316 to indicate that the user has finished providing input to the current text control. When the user selects the graphical element 316, the user device 102a may send a message to the media device 106 to select another (e.g., next) text input control on the media device 106. When the user selects the graphical element 316, the user device 102a may send a message to the media device 106 to terminate the remote virtual keyboard service. Alternatively, the user may select the graphical element 318 to terminate the remote virtual keyboard service and cancel the graphical element 302 and the virtual keyboard 310. However, in some implementations, the termination of the service may be delayed to allow additional text input controls to be selected on the media device 106 and additional text input to be provided, as described above.

[0044] Figure 4 An example graphical user interface 400 is shown for presenting a virtual keyboard on a user device. For example, in response to a user selecting Figure 2 202, GUI 400 may be presented by operating system 104a on a display of user device 102a. For example, GUI 400 may be presented as an alternative to GUI 300 based on features (or lack of features) provided by various user devices 102. For example, if user device 102a is configured with a force touch input feature, user device 102a may present GUI 300. If user device 102a is not configured with a force touch input feature, user device 102a may present GUI 400.

[0045] In some implementations, GUI 400 may include a graphical element 402 for presenting text input. For example, graphical element 402 may be presented in response to selection of notification 202. Graphical element 402 may be presented adjacent to or adjacent to notification 202. Graphical element 402 may include prompt 406. For example, prompt 406 may provide instructions to the user describing what type of information the user should provide to the selected text input control. Graphical element 402 may include text input control 408. For example, text input control 408 may present text input provided by the user using a virtual keyboard, as described above.

[0046] In some implementations, GUI 400 can include virtual keyboard 410. For example, in response to a user selecting graphical element 202, virtual keyboard 410 can be presented on GUI 400. For example, virtual keyboard 410 can be presented simultaneously or nearly simultaneously with graphical element 402. For example, in response to user device 102a receiving input specified by prompt 208, virtual keyboard 310 can be presented. Virtual keyboard 410 can include a typical virtual keyboard layout for selecting characters.

[0047] In some implementations, the virtual keyboard 410 may include graphical elements 412 and / or 414 for navigating between text controls (e.g., text input boxes, text input fields, etc.) presented on the display of the media device 106. For example, the operating system 108 or application 110 on the media device 106 may require text to be entered into multiple text input controls. For example, the operating system 108 or application 110 may require a user's username and password. The user may select graphical element 412 to select the next text input control. The user may select graphical element 414 to select the previous text input control.

[0048] In some specific implementations, the virtual keyboard 410 may include a graphical element 416 for indicating that the user has finished providing text input. For example, the user may select the graphical element 416 to indicate that the user has finished providing input to the current text control. When the user selects the graphical element 416, the user device 102a may send a message to the media device 106 so that another (e.g., next) text input control is selected on the media device 106. When the user selects the graphical element 416, the user device 102a may send a message to the media device 106 to terminate the remote virtual keyboard service. Alternatively, the user may select the graphical element 418 to terminate the remote virtual keyboard service and cancel the graphical element 402 and the virtual keyboard 410. However, in some specific implementations, the termination of the service may be delayed to allow additional text input controls to be selected on the media device 106 and additional text input to be provided, as described above.

[0049] Example Process

[0050] Figure 51 is a flow diagram of an example process 500 for providing remote keyboard services on a user device. More specifically, the process 500 described herein is a method for providing remote keyboard services from a user device to a media device (or any other type of computing device). A user device implementing the process 500 can provide remote keyboard services and present a remote keyboard without invoking a user application (e.g., remote control application 104a) on the user device. The process 500 can be efficiently handled by an operating system and makes the remote keyboard services available regardless of the applications installed on the user device and regardless of the locked or unlocked state of the user device.

[0051] At step 502, user device 102a may receive a status advertisement message broadcast from media device 106. For example, the status advertisement message may identify the media device and include data describing the current state of the media device. According to specific implementations described herein, the status advertisement message may include data indicating that a text input control presented by media device 106 is the currently selected control. Alternatively, the status advertisement message may include data indicating that media device 106 is requesting to connect to a remote keyboard.

[0052] At step 504, user device 102a may determine that a text input control on the media device is the currently selected control. For example, based on the status advertisement message received at step 502, user device 102a may determine that a text input control on media device 106 is the currently selected control.

[0053] At step 506, user device 102a may present a remote keyboard notification. For example, in response to determining that a text input control on media device 106 is the currently selected control, user device 102a may present a graphical keyboard notification prompting a user to invoke a virtual keyboard on user device 102a. For example, when a user has user device 102a (e.g., a smart phone), user device 102b (e.g., a laptop), and user device 102n (e.g., a tablet) all within broadcast range of media device 106, each of these devices may determine that a text input control on the media device is the currently selected control based on the status advertisement message, and may present a graphical notification prompting the user to invoke a virtual keyboard on each of these user devices.

[0054] At step 508, user device 102a may receive a user selection of a notification. For example, user device 102a may receive user input (e.g., a tap, a swipe, a long touch, a pressure touch, etc.) to the notification, thereby selecting the notification. In some implementations, the first device selected by the user (e.g., the user may tap the graphical notification to invoke a virtual keyboard on the device) will present a remote keyboard on the selected device for the user to enter text into a text field on media device 106. The remaining devices will dismiss the graphical notification from their screens, but will retain the notification on those devices.

[0055] At step 510, the user device 102a may establish a connection with the media device 106. As described above, after the user selects the notification on the user device 102a by tapping or clicking the notification, the user device 102a may establish a two-way communication session with the media device 106 over the communication network 112. For example, the user device 102a may establish a session with the media device 106 over the network 112 because the communication session over the network 112 may allow for the transmission of more data than the status advertisement message.

[0056] At step 512, the user device 102a may receive the application data from the media device 106. For example, after establishing a communication session with the media device 106, the media device 106 may send the application data to the user device 102a. For example, the application data may include media device data, such as a description 204 and / or an image 206 representing the media device 106. The application data may include a graphical representation 304 of the application 110 and / or a prompt 306 from the application 110 (e.g., please enter your password), such as Figure 3 shown.

[0057] At step 514, the user device 102a may present the device data, the application data, and / or the keyboard on a display of the user device 102a. For example, after receiving the device data and / or the application data, the user device 102a may present the device data and / or the application data, such as Figure 3 shown.

[0058] At step 516, user device 102a may receive user input to a virtual keyboard presented on the user device. For example, the user input may be a selection of a single character or other object presented on the virtual keyboard (such as graphical elements 312 and / or 314 for navigating between text controls).

[0059] At step 518, the user device 102a may send the user input to the media device 106. For example, the user device 102a may send the user input to the media device 106 via the communication network 112. For example, after step 518, the process 500 may return to step 516. Steps 516 and 518 may be repeated until the user completes providing input to the virtual keyboard. Thus, the media device 106 may respond to each keyboard input as if the keyboard was directly connected to the media device 106 or was part of the media device.

[0060] Figure 6 is a flow chart of an example process 600 for requesting remote keyboard services from a user device. More specifically, the process 600 described herein is a method for advertising a need for a remote keyboard so that a user can select the most convenient device for invoking the remote keyboard, as described above.

[0061] At step 602, the media device 106 can present an application 110 on a display associated with the media device 106. In some implementations, the media device 106 can be configured with various media applications for presenting media items to the user. The user can invoke the application 110 on the media device 106 using a remote control device. The application 110 can present a graphical user interface that allows the user to control the application 110. For example, the application 110 can present a graphical user interface that allows the user to browse, search, and view media items available through the application 110.

[0062] At step 604, the media device 106 may receive an indication of selecting a text input control from the application 110. For example, when interacting with the application 110, the application 110 may require the user to provide text input. The application 110 may require a username and password. The application 110 may need to perform search parameters for searching media. In either case, the application 110 can present and the user can select (e.g., using the remote control device 120) the text input control presented by the application 110. When the text input control is selected, the application 110 can send a message to the operating system 108 on the media device 106 (e.g., using the above-mentioned API), thereby indicating that the text input control has been selected and / or providing a description of the information required for the text input control. In some specific implementations, the message may include an identifier of the application 110 and / or other application metadata, such as a graphical representation 304.

[0063] At step 606, the media device 106 can generate an advertisement message indicating that the text input control is selected. In some implementations, the media device 106 can generate a status advertisement message that includes status information indicating that the text input control presented by the application 110 is selected. For example, in response to receiving a message from the application 110 at step 604, the operating system 108 can generate a status advertisement message that includes data indicating that the text input control is currently selected on the media device 106.

[0064] At step 608, the media device 106 may broadcast a status advertisement message. In some implementations, after the media device 106 generates a status advertisement message indicating that the text input control is selected, the media device 106 may broadcast the status advertisement message. For example, the advertisement message may be broadcast without identifying a specific recipient device. Therefore, all user devices within the broadcast range of the media device 106 may receive the status advertisement message.

[0065] At step 610, the media device 106 may receive a message indicating that the user device will provide a remote keyboard for the media device. For example, after all user devices 102 within the broadcast range of the media device 106 receive the media device status advertisement broadcast from the media device 106, the media device 106 may receive a message indicating that the user device 102a will provide a remote keyboard for the media device 106. For example, the message may be sent to the media device 106 via the network 112. The message may initiate a two-way communication session between the media device 106 and the user device 102a, such that the media device 106 and the user device 102a may exchange data related to the text input control.

[0066] At step 612, the media device 106 may send the application data to the user device 102a. For example, the application data may include device data, such as a description 204 and / or an image 206 representing a media device (e.g., the media device 106). The application data may include a graphical representation 304 of the application 110 and / or a prompt 306 from the application 110 (e.g., please enter your password), such as Figure 3 The application data may be received by the operating system 108 from the application 110 , as described above in step 604 .

[0067] At step 614, the media device 106 may receive keyboard input from the user from the user device 102a. For example, when the user device 102a receives user input selecting characters and / or other objects on a remote keyboard (e.g., keyboard 310, keyboard 410) presented on the user device 102a, the user device 102a may send the user input (e.g., the selected characters or other objects) to the media device 106.

[0068] At step 616, media device 106 may send the user's keyboard input to application 110. For example, after receiving the user's keyboard input from user device 102a, operating system 108 may send the keyboard input to application 110. Application 110 may then perform operations based on the selected text control usage. For example, if the currently selected text control is configured to receive a username and / or password input, application 110 may process the keyboard input to determine whether the entered username and / or password is correct for the user. If the currently selected text control is configured to receive search parameters, application 110 may process the keyboard input by performing a search after each character is entered by the user.

[0069] As the media device 106 receives and processes each keyboard input (e.g., character selection, object selection, etc.) as it receives input, process 600 may return to step 614 to receive the next keyboard input and return to 616 to process the next keyboard input. Thus, process 600 may repeat steps 614 and 616 until the user has completed providing input to the selected text control.

[0070] Furthermore, while process 600 describes receiving text input from application 110, process 600 may also be implemented to receive text input from operating system 108. For example, application 110 may be substituted with operating system 108 in process 600 to obtain remote keyboard services for operating system 108 and receive text input from a text input control presented by operating system 108.

[0071] Graphical User Interface

[0072] The present disclosure describes above various graphical user interfaces (GUIs) for implementing various features, processes, or workflows. These GUIs may be presented on various electronic devices, including but not limited to laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-book readers, and smart phones. One or more of these electronic devices may include a touch-sensitive surface. The touch-sensitive surface may process multiple simultaneous input points, including processing data related to the pressure, degree, or position of each input point. Such processing may facilitate gestures performed using multiple fingers, including pinching and swiping.

[0073] When the present disclosure refers to "selecting" a user interface element in a GUI, these terms are understood to include clicking or "hovering" over a user interface element with a mouse or other input device, or touching, tapping, or gesturing on a user interface element with one or more fingers or a stylus. User interface elements may be virtual buttons, menus, selectors, switches, sliders, brushes, knobs, thumbnails, links, icons, radio buttons, check boxes, and any other mechanism for receiving input from a user or providing feedback to a user.

[0074] privacy

[0075] The present disclosure recognizes that the use of such personal information data in the present invention technology can be used to benefit users. For example, the personal information data can be used to deliver targeted content that users are more interested in. Therefore, the use of such personal information data enables planned control of the delivered content. In addition, the present disclosure also anticipates other uses of personal information data that benefit users.

[0076] The disclosure also contemplates that entities responsible for the collection, analysis, disclosure, transmission, storage or other purposes of such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to the use of privacy policies and practices that are recognized as meeting or exceeding the industry or government requirements for maintaining the privacy and security of personal information data. For example, personal information from users should be collected for the legal and reasonable purposes of the entity, and not shared or sold outside these legal uses. In addition, such collection should only be carried out after the user's informed consent. In addition, such entities should take any necessary steps to safeguard and protect access to such personal information data, and ensure that other people who can access personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices.

[0077] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates providing hardware elements and / or software elements to prevent or block access to such personal information data. For example, with respect to an advertising delivery service, the technology of the present invention may be configured to allow a user to choose to "opt in" or "opt out" of participating in the collection of personal information data during registration for the service. For another example, a user may choose not to provide location information for a target content delivery service. For another example, a user may choose not to provide precise location information, but permit the transmission of location area information.

[0078] Example system architecture

[0079] Figure 7 To be achievable Figures 1 to 61 is a block diagram of an example computing device 700 that may include features and processes of a computing device 700. The computing device 700 may include a memory interface 702, one or more data processors, an image processor, and / or a central processing unit 704, and a peripheral device interface 706. The memory interface 702, one or more processors 704, and / or the peripheral device interface 706 may be separate components or may be integrated into one or more integrated circuits. The various components in the computing device 700 may be connected by one or more communication buses or signal lines.

[0080] Sensors, devices, and subsystems may be coupled to the peripherals interface 706 to facilitate a number of functions. For example, a motion sensor 710, a light sensor 712, and a proximity sensor 714 may be coupled to the peripherals interface 706 to facilitate orientation, lighting, and proximity functions. Other sensors 716 may also be coupled to the peripherals interface 706, such as a global navigation satellite system (GNSS) (e.g., a GPS receiver), a temperature sensor, a biometric sensor, a magnetometer, or other sensing device, to facilitate related functions.

[0081] Camera subsystem 720 and optical sensor 722 (e.g., a charge coupled device (CCD) or complementary metal oxide semiconductor (CMOS) optical sensor) may be used to facilitate camera functions, such as recording photographs and video clips. Camera subsystem 720 and optical sensor 722 may be used to collect images of the user to be used during authentication of the user, for example, by performing facial recognition analysis.

[0082] Communication functions may be facilitated by one or more wireless communication subsystems 724, which may include radio frequency receivers and transmitters and / or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of communication subsystems 724 may depend on the communication network or networks over which computing device 700 is intended to operate. For example, computing device 700 may include a wireless communication subsystem designed to communicate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth® network. ™ Network-operated communication subsystem 724. In particular, the wireless communication subsystem 724 may include a host protocol, thereby allowing the device 100 to be configured as a base station for other wireless devices.

[0083] The audio subsystem 726 may be coupled to a speaker 728 and a microphone 730 to facilitate voice-enabled functions such as speaker recognition, voice replication, digital recording, and telephony functions. The audio subsystem 726 may be configured to facilitate, for example, voice processing commands, voiceprint identification, and voice authentication.

[0084] I / O subsystem 740 may include touch surface controller 742 and / or one or more other input controllers 744. Touch surface controller 742 may be coupled to touch surface 746. Touch surface 746 and touch surface controller 742 may detect contact and motion or interruption thereof, for example, using any of a variety of touch-sensitive technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch surface 746.

[0085] One or more other input controllers 744 may be coupled to other input / control devices 748, such as one or more buttons, rocker switches, thumb wheels, infrared ports, USB ports, and / or pointer devices (such as stylus). One or more buttons (not shown) may include an up / down button for volume control of the speaker 728 and / or microphone 730.

[0086] In one implementation, pressing the button for a first duration can unlock the touch surface 746; and pressing the button for a second duration longer than the first duration can turn the power of the computing device 700 on or off. Pressing the button for a third duration can activate a voice control or voice command module that enables a user to speak a command into the microphone 730 so that the device executes the spoken command. The user can customize the function of one or more of the buttons. For example, the touch surface 746 can also be used to implement virtual or soft buttons and / or a keyboard.

[0087] In some implementations, computing device 700 can present recorded audio and / or video files, such as MP3, AAC, and MPEG files. In some implementations, computing device 700 can include the functionality of an MP3 player, such as an iPod MP3 player. ™ The computing device 700 may thus include a 36-pin connector compatible with an iPod. Other input / output and control devices may also be used.

[0088] The memory interface 702 may be coupled to a memory 750. The memory 750 may include high-speed random access memory and / or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and / or flash memory (e.g., NAND, NOR). The memory 750 may store an operating system 752, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system (such as VxWorks).

[0089] The operating system 752 may include instructions for handling basic system services and for performing hardware-related tasks. In some implementations, the operating system 752 may be a kernel (e.g., a UNIX kernel). In some implementations, the operating system 752 may include instructions for performing voice authentication. For example, the operating system 752 may implement a remote keyboard feature, such as the one described in the referenced example. Figures 1 to 6 described.

[0090] The memory 750 may also store communication instructions 754 for facilitating communication with one or more additional devices, one or more computers, and / or one or more servers. The memory 750 may include: graphical user interface instructions 756 for facilitating graphical user interface processing; sensor processing instructions 758 for facilitating sensor-related processing and functions; phone instructions 760 for facilitating phone-related processes and functions; electronic instant messaging instructions 762 for facilitating electronic instant messaging-related processes and functions; web browsing instructions 764 for facilitating web browsing-related processes and functions; media processing instructions 766 for facilitating media processing-related processes and functions; GNSS / navigation instructions 768 for facilitating GNSS and navigation-related processes and instructions; and / or camera instructions 770 for facilitating camera-related processes and functions.

[0091] The memory 750 may store other software instructions 772 for facilitating other processes and functions, such as reference Figures 1 to 6 Remote keyboard processing and functionality as described.

[0092] The memory 750 may also store: other software instructions 774, such as web video instructions, for facilitating processes and functions related to web video; and / or web shopping instructions, for facilitating processes and functions related to web shopping. In some specific implementations, the media processing instructions 766 are divided into audio processing instructions and video processing instructions, which are used to facilitate processes and functions related to audio processing and processes and functions related to video processing, respectively.

[0093] Each of the instructions and applications identified above may correspond to an instruction set for performing one or more of the functions described above. These instructions need not be implemented as separate software programs, processes, or modules. Memory 750 may include additional instructions or fewer instructions. Furthermore, various functions of computing device 700 may be implemented in hardware and / or software, including in one or more signal processing and / or application specific integrated circuits.

Claims

1. A method comprising: Presenting, by a user device, a first graphical notification prompting a user to invoke a virtual keyboard on the user device; receiving, by the user device via a first graphical notification, a first user input invoking the virtual keyboard on the user device; presenting the virtual keyboard for providing input on a display of the user device, wherein the virtual keyboard is provided by an operating system of the user device that is distinct from any user application on the user device; receiving a user input for canceling the virtual keyboard; as well as The cancelling of the virtual keyboard is delayed for a period of time.

2. The method according to claim 1, further comprising: receiving, by the user device, a status advertisement message broadcast from a media device prior to presenting the first graphical notification; as well as Based on the status advertisement message, determining by the user device that an input control on the media device is currently selected, The first graphical notification prompting the user to invoke a virtual keyboard on the user device is presented in response to determining that the input control on the media device is currently selected.

3. The method according to claim 2, further comprising: Receiving, by the user device, control information describing the purpose of a currently selected input control; as well as The control information and the virtual keyboard are presented simultaneously.

4. The method of claim 1, wherein the virtual keyboard is configured to provide input to an input control selected on a media device, the method further comprising: In response to a first selection of a first graphical notification on the user device, establishing, by the user device, a connection with the media device; Receiving, by the user device via the virtual keyboard, a second user input selecting one or more characters and / or graphical elements; as well as A second user input is sent by the user device to the media device. 5 . The method of claim 4 , wherein the first graphical notification includes application data from the media device and instructions for activating the virtual keyboard. 6 . The method of claim 1 , wherein the virtual keyboard is presented on the display of the user device via an operating system of the user device without invoking a user application. 7 . The method of claim 1 , wherein the user device is locked prior to invoking the virtual keyboard and during a period of time when the virtual keyboard is presented on the display of the user device.

8. A system comprising: one or more processors; and A non-transitory computer readable medium comprising one or more instruction sequences which, when executed by the one or more processors, perform the method according to any one of claims 1 to 7.

9. A non-transitory computer readable medium comprising one or more instruction sequences, which when executed by one or more processors, perform the method according to any one of claims 1 to 7.

10. A method comprising: Presenting, by a user device, a first graphical notification prompting a user to invoke a virtual keyboard on the user device; receiving, by the user device via a first graphical notification, a first user input invoking the virtual keyboard on the user device; presenting the virtual keyboard for providing input on a display of the user device, wherein the virtual keyboard is provided by an operating system of the user device that is distinct from any user application on the user device; as well as A user voice input to the virtual keyboard is received via a microphone of the user device, the user voice input providing at least one command.

11. The method according to claim 10, further comprising: Before receiving the user voice input for the virtual keyboard, receiving, by the user device, a second user input, the second user input enabling voice control of the virtual keyboard on the user device; Determining, by the user device, the at least one command from the user voice input; as well as The at least one command is sent by the user device to the media device.

12. The method according to claim 10, further comprising: receiving, by the user device, a status advertisement message broadcast from a media device prior to presenting the first graphical notification; as well as Based on the status advertisement message, determining by the user device that an input control on the media device is currently selected, The first graphical notification prompting the user to invoke a virtual keyboard on the user device is presented in response to determining that the input control on the media device is currently selected.

13. The method according to claim 12, further comprising: Receiving, by the user device, control information describing the purpose of a currently selected input control; as well as The control information and the virtual keyboard are presented simultaneously.

14. The method of claim 10, wherein the virtual keyboard is configured to provide input to an input control selected on a media device, the method further comprising: In response to a first selection of a first graphical notification on the user device, establishing, by the user device, a connection with the media device; Receiving, by the user device via the virtual keyboard, a second user input selecting one or more characters and / or graphical elements; as well as A second user input is sent by the user device to the media device.

15. The method of claim 10, wherein the virtual keyboard is presented on the display of the user device via an operating system of the user device without invoking a user application.

16. The method of claim 10, wherein the user device is locked prior to invoking the virtual keyboard and during a period of time when the virtual keyboard is presented on the display of the user device.

17. A system comprising: one or more processors; and A non-transitory computer readable medium comprising one or more instruction sequences which, when executed by the one or more processors, perform the method according to any one of claims 10 to 16.

18. A non-transitory computer readable medium comprising one or more instruction sequences which, when executed by one or more processors, perform the method according to any one of claims 10 to 16.

Citation Information

Patent Citations

  • Adaptable schema based payloads

    US20170359676A1