Incoming communication alerting over low-energy connection
By sending a message over a low-energy connection to initiate ringing on wearable devices while establishing hands-free connections, the delay and power consumption issues in alerting incoming calls are addressed, enhancing user experience and battery life.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2024-11-26
- Publication Date
- 2026-06-04
AI Technical Summary
Establishing a hands-free telephone connection between a companion device and a wearable device for incoming calls results in a delay, causing an unacceptable wait time before the wearable device alerts the user.
A method where the companion device sends a message over a low-energy connection to initiate ringing on the wearable device while simultaneously establishing a hands-free connection, allowing the wearable device to operate as if the hands-free connection is maintained, reducing power consumption and delay.
The solution enables immediate alerting of incoming calls on wearable devices without additional power consumption, improving user experience and extending battery life by using existing low-energy connections concurrently with hands-free protocols.
Smart Images

Figure US2024057526_04062026_PF_FP_ABST
Abstract
Description
Docket No.: 1333-889WO01INCOMING COMMUNICATION ALERTING OVER LOW-ENERGY CONNECTIONBACKGROUND
[0001] Computing devices with caller functionality may communicate with wearable computing devices, such as so-called smartwatches, fitness trackers, and the like to enable a wearer to conduct a call via the wearable device. For instance, a computing device may receive an incoming call and communicate data regarding the call to a wearable device, enabling the call to be conducted on the wearable device. The computing device and wearable computing device may use a protocol, such as BLUETOOTH, to communicate data regarding the call.SUMMARY
[0002] Techniques of this disclosure enable a wearable device to alert a user in real time of an incoming phone call received at a companion device, such as a smartphone, using an existing low energy connection between the wearable device and the companion device. Typically, when the companion device receives a phone call, the companion device and the wearable device must establish a hands-free telephone connection before the call begins ringing on the wearable device. Establishing this connection takes time and results in a delay between when the companion device begins to ring and when the wearable device begins to ring for the same call. In one example, the techniques described herein enable the companion device to send a message to the wearable device using the existing low energy connection that causes the wearable device to begin ringing without waiting for the devices to establish the hands-free telephone connection. That is, the wearable device behaves as if the hand-free telephone connection is established with the companion device even though there is no such connection. In conjunction with sending the message over the existing low energy connection, the companion device and wearable device work to establish a hands-free telephone connection between the two devices so that, should the user answer the call using the wearable device, the wearable device can connect to the call using the newly established hands-free protocol. In this way, the techniques of this disclosure may enable the wearable device to operate as if the more energy intensive hands-free telephone connection is always maintained while using less energy than is required to maintain the hands-free telephone connection.
[0003] In an example, a method includes in response to receiving an incomingDocket No.: 1333-889WO01 communication, sending, by a first computing device, an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establishing, by the computing device, a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relaying, by the first computing device, the incoming communication to the second computing device via the second connection.
[0004] In another example, a first computing device includes memory; and at least one processor in communication with the memory and configured to in response to receiving an incoming communication, send an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection.
[0005] In yet another example, a system includes a first computing device, wherein the first computing device is communicatively connected to a second computing device via a first connection, and wherein the first computing device is configured to in response to receiving an incoming communication, send an indication of the incoming communication to the second computing device via the first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, and wherein the first connection is maintained in conjunction with the second connection; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection; and the second computing device, wherein the second computing device is configured to in response to receiving the indication of the incoming communication from the first computing device via the first connection, generate a user interface that includes a visual indication of the incoming communication; in response to the user input consistentDocket No.: 1333-889WO01 with the acceptance of the incoming communication, provide the acceptance indication to the first computing device; and output the incoming communication to a user of the second computing device.
[0006] In an additional example, a non-transitory computer-readable storage medium is encoded with instructions that, when executed, cause at least one processor of a first computing device to in response to receiving an incoming communication, send an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection.
[0007] The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF DRAWINGS
[0008] FIG. 1 illustrates an example computing system for alerting a user of a computing device of an incoming communication using an existing connection, in accordance with one or more aspects of this disclosure.
[0009] FIG. 2 illustrates an example computing device that generates messages regarding incoming communications, in accordance with one or more aspects of this disclosure.
[0010] FIG. 3 illustrates an example computing device that alerts a user regarding an incoming communication, in accordance with one or more aspects of this disclosure.
[0011] FIGS. 4A-4C illustrate example graphical user interfaces regarding an incoming communication displayed by a computing device, in accordance with techniques of this disclosure.
[0012] FIG. 5 is a flow chart that illustrates an example operation of computing devices for alerting a user of a computing device of an incoming communication, in accordance with techniques of this disclosure.Docket No.: 1333-889WO01
[0013] FIG. 6 is a flow chart that illustrates an example operation of a computing device in alerting a user of a computing device of an incoming communication, in accordance with techniques of this disclosure.
[0014] Like reference characters denote like elements throughout the text and figures.DETAILED DESCRIPTION
[0015] FIG. 1 illustrates an example computing system 100 for alerting a user of a computing device using an existing connection, in accordance with one or more techniques of this disclosure. In the example of FIG. 1, computing system 100 includes first computing device 102, second computing device 120, and calling device 142.
[0016] First computing device 102 may be one or more types of computing device with calling functionality (e.g., cellular, Voice over IP, other types of calling, etc.), such as a smartphone, laptop, desktop, tablet, artificial intelligence (Al)-enabled smart pin, Al-enabled goggles / glasses, augmented reality (AR) glasses / goggles, virtual reality (VR) glasses / goggles, and / or other type of computing device and may be referred to as a “companion device” throughout. First computing device 102 may enable a user to make and receive calls and / or other types of communications. For example, first computing device 102 may enable a user to receive a phone call from another computing device, such as calling computing device 142 via network 140.
[0017] Calling device 142 may be one or more types of computing device that includes calling functionality. For example, calling device 142 may be a smartphone that places a call to first computing device 102. Calling device 142 may communicate with first computing device 102 via network 140.
[0018] Network 140 may include one or more networks, such as the Internet, Local Area Network (LAN), satellite networks, Public Switch Telephone Network (PSTN), and / or other types of networks. Network 140 may facilitate communication between calling device 142 and first computing device 102. For example, network 140 may facilitate the exchange of data regarding an incoming call from calling device 142 to first computing device 102 via the one or more networks of network 140.
[0019] First computing device 102 may receive data regarding an incoming communication (alternatively referred to as “call” throughout this disclosure), such as a phone call or video call, via communication units 106. Communication units 106 may include one or more types of communication units, such as modems, wireless radios, network interface cards (NICs) and other types of network interfaces, and / or other types of communication units thatDocket No.: 1333-889WO01 facilitate communication via one or more types of communication, such as BLUETOOTH, WIFI, Ultra-wideband (UWB), as 5G, 4G, long-term evolution (LTE), one or more satellite communication standards (e.g., L-band based communications), and / or other types of communication. Communication units 106 may enable first computing device 102 to communicate with computing devices, such as calling device 142 and second computing device 120. In an example, communication units 106 receive data regarding an incoming communication from calling device 142 via network 140 and provide the data to other components of first computing device 102.
[0020] First computing device 102 includes user interface components 104 (hereinafter “UIC 104”), may include one or more components of first computing device 102 that enable a user to interact with and receive output from first computing device 102. UIC 104 may include one or more input and output devices such as displays, touchscreens, speakers, microphones, haptic engines, LED indicators, projected keyboards, buttons, rotatable components (e.g., rotating bezels on a smartwatch), and / or other components. UIC 104 may enable a user to interact with first computing device 102 and request that first computing device 102 accept an incoming communication from calling device 142.
[0021] UIC 104 may display user interface 110 (hereinafter “UI 110”), which may be a user interface of first computing device 102. First computing device 102 may generate UI 110 as including one or more visual elements that include an identifier of a user that is calling, a phone number of the user that is calling, a decline call visual element, an accept call visual element, and / or visual elements that correspond to other functionality of first computing device 102. In an example, first computing device 102 receives an indication of an incoming call that includes an identifier of the caller via communication units 106. First computing device 102 generates UI 110 and causes UIC 104 to output UI 110 for display via a display component.
[0022] First computing device 102 may communicate with second computing device 120 to provide an indication of an incoming communication and enable a user to answer the communication via second computing device 120. Second computing device 120 may include one or more types of computing device, such as a smartwatch, smartphone, laptop, desktop, fitness tracker, Al-enabled goggles / glasses, AR glasses / goggles, VR glasses / goggles, AL enabled pin, and / or other type of computing device. In some examples, second computing device 120 may be a wearable computing device that executes companion applications of first computing device 102. Second computing device 120 may be communicatively connected to first computing device 102 via one or more of communication units 124.Docket No.: 1333-889WO01Communication units 124 may be similar to communications units 106 of first computing device 102 and provide similar functionality. In some examples, communications unit 124 may include fewer components in comparison to communication units 106 and provide comparatively limited functionality.
[0023] Second computing device 120 includes user interface components 122 (hereinafter “UIC 122”), which may include one or more types of user interface components. UIC 122 may be similar to UIC 104 of first computing device 102 and provide similar functionality. For example, UIC may output UI 130 for display via one or more display components.
[0024] Second computing device 120 may generate UI 130 as including one or more visual elements. In the example of FIG. 1, second computing device 120 generates UI 130 as including a visual element indicative of an incoming call, a visual element indicative an identifier of a caller, a visual element corresponding to picking up the incoming call, and a visual element corresponding to rejecting the incoming call.
[0025] First computing device 102 and second computing device 120 may be communicatively connected to each other via one or more connections, such as second connection 152, that supports voice and / or other data necessary for a call. Second connection 152 may include one or more types of connections, such as BLUETOOTH (hereinafter “BT”) BT Classic, and / or other protocols that facilitate the answering of calls received by first computing device 102 using second computing device 120. For example, first computing device may use second connection 152 to facilitate the use of a protocol with a profile that supports calling, such as BT Hands-free Profile (HFP), in communicating with second computing device 120.
[0026] First computing device 102 and second computing device 120 may consume additional power when connected via a connection that supports the exchange of communication data (e.g., voice data via second connection 152). For instance, first computing device 102 and second computing device 120 may maintain second connection 152 in case an incoming call is received by first computing device 102, but consume additional power while the features of second connection that support calls remain unused. Further, a user may notice an unacceptable period of delay from when first computing device 102 receives the incoming communication and when second computing device 120 first alerts a user to the incoming communication due to the time needed to establish second connection 152.
[0027] In accordance with the techniques of this disclosure, first computing device 102 provides a message to second computing device 120 regarding an incoming communicationDocket No.: 1333-889WO01 while establishing second connection 152. First computing device 102 and second computing device 120 maintain another connection, such as first connection 150 without using second connection 152, until the features of second connection 152 are needed. First computing device 102 may provide a message to cause second computing device 120 to display UI 130 as including an indication of the incoming call while second connection 152 is established. Once second connection 152 is established, first computing device 102 relays the incoming communication to second computing device 120.
[0028] First computing device 102 includes connection module 108, which may be a software component of first computing device 102 that manages connections between first computing device 102 and second computing device 120. Connection module 108 may initiate the establishment of second connection 152 based on an indication of an incoming call. First computing device 102 may initiate the establishment of second connection 152 that may be a comparatively higher power connection than first connection 150 (e.g., second connection may be BLUETOOTH Classic in adherence with a Hands-Free Profile and first connection 150 may be BLE) to facilitate the use of the additional features of second connection 152 that first connection 150 does not provide. First computing device 102 may receive an indication of an incoming call or other type of incoming communication via network 140. In some examples, connection module 108 may obtain an indication of the incoming call from a modem of communication units 106. Connection module 108 may automatically begin establishing second connection 152 in response to the indication of the incoming communication. In an example, connection module 108 establishes second connection 152 as a BLUETOOTH Classic connection in adherence with BLUETOOTH Hands-Free Profile. Communication module 108 may cause first computing device 102 to establish second connection 152 prior to receiving any indication that a user has answered the incoming communication via second computing device 120.
[0029] First computing device 102 sends an indication of the incoming communication to second computing device 120 that includes an identifier of the caller. First computing device 102 may provide the indication of the incoming call as included in message sent via first connection 150 while connection module 108 establishes second connection 152. In an example, first computing device 102 receives an indication of an incoming communication via network 140 from calling computing device 142 that includes an identifier of the caller. First computing device 102 sends a message that includes an indication of the incoming call and the identifier to second computing device 120 via first connection 150 while connection module 108 establishes second connection 152.Docket No.: 1333-889WO01
[0030] First computing device 102 may send a message to second computing device 120 to cause second computing device 120 to “ring” or otherwise generate an indication of the incoming communication. First computing device 102 may send a message that includes information regarding the incoming communication (e.g., caller ID) in accordance with a generic attribute profile (GATT) that defines the communication of the incoming communication to second computing device 120. In an example, first computing device 102 receives an indication of an incoming communication. First computing device 102 generates a GATT message that includes an indication of the incoming communication and information regarding the incoming communication (e.g., caller ID), and provides the message to second computing device 120. Second computing device 120 receives the messages and outputs an indication, such as an auditory indication, to alert a user of second computing device 120 of the incoming communication. First computing device 102 may provide the message to second computing device 120 to cause second computing device 120 to “ring” while second connection 152 is being established.
[0031] Second computing device 120 may generate UI 130 as including an indication of an incoming communication. Second computing device 120 may output UI 130 regardless of whether second connection 152 has been established or is still being established by connection module 108. Second computing device 120 may generate and output UI 130 as including an indication of the incoming communication as a user may take a period of time to determine whether to answer the incoming communication (e.g., a user may not instantly answer an incoming communication). For example, second computing device 120 may generate and output UI 130 as including an indication of the incoming communication to alert the user of the incoming communication while not requiring that second connection 152 be established before alerting the user to the incoming communication.
[0032] Second computing device 120 may generate and provide an acceptance indication to first computing device 102 in response to user interaction consistent with acceptance of the incoming communication on second computing device 120. Second computing device 120 may receive user input consistent with acceptance of the incoming communication (e.g., user interaction at a location of UI 130 consistent with an accept call icon) via UIC 122. Second computing device 120 may generate an acceptance indication that is indicative of a user having accepted an incoming communication on second computing device 120 and provide the acceptance indication via first connection 150 and / or second connection 152.
[0033] In some examples, second computing device 120 generates UI 130 as including a placeholder indication (e.g., as part of a “placeholder UI”) in the case of the incomingDocket No.: 1333-889WO01 communication being answered on second computing device 120 prior to the establishment of second connection 152. Second computing device 120 may generate UI 130 as including a placeholder indication that indicates to a user that the call is being connected. For example, second computing device 120 may generate UI 130 as including a textual indication, such as “Connecting. . .” to indicate to a user that second computing device 120 has received input from the user accepting the incoming communication but that second computing device 120 is still connecting to first computing device 102. Second computing device 120 may generate UI 130 as including the placeholder indication after providing an acceptance indication to first computing device 102 and prior to the establishment of second connection 152.
[0034] First computing device 102 relays the incoming communication to second computing device 120 in response to the acceptance indication and via second connection 152. First computing device 102 may relay the incoming communication to second computing device 120 via second connection 152 once second connection 152 has been successfully established between first computing device 102 and second computing device 120. In an example, first computing device 102 receives an acceptance indication from second computing device 120. Based on determining that second connection 152 has been established, first computing device 102 provides the incoming communication to second computing device 120.
[0035] First computing device 102 may relay information between a calling device (e.g., calling device 142) and second computing device 120 while a communication is ongoing. First computing device 102 may both relay information of the communication received via network 140 to second computing device 120 and information from second computing device 120 to network 140. For example, first computing device 102 may relay information to facilitate the communication between second computing device 120 and calling device 142 via first computing device 102.
[0036] UIC 122 of second computing device 120 may facilitate conducting the communication via second computing device. UIC 122 may output audio and / or video of the communication received from calling device 142 and capture audio and / or video to be provided to calling device 142. In an example, second computing device 120 receives audio data of a communication from calling device 142 via first computing device 102. Second computing device 120 causes UIC 122 to output the audio to the user and generates audio data of the user based on audio captured by UIC 122. Second computing device 120 provides the audio data to calling device 142 via first computing device 102.
[0037] First computing device 102 may determine that the incoming communication has been terminated based on receiving an indication from second computing device 120 (e.g., aDocket No.: 1333-889WO01 user of second computing device hanging up) and / or an indication from calling device 142 via network 140 (e.g., receiving an indication that calling device 142 has terminated the incoming communication. In some examples, first computing device 102 may determine that the incoming communication has been terminated before being connected (e.g., a user of second computing device 120 declines to answer the incoming communication or calling device 142 terminates the incoming communication before it is connected).
[0038] Connection module 108 terminates second connection 152 in response to the termination of an incoming communication. Connection module 108 may provide an indication that second connection 152 will be terminated to second computing device 120 as part of terminating second connection 152. First computing device 102 may reroute communications to use first connection 150 based on the termination of second connection 152.
[0039] The techniques of this disclosure may provide one or more practical advantages. For example, concurrently providing an indication of the incoming communication to second computing device 120 while second connection 152 is being established may improve the user experience of using second computing device 120, as user may not have to wait for second connection 152 to be established before receiving an indication of the incoming communication or the option to answer the incoming communication. In another example, the use of second connection 152 only when needed (e.g., to carry data of an incoming communication) may reduce the power consumption of first computing device 102 and second computing device 120 and thereby extend the battery life of both computing devices.
[0040] FIG. 2 illustrates an example computing device 202 that generates messages regarding incoming communications, in accordance with techniques of this disclosure. Computing device 202 may be similar to first computing device 102 as illustrated in FIG. 1 and provide similar functionality.
[0041] Computing device 202 includes one or more of user interface components 204 (hereinafter “UIC 204”). UIC 204 may be similar to UIC 104 as illustrated in FIG. 1 and provide similar functionality. UIC 204 may include one or more input devices, such as input components 230, and one or more output components, such as output components 232. Input components 230 may include one or more devices capable of receiving input from a user of computing device 202, such as touchscreen, mice, keyboards, and microphones, among other devices capable of receiving user input. Output components 232 may include one or more devices capable of generating output, such as displays, speakers, haptic engines, and LEDDocket No.: 1333-889WO01 indicators, among other components. For example, output components 232 may include a display that displays GUIs generated by computing device 202.
[0042] Computing device 202 may include one or more of communications units 206. Communication units 206 may include one or more components that enable communication with other computing devices, such as antennas, modems, radios, and network interfaces, among other components. Computing device 202 may use one or more of communication units 206 to communicate via one or more networks, such as non-terrestrial communication networks and / or terrestrial cellular networks.
[0043] Computing device 202 includes one or more of processors 210. Processors 210 may include one or more types of processors and / or processing circuitry that includes mobile processors, desktop processors, integrated processors, reduced instruction set computer (RISC) processors, application processors, display controllers, sensor hubs, and / or any other hardware configured to function as a processing unit and / or processing circuitry. Processors 210 may execute the instructions of one or more software components stored by storage devices 218 and obtained via bus 240.
[0044] Computing device 202 includes bus 240, which may be a hardware and / or software bus of computing device 202. Bus 240 may include one or more hardware and / or software components that interconnect components of computing device 202, such as hardware interconnects, software interconnects, and / or other types of components. For example, bus 240 may connect processors 210 and storage devices 218.
[0045] Computing device 202 includes one or more of storage devices 218. Storage devices 218 may include one or more types of storage such as hard disk drives, solid state drives (e.g., SATA drives, NVMe drives, eMMC drives, etc.), magnetic tape drives, remote storage (e.g., cloud storage), and / or other types of storage. Storage devices 218 may store information such as instructions and / or other data of software components of computing device 202, such as an operating system of computing device 202. For example, storage devices 218 may include a non-transitory computer-readable storage medium encoded with instructions that, when executed, cause one or more of processors 210 to perform actions of one or more software components stored by storage devices 218. Storage devices 218 may include a computer program product that includes instructions that cause processors 210 to perform one or more actions of the instructions. For example, storage devices 218 may include an external flash drive that includes the instructions of one or more software components of storage devices 218.Docket No.: 1333-889WO01
[0046] Storage devices 218 may include operating system 220 (hereinafter “OS 220”) OS 220 may be an operating system of computing device 202 that provides an execution environment for one or more software components of computing device 202. For example, OS 220 may provide an execution environment for one or more applications of computing device 202.
[0047] Storage components 232 include communication application 222. Communication application 222 may include one or more applications executed by processors 210 that provide a variety of functionality for a user of computing device 202. Communication application 222 may facilitate communications with other computing devices. For example, communication application 222 may be a dialer application and enable voice and video communication with other computing devices.
[0048] Communication application 222 may receive indications of incoming communications, such as audio and / or video calls, from other computing devices. For example, calling device 142 may provide an indication of an incoming call to computing device 202 via network 140. Computing device 202 may use communication application 222 to process the indications of incoming communications. In an example, computing device 202 receives an indication of an incoming phone call via communication units 206. Computing device 202 processes the indication using communication application 222.
[0049] Communication application 222 may generate UIs that include visual indications of incoming communications for display via output components 232. Communication application 222 may generate a UI based on an indication of an incoming communication, where the UI includes an identifier of the calling user, a visual element that corresponds to accepting the incoming communication, a visual element that corresponds to declining the incoming communication, and / or other visual elements. Communication application 222 may cause output components 232 to output the UIs for display.
[0050] Communication application 222 may facilitate the acceptance of a call in response to receiving user input consistent with the acceptance. In an example, input components 230 receive user input consistent with a user accepting an incoming communication. Input components 230 provide an indication of the acceptance to communication application 222. Based on the indication of acceptance, communication application 222 facilitates communications (e.g., a phone or video call) between computing device 202 and the calling computing device, such as calling device 142 as illustrated in FIG. 1. While discussed with respect to calling device 142, computing device 202 may receive incoming communications from one or more devices other than calling device 142.Docket No.: 1333-889WO01
[0051] Communication application 222 may process the indications of incoming communications and provide the indications to another computing device communicatively connected to computing device 202 via a first connection (e.g., BLE) provided by communication units 206. Computing device 202 may be communicatively connected to one or more other computing devices (e.g., second computing device 120) via one or more connections (e.g., first connection 150 and second connection 152 as illustrated in FIG. 1). For example, computing device 202 may be communicatively connected to second computing device 120 via first connection 150 that is a comparatively low power connection (e.g., BLE) and communicatively connected via a second, comparatively higher power connection (e.g., BLUETOOTH Classic) when needed. While described with respect to second computing device 120, computing device 202 may communicate with one or more computing devices other than second computing device 120.
[0052] Storage devices 218 includes connection module 208, which may be a software component of computing device 202 that manages connections between computing device 202 and second computing device 120. Connection module 208 may be similar to connection module 108 as illustrated in FIG. 1. Connection module 208 may facilitate the establishment and termination of connections between computing device 202 and other computing devices, such as second computing device 120. For example, connection module 208 may facilitate the establishment of a second type of connection to second computing device 120 while a first, preexisting connection (e.g., first connection 150) between computing device 202 and second computing device 120 is maintained.
[0053] Communication application 222 may generate a message for second computing device 120 regarding an incoming communication. Communication application 222 may provide the generated message that includes information regarding the incoming communication (e.g., an identifier of a caller, a phone number of the caller, the type of application that is being used to call computing device 202 (e.g., a dialer application, a video messaging application), and / or other information. Communication application 222 may cause computing device 202 to provide the message to second computing device 120 while a second connection is being established to avoid a delay between the receipt of the incoming communication and second computing device 120 being notified of the incoming communication (e.g., to avoid a delay caused by first waiting for second connection 152 to be established before the message is sent). In an example, computing device 202 generates a message that includes an indication of an incoming communication and an identifier of the caller. Computing device 202 sends the message to second computing device 120 via firstDocket No.: 1333-889WO01 connection 150 to cause second computing device 120 to alert a user of the incoming communication.
[0054] In some examples, connection module 208 generates the message (e.g., indication of the incoming communication) in accordance with a GATT that defines a process for communicating the message. Connection module 208 may define a GATT for indicating incoming communications to other computing devices (e.g., second computing device 120) that includes requirements and formatting for sending the message. For example, connection module 208 may use a GATT defined by connection module 208 to communicate a message regarding an incoming communication to second computing device 120.
[0055] Second computing device 120 may process the message received from computing device 202 and perform one or more actions. Second computing device 120 may generate a user interface that includes an indication of an incoming communication in response to receiving a GATT message from first computing device 102, where the user interface includes a visual indication of the incoming communication. In an example, second computing device 120 receives a GATT message from computing device 202 that includes an indication of an incoming communication. Second computing device 120 generates and outputs a user interface that includes a visual indicator corresponding to accepting the incoming communication, a visual indicator corresponding to declining the incoming communication, and a visual indicator of the identity of the caller.
[0056] Connection module 208 initiates the establishment of second connection 152 between computing device 202 and second computing device 120. Connection module 208 may begin establishing second connection 152 in response to receiving the indication of the incoming communication and / or prior to receiving any response from second computing device 120 (e.g., before second computing device 120 provides an indication of accepting the incoming communication). Connection module 208 may establish second connection 152 to enable computing device 202 to relay the incoming communication to second computing device 120. For example, connection module 208 may establish a BLUETOOTH Classic connection in adherence with the BLUETOOTH Hands-Free Profile with second computing device 120 to enable second computing device 120 to operate as a BLUETOOTH Hands-Free device communicatively connected to computing device 202. Connection module 208 may concurrently establish second connection 152 while the message regarding the incoming communication is sent to second computing device 120 via first connection 150.
[0057] Second computing device 120 may generate an acceptance indication in response to user input consistent with acceptance of the incoming communication. Second computingDocket No.: 1333-889WO01 device 120 may receive user input consistent with a user of second computing device 120 selecting a user element that corresponds to accepting the incoming communication (e.g., an “accept call” visual element). In response to receiving the user input, second computing device 120 generates an acceptance indication that is indicative of the acceptance of the incoming communication and provides the acceptance indication to computing device 202.
[0058] Computing device 202 may receive an acceptance indication from second computing device 120 that is indicative of acceptance of the incoming communication at second computing device 120. Computing device 202 may receive the acceptance indication via first connection 150 and / or second connection 152. For example, computing device 202 may receive an acceptance indication generated by second computing device 120 in response to the receipt of user input consistent with the acceptance of the incoming communication at second computing device 120.
[0059] Computing device 202 may provide the acceptance indication to one or more components, such as communication application 222 and / or connection module 208, for the components to process the acceptance indication. In an example, computing device 202 receives an acceptance indication from second computing device 120. Computing device 202 provides the acceptance indication to connection module 208 for connection module 208 to relay the incoming communication to second computing device 120. In addition, connection module 208 causes computing device 202 to provide calling device 142 with an indication that the incoming communication has been accepted.
[0060] Computing device 202 relays the data of the call session to second computing device 120 to enable the call session to be conducted via second computing device 120. Computing device 102 may establish a call session and relay data regarding the call between second computing device 120 and calling device 142. In an example, computing device 202 establishes a call session with calling device 142. As part of the call session, computing device 202 receives audio data from calling computing device 142. Computing device 202 relays the audio data via second connection 152 to second computing device 120 for the audio to be outputted by second computing device 120 as part of the call session.
[0061] Second computing device 120 may generate audio and / or visual data captured by one or more components as well as output audio and / or video data as part of the call session. Second computing device 120 may output audio and / or video data relayed by computing device 202 from calling device 142 to a user. In addition, second computing device 120 may generate audio and / or video data and provide the data to computing device 202 for computing device 202 to relay to calling device 142. For example, second computing device 120 mayDocket No.: 1333-889WO01 generate audio data based on input from a user and provide the audio data to second computing device 202 via second connection 152.
[0062] Computing device 202 may relay or otherwise provide data received from second computing device 120 to calling computing device 142. Computing device 202 may relay response data that includes audio and / or video data generated by second computing device 120 to calling device 142 as part of facilitating the call session. For example, computing device 202 may relay data back and forth between second computing device 120 and calling device 142 during the call session to enable a user of second computing device 120 to conduct a communication (e.g., a call) with calling device 142.
[0063] Second computing device 120 may generate a termination indication in response to receiving user input consistent with declining an incoming communication or hanging up an ongoing call. Second computing device 120 may receive user input consistent with interaction with one or more visual elements of a UI generated by second computing device 120, where the visual elements correspond to declining an incoming communication or hanging up (e.g., terminating) an ongoing call. In an example, second computing device 120 receives user input consistent with selection of a visual element corresponding to the hanging up of a call. Second computing device 120 generates a termination indication and provides the termination indication to computing device 202. Computing device 202 may use one or more components, such as connection module 208, to process the termination indication and terminate the call session.
[0064] Computing device 202 may terminate a call session in response to receiving an indication from second computing device 120 and / or calling device 142. Computing device 202 may receive a termination indication and process the termination indication using one or more components, such as communication application 222. In an example, computing device 202 receives a termination indication from second computing device 120 indicative of user input that is consistent with requesting the termination of a call session. Computing device 202 provides the termination indication to communication application 222 for communication application 222 to terminate the call session. Communication application 222 terminates the call session and provides an indication to second computing device 120 and calling device 142 that the call session has been terminated.
[0065] Connection module 208 may terminate second connection 152 based on the termination of the incoming communication and / or ongoing call session. Connection module 208 may determine that the incoming communication has been terminated based on one or more factors that include receiving a rejection indication from second computing device 120Docket No.: 1333-889WO01(e.g., that a user of second computing device 120 has rejected the incoming communication, receiving user input via input components 230), a termination indication from calling computing device 142 that the call has been canceled, a termination indication from second computing device 120, and / or other indications.
[0066] Connection module 208 may terminate second connection 152 by providing a message regarding the termination to second computing device 120 to alert second computing device 120 that second connection 152 is to be terminated. Connection module 208 may generate a GATT message that includes an indication regarding the termination (e.g., a flag or other indicator) within the message and provide the message to second computing device 120. For example, connection module 208 may cause computing device 202 to provide a message regarding the termination of second connection 152 to second computing device 120 in accordance with the protocol of second connection 152 (e.g., send a message in accordance with a prescribed termination procedure of second connection 152). Second computing device 120 may receive the message and perform one or more actions as part of terminating second connection 152 (e.g., executing one or more actions in accordance with the prescribed termination procedure of second connection 152) In an example, computing device 202 receives an indication from second computing device 120 that the communication has been terminated. Connection module 208 processes the indication and determines that second connection 152 should be terminated. Connection module 208 provides a message to second computing device 120 regarding the termination of second connection 152 and terminates second connection 152. Connection module 208 may terminate second connection 152 while maintaining first connection 150.
[0067] FIG. 3 illustrates an example computing device 320 that alerts a user regarding an incoming communication, in accordance with one or more aspects of this disclosure. Computing device 320 may be similar to second computing device 120 as illustrated in FIG.1 and provide similar functionality. For example, computing device 320 may communicate with a first computing device, such as first computing device 102 as illustrated in FIG. 1 and / or computing device 202 as illustrated in FIG. 2.
[0068] Computing device 320 includes one or more of user interface components 322 (hereinafter “UIC 322”). UIC 322 may be similar to UIC 122 as illustrated in FIG. 1 and provide similar functionality. UIC 322 may include one or more input devices, such as input components 306, and one or more output components, such as output components 308. Input components 306 may include one or more devices capable of receiving input from a user of computing device 320, such as touchscreen, mice, keyboards, and microphones, among otherDocket No.: 1333-889WO01 devices capable of receiving user input. Output components 308 may include one or more devices capable of generating output, such as displays, speakers, haptic engines, and LED indicators, among other components. For example, output components 308 may include a display that displays GUIs generated by computing device 320.
[0069] Computing device 320 may include one or more communications units 324. Communication units 324 may include one or more components that enable communication with other computing devices, such as antennas, modems, radios, and network interfaces, among other components. Computing device 320 may use one or more of communication units 206 to communicate via one or more networks with other computing devices, such as first computing device 102. Computing device 320 may have similar or different communications units that first computing device 102. In some examples, computing device 320 may not include a cellular wireless radio similar to that of first computing device 102.
[0070] Computing device 320 includes one or more of processors 302. Processors 302 may include one or more types of processors and / or processing circuitry that includes mobile processors, desktop processors, integrated processors, reduced instruction set computer (RISC) processors, application processors, display controllers, sensor hubs, and / or any other hardware configured to function as a processing unit and / or processing circuitry. For example, processors 302 may include mobile processors configured to minimize power consumption of computing device 320. Processors 302 may execute the instructions of one or more software components stored by storage devices 310. Processors 302 may be connected to one or more components of computing device 320 via bus 330.
[0071] Computing device 320 includes bus 330, which may be a hardware and / or software bus of computing device 320. Bus 330 may include one or more hardware and / or software components that interconnect components of computing device 320, such as hardware interconnects, software interconnects, and / or other types of components. For example, bus 330 may connect processors 302 and storage devices 310.
[0072] Computing device 202 includes one or more of storage devices 310. Storage devices 310 may include one or more types of storage such as hard disk drives, solid state drives (e.g., SATA drives, NVMe drives, eMMC storage, etc.), magnetic tape drives, remote storage (e.g., cloud storage), and / or other types of storage. Storage devices 310 may store information such as instructions and / or other data of software components of computing device 320, such as an operating system of computing device 320. For example, storage devices 310 may include a non-transitory computer-readable storage medium encoded with instructions that, when executed, cause one or more of processors 302 to perform actions of one or moreDocket No.: 1333-889WO01 software components stored by storage devices 310. Storage devices 310 may include a computer program product that includes instructions that cause processors 302 to perform one or more actions of the instructions. For example, storage devices 310 may include an external flash drive that includes the instructions of one or more software components of storage devices 310.
[0073] Storage devices 310 may include operating system 312 (hereinafter “OS 312”) OS 312 may be an operating system of computing device 320 that provides an execution environment for one or more software components of computing device 320. For example, OS 312 may be a mobile operating system that provides an execution environment for one or more applications of computing device 320.
[0074] Storage components 310 include communication application 314. Communication application 314 may be a companion application of communication application 222 as illustrated in FIG. 2. For example, communication application 314 may be a mobile application, such as a nano-application, that communicates with communication application 222 and that enables functionality related to communication application 222 for computing device 320.
[0075] First computing device 102 may generate messages regarding incoming communications and provide the messages to computing device 320 via first connection 150. First computing device 102 may generate one or more GATT messages that include one or more types of indications (e.g., flags) regarding an incoming communication as well as data regarding the incoming communication (e.g., caller ID) in response to receiving an incoming communication and provide the one or more GATT messages to computing device 320. In an example, first computing device 102 receives an indication of an incoming communication via network 140. First computing device 102 generates a GATT message that includes an indication of the incoming communication and provides the GATT message to computing device 320.
[0076] Communication application 314 may process messages regarding incoming communications received from first computing device 102. Computing device 320 may receive indications of incoming communications, such as a message regarding the incoming communication, from computing device 102 via first connection 150 where the message includes information regarding the incoming communication that includes an identifier of a caller, a phone number, and / or other information from first computing device 102. In an example, communication units 324 receive a message from first computing device 102 via first connection 150, where the message includes an indication of the incomingDocket No.: 1333-889WO01 communication and is configured to cause computing device 320 to “ring” or otherwise alert a user to the incoming communication.
[0077] First computing device 102 may establish second connection 152 with computing device 320 in response to the incoming communication. First computing device 102 may generate and send one or more messages to computing device 320 to facilitate the establishment of second connection 152. For example, first computing device 102 may send one or more messages in accordance with BLUETOOTH Classic protocol to establish second connection 152 as adhering to the BLUETOOTH Classic Hands-Free Profile.
[0078] Communication application 314 may receive the messages regarding incoming communications from first computing device 102 while first computing device 102 establishes a connection that supports relaying call data. Communication application 314 may receive an incoming message via first connection 150 in addition to a request from first computing device 102 to establish second connection 152. In an example, communication application 314 receives an indication of an incoming communication that includes a request to establish second connection 152 to support the relaying of the incoming communication to computing device 320. Communication application 314 may process the messages and generate a user interface for display or otherwise alert a user to the incoming communication.
[0079] Computing device 320 may facilitate the establishment of a second connection, such as second connection 152, with first computing device 102. Computing device 320 may perform one or more actions as part of establishing second connection 152 with first computing device 102. For example, computing device 320 may exchange one or more messages (e.g., pairing handshake messages) with first computing device 102 to facilitate the establishment of second connection 152. Computing device 320 may perform the action in response to first computing device 102 initiating the establishment of second connection 152. In some examples, computing device 320 may begin facilitating the establishment of second connection 152 in response to receiving the message regarding the incoming communication from first computing device 102. Computing device 320 maintains first connection 150 with computing device 102 while establishing second connection 152 and while first connection 150 is active. Computing device 320 may display an indication of the incoming communication while second connection 152 is being established.
[0080] Communication application 314 may cause computing device 320 to alert a user to the incoming communication in response to receiving a message, such as a GATT message, or other indication from first computing device 102. Communication application 314 may cause output components 308 to generate output, such as audio or visual output, in responseDocket No.: 1333-889WO01 to the receipt of a message or indication regarding an incoming communication. For example, communication application 314 may generate a visual indication of the incoming communication and cause computing device 320 to output the indication for display. Communication application 314 may cause output components 308 to generate output based on information included in the message. For example, communication application 314 may cause output components to generate a UI that includes a visual indicator of the identity of a caller, output audio based on the identity of the caller (e.g., a custom ringtone for a particular individual), and / or otherwise use information included in the message.
[0081] Communication application 314 may generate a UI that includes visual elements corresponding to functionality of communication application in response to receiving a message from first computing device 102. Communication application 314 may generate a UI that includes visual elements that correspond to call acceptance, call declining, changing audio input source (e.g., switching to connected headphones, speaker mode, etc.), muting / unmuting, and / or other functionality. Communication application 314 may cause output components 308 to output the UI.
[0082] Communication application 314 may receive indications of user input that corresponds to one or more visual elements of the UI generated by computing device 320. Input components 306 may receive user input consistent with user interaction with one or more visual elements and provide an indication of the user input to communication application 314. Input components 306 may receive user input consistent with a user accepting or declining an incoming communication.
[0083] Computing device 320 generates and provides an acceptance indication to first computing device 102 in response to user input consistent with acceptance of the incoming communication. Computing device 320 may generate an acceptance indication that is indicative of acceptance of the incoming communication and provide the generated acceptance indication to first computing device 102. Computing device 320 may provide the acceptance indication to indicate to computing device 102 that a user has indicated that the call should be answered using computing device 320 (e.g., instead of answering on first computing device 102). In an example, computing device 320 receives user input consistent with acceptance of an incoming communication. Computing device 320 generates an acceptance indication and provides the acceptance indication to first computing device 102. Computing device 320 may provide the acceptance indication via one or more connections between computing device 320 and first computing device 102.Docket No.: 1333-889WO01
[0084] First computing device 102 may establish a call session in response to receiving the acceptance indication from computing device 320. First computing device 102 may establish a call session, such as an audio call or video call session, with calling device 142 over network 140. In an example, computing device 320 provides an acceptance indication to first computing device 102. First computing device 102 establishes a call session with calling device 142 over network 140 and provides an indication to computing device 320 that the call session has been established.
[0085] Computing device 320 may generate a placeholder UI to indicate to a user that the incoming communication will be provided to computing device 320 once second connection 152 has been established. Computing device 320 may generate a placeholder UI as including one or more indications that the incoming communication is being connected (e.g., “Connecting. . .”) when computing device 320 has received user input consistent with the acceptance of the incoming communication but second connection 152 has not yet been established. Computing device 320 may generate the placeholder UI after computing device 320 has received user input consistent with acceptance of the incoming communication and while computing device 320 and first computing device 102 are establishing second connection 152. In an example, computing device 320 receives user input consistent with acceptance of an incoming communication prior to the establishment of second connection 152. Computing device 320 generates a placeholder user interface that includes an indication that the incoming communication is being connected and outputs the placeholder user interface via output components 308.
[0086] First computing device 102 may provide data regarding a call session established based on the incoming communication. First computing device 102 may establish a call session in response to receiving the incoming communication and receive audio and / or video data from calling device 142 as a part of the call session. First computing device 102 may provide the audio and / or video data to computing device 320 via second connection 152.
[0087] Computing device 320 outputs data of the incoming communication via output components 308 in response to receiving the data via second connection 152. Computing device 320 may receive data of the call session (e.g., audio data, video data, etc.) from first computing device 102 and output the data via output components 308. For example, computing device 320 may receive audio data of the incoming communication and output the audio data via a speaker and / or haptic engine of output components 308.
[0088] Computing device 320 may generate response data based on user input to input components 306. Computing device 320 may generate response data that include audioDocket No.: 1333-889WO01 and / or video data, among other types of data and provide the response data to first computing device 102 via second connection 152 for first computing device 102 to relay to calling device 142. For example, computing device 320 may generate and provide the response data to enable a user of computing device 320 to carry on an ongoing video or audio call with a user of calling device 142.
[0089] First computing device 102 may relay the response data received from computing device 320 to calling device 142. First computing device 142 may relay response data that includes audio and / or video data to calling device 142 to facilitate the call session. For example, first computing device 102 may relay data between calling device 142 and computing device 320 to facilitate the call session.
[0090] Computing device 320 may generate a termination indication that is indicative of termination of the incoming communication based on user input. Computing device 320 may provide the termination indication to first computing device 102 in response to receiving user input consistent with ending the incoming communication (e.g., user input consistent with a user selecting a “hang-up icon”). In addition, computing device 320 may provide the termination indication in response to receiving user input consistent with declining the incoming communication (e.g., user input consistent with a user selecting a “decline call” icon).
[0091] In some examples, computing device 320 may receive termination indications regarding the termination of second connection 152 from first computing device 102. First computing device 102 may generate a termination indication based on one or more factors, such as receiving an indication regarding the termination of a call session from calling device 142, receiving user input consistent with requesting termination of the call session, loss of connection to network 140, and / or other factors. Computing device 320 may receive termination indications generated by first computing device 102 that are indicative of the termination of the call session.
[0092] First computing device 102 may terminate second connection 152 based on the termination of the incoming communication and / or ongoing call session. First computing device 102 may determine that the incoming communication / ongoing call session has been terminated and perform one or more actions in response to the termination. First computing device 102 may generate a termination indication and provide the termination indication to computing device 320. In addition, first computing device 102 may exchange one or more messages with computing device 320 as part of terminating second connection 152.Docket No.: 1333-889WO01
[0093] Computing device 320 may facilitate the termination of second connection 152 in response to receiving the termination indication and / or other indication from first computing device 102. Computing device 320 may exchange one or more messages, such as a message prescribed by BLUETOOTH Classic, to terminate second connection 152. Computing device 320 may maintain first connection 150 with first computing device 102 while second connection 152 is being terminated and while second connection 152 is inactive.
[0094] Computing device 320 may generate a user interface that includes one or more visual indications that the call session and / or second connection 152 have been terminated.Computing device 320 may generate the user interface and cause output components 308 to output the user interface for display. In an example, computing device 320 receives a termination indication from first computing device 102. Computing device 320 generates a user interface that includes a visual indication that an ongoing call session has been terminated. Computing device 320 outputs the user interface via output components 308 for display to a user of computing device 320.
[0095] FIGS. 4A-4C illustrate example graphical user interfaces regarding an incoming communication displayed by a computing device, in accordance with techniques of this disclosure. For the purposes of clarity, FIGS. 4A-4C are described in the context of FIG. 1.
[0096] In the example of FIG. 4 A, second computing device 120 generates UI 430 A. Second computing device 120 may generate UI 430 A as an instance of UI 130 in response to receiving a message regarding an incoming communication from first computing device 102. First computing device 102 may generate a message regarding an incoming communication (such as an incoming phone call from calling device 142) and provide the message to second computing device 102 via first connection 150. Second computing device 120 may receive the message from first computing device 102 via first connection 150 as including an indication of the incoming communication, an identifier of a caller, and / or other information. In some examples, second computing device 120 may receive the message as also including a request to establish second connection 152. In addition, second computing device 120 may receive a message that is configured to cause second computing device 120 to “ring” and alert a user to the incoming communication (e.g., generate auditory and / or visual indications of the incoming communication). In some examples, second computing device 102 may receive a GATT message regarding an incoming communication that is generated by first computing device 102, where the GATT defines a process for providing indications of incoming communications via first connection 150.Docket No.: 1333-889WO01
[0097] First computing device 102 may establish second connection 152 with second computing device 120. First computing device 102 may exchange one or more messages with second computing device 120 to establish second connection 152. For example, first computing device 102 and second computing device 120 may exchange messages in accordance with a procedure prescribed by the BLUETOOTH Classic protocol to establish a BLUETOOTH Classic connection that adheres to the Hands-Free Profile.
[0098] Second computing device 120 may generate and output UI 430 A while second connection 152 is established between first computing device and second computing device 120. Second computing device 120 may output UI 430A to alert a user of the incoming communication without requiring the establishment of second connection 152. In an example, second computing device 120 outputs UI 430 A in response to receiving the message from first computing device 102 and prior to and / or while first computing device 102 and second computing device 120 establish second connection 152.
[0099] Second computing device 120 generates UI 430 A as including caller field 402 A, which may be a visual element of UI 430A that includes textual and / or visual indications of an identity of a caller. In the example of FIG. 4 A, caller field 402 A includes the text “CALL FROM CALLER1”. While illustrated as including text, second computing device 120 may generate caller field 402A as including other or different visual elements, such as a picture of a caller. Second computing device 120 may generate caller field 402 A based on information received from first computing device 102.
[0100] Second computing device 120 may generate UI 430A as including one or more visual elements that correspond to functionality of second computing device 120. In the example of FIG. 4 A, second computing device 120 generates UI 430 A as including acceptance element 404A as corresponding to accepting an incoming communication and decline element 406A as corresponding to declining an incoming communication. Second computing device 120 may perform one or more actions in response to receiving user input consistent with selection of acceptance element 404A (e.g., accepting an incoming communication) or decline element 406A (e.g., declining an incoming communication).
[0101] Second computing device 120 causes one or more output components of UIC 122 to output UI 430A for display. Second computing device 120 may generate UI 430A and cause a display component of UIC 122 to output UI 430A for display to a user. In some examples, second computing device 120 may generate an auditory indication in addition to or in lieu of generating UI 430 A.Docket No.: 1333-889WO01
[0102] In the example of FIG. 4B, second computing device 120 generates UI 43 OB in response to receiving user input consistent with acceptance of an incoming communication. UI 430B may be an instance of UI 430A generated by second computing device 120 and may be referred to as a “placeholder UI” throughout. Second computing device 120 may receive one or more types of user input consistent with acceptance of the incoming communication, such as user input consistent with selecting acceptance element 404A of UI 430A, verbal user input (e.g., a spoken command to accept the incoming communication), and / or other type of user input. In an example, second computing device 120 receives user input consistent with selection of acceptance element 404 A. Second computing device 120 generates UI 430B in response to receiving the user input.
[0103] Second computing device 120 generates an acceptance indication in response to receiving user input consistent with the selection of acceptance element 404A. Second computing device 102 may generate an acceptance indication that is indicative of accepting the incoming communication and provide the acceptance indication to first computing device 102. In an example, second computing device 120 receives user input consistent with the user tapping on acceptance element 404 A. Second computing device 120 processes the user input and determines that the user has provided input consistent with accepting the incoming communication. In response to the user input, second computing device 120 generates an acceptance indication and provides the acceptance indication to first computing device 102.
[0104] Second computing device 120 may generate UI 430B as a placeholder UI when the incoming communication has been accepted but while second connection 152 has yet to be established. Second computing device 120 may determine that second connection 152 has not yet been established (e.g., first computing device 102 may have initiated the establishment of second connection 152 but the incoming communication was accepted prior to the successful establishment of second connection 152). Second computing device 120 may generate UI 430B as a placeholder UI to indicate to a user that the incoming communication was accepted and that second computing device 120 and first computing device 102 are in the process of providing the incoming communication (e.g., to indicate to the user that something is happening).
[0105] Second computing device 120 generates UI 430B as including placeholder indication 408B. Placeholder indication 408B may be a visual element of UI 430B that includes one or more indications of the status of relaying the incoming communication from first computing device 102 to second computing device 120 via second connection 152. While illustrated as including the text “CONNECTING. ..” and a spinning loading wheel, placeholder elementDocket No.: 1333-889WO01408B may include one or more visual elements, text, animations, and / or other types of visual elements. For example, placeholder indication 408B may include the text “Please wait, connection is being established” and an animated loading bar indicative of the progress of establishing second connection 152. Second computing device 120 may output UI 430B via UIC 122 while second connection 152 is being established.
[0106] Second computing device 120 may update UI 43 OB in response to determining that second connection 152 has been established and / or in response to receiving an indication from first computing device 102 that second connection 152 has been established. First computing device 102 may generate and provide an indication to second computing device 120 that second connection 152 has been successfully established. First computing device 102 may provide data regarding a call session (e.g., a call session initiated based on the acceptance of the incoming communication) received from calling device 142 to second computing device 120. For example, first computing device 102 may relay audio data received from calling device 142 to second computing device 120 for second computing device 120 to output to a user.
[0107] In the example of FIG. 4C, second computing device 120 generates UI 430C, which may be an instance of UI 430B and / or UI 430 A. Second computing device 120 may generate UI 430C in response to the establishment of connection 152 between second computing device 120 and first computing device 102, and receiving data of the incoming communication from first computing device 102. For example, first computing device 120 may generate an indication that second connection 152 has been successfully established and provide the indication to second computing device 120. In addition, first computing device 120 may provide data of the call session (e.g., voice and / or video data) via second connection 152 to second computing device 120 Second computing device 120 may output the data while displaying UI 430C.
[0108] Second computing device 120 generates UI 430C as including caller field 402C, communication termination element 410C, mute 412C, and control element 414C. Caller field 402C may be a visual element that includes information regarding the caller associated with the incoming communication. Communication termination element 410C may be a visual element that corresponds to request the termination of the incoming communication. Mute 412 may be a visual element that corresponds to muting / unmuting the output of audio via second computing device 120. Control element 414C may be a visual element that corresponds to requesting second computing device 120 open a menu that includes further control options (e.g., volume adjustment, changing audio output device / mode, etc.).Docket No.: 1333-889WO01
[0109] Second computing device 120 outputs UI 430C for display via UIC 122 in addition to audio / video of the incoming communication. In some examples, second computing device 120 may output UI 430C in a minimized format when displaying video output of the incoming communication. Second computing device 120 may display UI 430C while the incoming communication is ongoing and update UI 430C upon the termination of the incoming communication. In some examples, second computing device 120 may receive user input consistent with the termination of the call session and update UI 430C based on the termination.
[0110] In some examples, first computing device 102 may provide a termination indication to second computing device 120. First computing device 102 may determine that the call session has been terminated and provide an indication to second computing device 120. Second computing device 120 may update UI 430C to include an indication that the call session has been terminated and output the updated instance of UI 430C for display.[OHl] FIG. 5 is a flow chart that illustrates an example operation of computing devices for alerting a user of a computing device of an incoming communication, in accordance with techniques of this disclosure. For the purposes of clarity, FIG. 5 is described in the context of FIG. 1.
[0112] A first computing device, such as first computing device 102, receives an indication of an incoming call (502). First computing device 102 may receive an indication of an incoming call or incoming communication from calling device 142 via network 140. First computing device 102 may receive information regarding the incoming call that includes an identifier of the caller (e.g., a user of calling device 142), type of call (e.g., audio or video), and / or other information. In an example, a modem of communication units 106 receives data from network 140 regarding an incoming phone call from calling device 142. First computing device 102 obtains an indication of the incoming phone call from the modem.
[0113] First computing device 102 sends a message regarding the incoming communication to a second computing device, such as second computing device 120 (5064. Second computing device 120 may be a device (e.g., a smartwatch, fitness tracker, mixed reality glasses / goggles, etc.) associated with first computing device 102 that is communicatively connected to first computing device 102 via one or more connections. First computing device 102 may send the message via first connection 150 that is a comparatively low-power connection (e.g., BLE) compared to a connection that supports the exchange of audio data (e.g., BLUETOOTH Classic) that is maintained between first computing device 102 and second computing device 120. First computing device 102 may send a message that isDocket No.: 1333-889WO01 configured to cause second computing device 120 to “ring” and alert a user of the incoming communication and that includes data regarding the incoming call. For example, first computing device 102 may send a message that includes information regarding the incoming call and instructions to generate output and thereby alert a user of second computing device 120 of the incoming call. First computing device 102 may send a GATT message that includes the indication of the incoming communication and other information regarding the incoming communication to second computing device 120, where the indication may include one or more types of indications (e.g., a flag in the GATT message, instructions to alert a user to the incoming communication, etc.). In an example, first computing device 102 obtains an indication regarding the incoming communication from a modem and generates a GATT message that includes the indication of the incoming communication. First computing device 102 sends the GATT message over first connection 150 to second computing device 120.
[0114] Second computing device 120 outputs a ringing graphical user interface (GUI) (506). Second computing device 120 may output the ringing GUI, such as UI 430 A as illustrated in FIG. 4A, as including one or more visual elements that include an identifier of the caller, a phone number of the caller, a spam warning (e.g., an indication that a call may be spam), and / or other visual elements. In addition to the GUI, second computing device 120 may output audio indication of the incoming call (e.g., actual ringing). Second computing device 120 may output the ringing GUI while one or more connections are established between second computing device 120 and first computing device 102.
[0115] First computing device 102 initiates second connection 152 between first computing device 102 and second computing device 120 (508). First computing device 102 may initiate the establishment of second connection 152 to enable first computing device 102 to relay the incoming call to second computing device 120 (e.g., as first connection 150 may not support the relaying of such information due to bandwidth and / or protocol limitations). First computing device 102 may establish second connection 152 as a BLUETOOTH Classic connection as adhering to the Hands-Free Profile to enable second computing device 120 to operate as a BLUETOOTH Hands-Free device.
[0116] Second computing device 120 determines whether the incoming communication has been answered on second computing device 120 (510). Second computing device 120 may determine whether a user has provided input consistent with acceptance of the incoming call at second computing device 120. In addition, second computing device 120 may determine whether an indication has been received from first computing device 102 indicative of theDocket No.: 1333-889WO01 incoming call being answered on first computing device 102 instead of second computing device 120.
[0117] First computing device 102 terminates the establishment or setup of second connection 152 (512) in response to the incoming communication not being answered on second computing device 120 (NO-branch of 510). First computing device 102 may terminate the establishment process when second connection 152 has not yet been established or may terminate second connection 152 when second connection 152 has been established prior to the incoming call not being answered on second computing device 120. In an example, first computing device 102 initiates the establishment of second connection 152 with second computing device 120 in response to the incoming call. Second computing device 120 receives user input consistent with declining the incoming communication and provides an indication of the user input to first computing device 102. First computing device 102 receives the indication from second computing device 120 that the incoming call has been declined on second computing device 120. First computing device 102 terminates the process of establishing second connection 152 in response to receiving the indication.
[0118] Second computing device 120 determines whether second connection 512 has been established (514). Second computing device 120 may determine whether second connection 152 has been established in response to determining that the incoming call has been answered on second computing device 120 (YES-branch of 510). Second computing device 120 may determine that second connection 512 has been established based on one or more factors that include receiving an indication of successful establishment from first computing device 102, receiving an indication of successful establishment from communication components of second computing device 120, and / or other factors.
[0119] Second computing device 120 displays a placeholder UI (516). Second computing device 120 may display the placeholder UI 130 based on determining that second connection 152 has not been established (NO-branch of 514). Second computing device 120 may display the placeholder UI (e.g., a UI such as UI 430B as illustrated in FIG. 4B) to indicate to a user that the call will be answered via second computing device 120 but that second connection 152 has not yet been established. In some examples, first computing device 102 may cause second computing device 120 to generate the UI as including the placeholder indication in response to determining that second connection 152 has not been established and that an acceptance indication has been received from second computing device 120.
[0120] First computing device 102 relays the call to second computing device 120 (518). First computing device 102 may relay the call based on second connection 152 beingDocket No.: 1333-889WO01 established between first computing device 102 and second computing device 120 (YES- branch of 514). In addition, first computing device 102 may relay the call based on receiving an acceptance indication from second computing device 120. For example, first computing device 102 may relay the call as part of a call session in response to receiving a GATT message from second computing device 120 that includes the acceptance indication and based on determining that second connection 152 has been established. First computing device 102 relays the call via second connection 152 for second computing device 120 to output data regarding the call (e.g., output audio or video data). As part of relaying the call, first computing device 102 may relay data received from second computing device 120 (e.g., response data that includes audio or video data) via second connection 152 to calling device 142. First computing device 102 may relay data of the call between second computing device 120 and calling device 142 to facilitate the call.
[0121] Second computing device 120 outputs a call UI (520). Second computing device 120 may output the call UI while the call session is ongoing and cease displaying the call UI based on the termination of the call. Second computing device 120 may output a call UI, such as UI 430C as illustrated in FIG. 4C, that includes one or more visual elements that correspond to functionality of second computing device 120 (e.g., hanging up the call, muting / unmuting the call, changing audio output device, etc.). In some examples, first computing device 102 causes second computing device 120 to generate the UI as including information regarding the incoming communication to replace the placeholder indication.
[0122] FIG. 6 is a flow chart that illustrates an example operation of a computing device in alerting a of a computing device of an incoming communication, in accordance with techniques of this disclosure. For the purposes of clarity, FIG. 6 is described in the context of FIG. 1.
[0123] In response to an incoming communication, a first computing device, such as first computing device 102, sends an indication of the incoming communication to a second computing device, such as second computing device 120 that is communicatively connected to first computing device 102 via a first connection, such as first connection 150 (602). First computing device 102 may receive an incoming communication (e.g., a video or phone call) from calling device 142 via network 140. First computing device 102 and second computing device 120 may be communicatively connected via first connection 150, which may be a relatively low power connection (e.g., BLE) and may exchange data using first connection 150 to minimize power consumption by both devices (e.g., using the relatively low powerDocket No.: 1333-889WO01 consumption of first connection 150 to communicate data instead of a type of connection with comparatively higher power consumption).
[0124] First computing device 102 establishes a second connection, such as second connection 152, with second computing device 120 that is a different type of connection from first connection 150 (604). First computing device 102 maintains first connection 150 in conjunction with second connection 152. In addition, second computing device 120 displays a visual indication of the incoming communication while second connection 152 is being established. First computing device 102 may send a message to second computing device 120 to cause second computing device 120 to output an indication of the incoming communication (e.g., to cause second computing device 120 to “ring” or otherwise alert a user to the incoming communication while second connection 152 is being established).
[0125] In response to receiving an acceptance indication from second computing device 120, first computing device 102 relays the incoming communication to second computing device 120 via second connection 152 (606). First computing device 102 may receive an acceptance indication from second computing device 120 that is indicative of a user accepting the incoming communication via second computing device 120. For example, first computing device 102 may receive a GATT message that includes the acceptance indication from second computing device 120 via first connection 150. First computing device 102 may relay data regarding the incoming communication (e.g., audio and / or video data) between calling device 142 and second computing device 120 to enable a user to conduct the communication using second computing device 120.
[0126] The following examples summarize certain aspects of the techniques of this disclosure:
[0127] Example 1 : A method includes in response to receiving an incoming communication, sending, by a first computing device, an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establishing, by the computing device, a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relaying, by the first computing device, the incoming communication to the second computing device via the second connection.Docket No.: 1333-889WO01
[0128] Example 2: The method of example 1, further includes causing, by the first computing device, the second computing device to generate a user interface that includes an indication of the incoming communication via the first connection prior to the establishment of the second connection.
[0129] Example 3: The method of any of examples 1 and 2, further includes in response to determining that the second connection has not been established and that the acceptance indication has been received, causing, by the first computing device, the second computing device to generate a user interface that includes a placeholder indication.
[0130] Example 4: The method of example 3, further includes in response to determining that the second connection has been established, causing, by the first computing device, the second computing device to generate the user interface as including information regarding the incoming communication to replace the placeholder indication.
[0131] Example 5: The method of any of examples 1 through 4, further includes receiving, by the first computing device, the acceptance indication as indicative of user input consistent with acceptance of the incoming communication at the second computing device; and responsive to establishing the second connection, connecting, by the first computing device, the incoming communication.
[0132] Example 6: The method of any of examples 1 through 5, wherein the first connection is a BLUETOOTH Low Energy connection, wherein the second connection is a BLUETOOTH Classic connection, and wherein establishing the second connection comprises establishing the BLUETOOTH Classic connection in adherence with BLUETOOTH Hands-Free Profile.
[0133] Example 7: The method of any of examples 1 through 6, wherein the indication of the incoming communication is a generic attribute profile message that includes information regarding the incoming communication.
[0134] Example 8: The method of any of examples 1 through 7, wherein relaying the incoming communication to the second computing device further comprises: obtaining, from the second computing device, response data regarding audio or video data generated by the second computing device via the second connection.
[0135] Example 9: The method of example 8, wherein the incoming communication originates from a calling device, the method further includes relaying, by the first computing device, the response data to the calling device.Docket No.: 1333-889WO01
[0136] Example 10: A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause at least one processor of a first computing device to perform the method of any of examples 1-9.
[0137] Example 11 : A computer program product, configured with instructions that, when executed, cause one or more processors of a computing device to perform the method of any of examples 1-9.
[0138] Example 12: A first computing device includes memory; and at least one processor in communication with the memory and configured to: in response to receiving an incoming communication, send an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection.
[0139] Example 13: The first computing device of example 12, wherein the at least one processor is configured to perform the method of any of examples 1-9.
[0140] Example 14: A system includes a first computing device, wherein the first computing device is communicatively connected to a second computing device via a first connection, and wherein the first computing device is configured to: in response to receiving an incoming communication, send an indication of the incoming communication to the second computing device via the first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, and wherein the first connection is maintained in conjunction with the second connection; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection; and the second computing device, wherein the second computing device is configured to: in response to receiving the indication of the incoming communication from the first computing device via the first connection, generate a user interface that includes a visual indication of the incoming communication; in response to the user input consistent with the acceptance of the incoming communication, provide the acceptance indication to theDocket No.: 1333-889WO01 first computing device; and output the incoming communication to a user of the second computing device.
[0141] Example 15: The system of example 14, wherein the first computing device is configured to perform the method of any of examples 1-9.
[0142] For processes, apparatuses, and other examples or illustrations described herein, including in any flowcharts or flow diagrams, certain operations, acts, steps, or events included in any of the techniques described herein can be performed in a different sequence, may be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the techniques). Moreover, in certain examples, operations, acts, steps, or events may be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors, rather than sequentially. Certain operations, acts, steps, or events may be performed automatically even if not specifically identified as being performed automatically. Also, certain operations, acts, steps, or events described as being performed automatically may be alternatively not performed automatically, but rather, such operations, acts, steps, or events may be, in some examples, performed in response to input or another event.
[0143] This description, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
[0144] In accordance with the examples of this disclosure, the term “or” may be interrupted as “and / or” where context does not dictate otherwise. Additionally, while phrases such as “one or more” or “at least one” or the like may have been used in some instances but not others; those instances where such language was not used may be interpreted to have such a meaning implied where context does not dictate otherwise.
[0145] 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, as one or more instructions or code, on and / or transmitted over 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 thatDocket No.: 1333-889WO01 facilitates transfer of a computer program from one place to another (e.g., pursuant 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.
[0146] By way of example, and not limitation, such computer-readable storage media can include 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, 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, 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.
[0147] 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 terms “processor” or “processing circuitry” as used herein may each refer to any of the foregoing structures or any other structure suitable for implementation of the techniques described. In addition, in some examples, 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.
Claims
Docket No.: 1333-889WO01WHAT IS CLAIMED IS:
1. A method, comprising: in response to receiving an incoming communication, sending, by a first computing device, an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establishing, by the first computing device, a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relaying, by the first computing device, the incoming communication to the second computing device via the second connection.
2. The method of claim 1, further comprising: causing, by the first computing device, the second computing device to generate a user interface that includes an indication of the incoming communication via the first connection prior to establishing the second connection.
3. The method of any of claims 1-2, further comprising: in response to determining that the second connection has not been established and that the acceptance indication has been received, causing, by the first computing device, the second computing device to generate a user interface that includes a placeholder indication.
4. The method of claim 3, further comprising: in response to determining that the second connection has been established, causing, by the first computing device, the second computing device to generate the user interface as including information regarding the incoming communication to replace the placeholder indication.Docket No.: 1333-889WO015. The method of any of claims 1-4, further comprising: receiving, by the first computing device, the acceptance indication as indicative of user input consistent with acceptance of the incoming communication at the second computing device; and responsive to establishing the second connection, connecting, by the first computing device, the incoming communication.
6. The method of any of claims 1-5, wherein the first connection is a BLUETOOTH Low Energy connection, wherein the second connection is a BLUETOOTH Classic connection, and wherein establishing the second connection comprises establishing the BLUETOOTH Classic connection in adherence with BLUETOOTH Hands-Free Profile.
7. The method of any of claims 1-6, wherein the indication of the incoming communication is a generic attribute profile message that includes information regarding the incoming communication.
8. The method of any of claims 1-7, wherein relaying the incoming communication to the second computing device further comprises: obtaining, from the second computing device, response data regarding audio or video data generated by the second computing device via the second connection.
9. The method of claim 8, wherein the incoming communication originates from a calling device, the method further comprising: relaying, by the first computing device, the response data to the calling device.
10. A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause at least one processor of a first computing device to perform the method of any of claims 1-9.
11. A computer program product, configured with instructions that, when executed, cause one or more processors of a computing device to perform the method of any of claims 1-9.
12. A first computing device, comprising: memory; andDocket No.: 1333-889WO01 at least one processor in communication with the memory and configured to: in response to receiving an incoming communication, send an indication of the incoming communication to a second computing device communicatively connected to the first computing device via a first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, wherein the first connection is maintained in conjunction with the second connection, and wherein a visual indication of the incoming communication is displayed at the second computing device while the second connection is being established; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection.
13. The first computing device of claim 12, wherein the at least one processor is configured to perform the method of any of claims 1-9.
14. A system, comprising: a first computing device, wherein the first computing device is communicatively connected to a second computing device via a first connection, and wherein the first computing device is configured to: in response to receiving an incoming communication, send an indication of the incoming communication to the second computing device via the first connection; establish a second connection with the second computing device, wherein the second connection is a different type of connection from the first connection, and wherein the first connection is maintained in conjunction with the second connection; and in response to receiving an acceptance indication from the second computing device, relay the incoming communication to the second computing device via the second connection; and the second computing device, wherein the second computing device is configured to: in response to receiving the indication of the incoming communication from the first computing device via the first connection, generate a user interface that includes a visual indication of the incoming communication;Docket No.: 1333-889WO01 in response to a user input consistent with acceptance of the incoming communication, provide the acceptance indication to the first computing device; and output the incoming communication to a user of the second computing device.
15. The system of claim 14, wherein the first computing device is configured to perform the method of any of claims 1-9.