US9621645B2 - Device pairing via a cloud server - Google Patents

Device pairing via a cloud server Download PDF

Info

Publication number
US9621645B2
US9621645B2 US14/144,427 US201314144427A US9621645B2 US 9621645 B2 US9621645 B2 US 9621645B2 US 201314144427 A US201314144427 A US 201314144427A US 9621645 B2 US9621645 B2 US 9621645B2
Authority
US
United States
Prior art keywords
server
pairing
devices
initial signal
communication capability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US14/144,427
Other versions
US20150189006A1 (en
Inventor
Boris Smus
Christian Plagemann
Trond Thomas Wuellner
Antonio Bernardo Monteiro Costa
Alejandro José Kauffmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US14/144,427 priority Critical patent/US9621645B2/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PLAGEMANN, CHRISTIAN, WUELLNER, TROND THOMAS, KAUFFMANN, Alejandro Jose, COSTA, ANTONIO BERNARDO MONTEIRO, SMUS, BORIS
Priority to AU2014374237A priority patent/AU2014374237B2/en
Priority to PCT/US2014/070677 priority patent/WO2015102890A1/en
Priority to JP2016556695A priority patent/JP2017500834A/en
Priority to KR1020167015501A priority patent/KR101931607B1/en
Priority to CN201480071657.5A priority patent/CN105874725A/en
Priority to EP14877255.1A priority patent/EP3090495B1/en
Publication of US20150189006A1 publication Critical patent/US20150189006A1/en
Publication of US9621645B2 publication Critical patent/US9621645B2/en
Application granted granted Critical
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B11/00Transmission systems employing sonic, ultrasonic or infrasonic waves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • H04W4/003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Definitions

  • the present disclosure generally relates to the transmission of data over a network, and more particularly to the connection of a device with another device.
  • Pairing is a process used in computer networking that establishes a connection between computing devices to allow data transfer between them.
  • a Bluetooth enabled mobile phone may be paired to a Bluetooth headset.
  • the user of the mobile phone may use the speaker and microphone of the headset instead of the speaker and microphone of the mobile phone.
  • a computer-implemented method for device pairing via a cloud server includes sending an initial signal from a first device to a second device.
  • the method includes sending a notification to a server, wherein the notification comprises a set of communication capabilities of the first device.
  • the method also includes receiving, from the server, an indication of a common communication capability between the first and second devices.
  • the method includes initiating pairing of the first device and the second device using the common communication capability in response to the received indication.
  • a system for device pairing via a cloud server includes a memory storing executable instructions and a processor configured to execute the executable instructions stored in the memory to send an initial signal from a first device to a second device.
  • the processor is also configured to send a notification from the first device to the second device of a set of communication capabilities of the first device.
  • the processor is also configured to receive, from the second device, an indication of a common communication capability between the first and second devices.
  • the processor is also configured to, in response to the received indication, initiate pairing of the first device and the second device using the common communication capability.
  • a non-transitory machine-readable medium embodying instructions is provided. These instructions, when executed by a machine, allow the machine to perform a method.
  • the method includes sending an initial signal from a first device to a second device, wherein the initial signal is sent via an inaudible ultrasonic frequency.
  • the method also includes sending a notification to a server, wherein the notification comprises a set of communication capabilities of the first device.
  • the method also includes receiving, from the server, an indication of a common communication capability between the first and second devices.
  • the method also includes, in response to the received indication, initiating pairing of the first device and the second device using the common communication capability.
  • FIG. 1 illustrates an example architecture for device pairing via a cloud server.
  • FIG. 2 is a block diagram illustrating example clients and an example server from the architecture of FIG. 1 according to certain aspects of the disclosure.
  • FIG. 3 illustrates an example process for device pairing via a cloud server using the example client of FIG. 2 .
  • FIG. 4 illustrates an example process for device pairing via a cloud server using the example client of FIG. 2 .
  • FIG. 5 is a block diagram illustrating an example computer system with which some implementations of the subject technology can be implemented.
  • Pairing one device to another device commonly involves multiple steps for the user. For example, in order to pair two devices over Bluetooth, a pairing mode needs to be initiated on the first device. The second device then recognizes the first device, and the user inputs a pairing code into the second device. Performing these series of steps may be bothersome to the user of the devices. A preferred solution would be to have the devices pair to each other automatically.
  • two devices may connect to a common local area network (e.g., WiFi) and utilize a discovery protocol in order to pair with each other.
  • a common local area network e.g., WiFi
  • a discovery protocol e.g., HTTPS
  • the user will need access to his friend's WiFi connection.
  • the user's friend may not wish to grant the user access to the WiFi connection.
  • a preferred situation would be to have the user's phone and the friend's television paired to each other while using independent network connections.
  • two devices may not be able to pair with one another because they do not have matching capabilities.
  • the first device may be configured to use WiFi while the second device is configured to use Bluetooth.
  • a preferred approach would be to have the two devices determine a common communications capability without user involvement.
  • the disclosed application provides device pairing via a cloud server.
  • An initial signal is sent from a first device to a second device, indicating to the second device that the first device is requests pairing to the second device.
  • the first device and the second device each send notifications of their respective communications capabilities.
  • the first and second devices send their respective notifications to a cloud server.
  • the first and second devices send their respective notifications to the other device.
  • the first device receives an indication of a common communication capability between the first and second device, and in response to the indication, initiates pairing of the first device with the second device.
  • FIG. 1 illustrates an example architecture 100 for device pairing via a cloud server.
  • the architecture 100 includes servers 130 and clients 110 connected over a network 150 .
  • Each of the many clients 110 is configured to connect to the network 150 or to other clients 110 .
  • the clients 110 can be, for example, desktop computers, mobile computers, tablet computers (e.g., including e-book readers), mobile devices (e.g., a smartphone or PDA), set top boxes (e.g., a television), video game consoles, or any other devices having appropriate processor, memory, and communications capabilities for connecting to the network 150 or connecting to other devices.
  • the servers 130 can be any device having an appropriate processor, memory, and communications capability for facilitating communications between devices 110 .
  • the network 150 can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network 150 can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.
  • FIG. 2 is a block diagram 200 illustrating example clients 210 , 250 and server 130 in the architecture 100 of FIG. 1 according to certain aspects of the disclosure.
  • the clients 210 , 250 and the server 130 are connected over the network 150 .
  • the clients 210 , 250 include a processor 212 , 252 , a communications module 214 , 254 , and memory 216 , 256 .
  • the communications module 214 , 254 is configured to interface with the network 150 to send and receive information, such as data, requests, responses, and commands to other devices on the network.
  • the communications module 214 , 254 can be, for example, modems or Ethernet cards.
  • the communications module 214 , 254 may also be configured to interface with other devices (i.e., first device 210 and second device 250 ) to send and receive information, such as data, requests, responses, and commands to other devices on the network.
  • the communications module 214 , 254 can be, for example, audio communications modules (i.e., a speaker and microphone), Bluetooth modules or Near Field Communication (“NFC”) modules.
  • the communications module 214 , 254 is capable of connecting to the network 150 , but not to other devices 110 .
  • the communications module 214 , 254 is capable of connecting to other devices 110 , but not to the network 150 .
  • the first device 210 sends an initial signal to the second device 250 notifying the second device 250 of a pairing request.
  • the initial signal prompts the second device 250 to notify the cloud server 130 to send a notification of its communications capabilities.
  • the first device 210 also sends a notification of its communications capabilities to the cloud server 130 .
  • the cloud server 130 determines a common communications capability between the first device 210 and the second device 250 , and sends an indication of the common communication capability to the first device 210 .
  • the first device 210 initiates pairing to the second device 250 using the common communications capability determined by the cloud server 130 .
  • data transfer between the first device 210 and second device 250 is performed directly between the two devices 210 , 250 .
  • data transfer is performed by using the cloud server 130 as an intermediary. That is, in order for the first device 210 to send data to the second device 250 , the first device 210 sends data to the cloud server 130 , and the cloud server sends the data to the second device 250 . Accordingly, in order for the second device 250 to send data to the first device 210 , the second device 250 sends data to the cloud server 130 and the cloud server sends the data to the first device 210 .
  • FIG. 3 illustrates an example process 300 for device pairing via a cloud server using the example clients 210 , 250 and cloud server 130 of FIG. 2 . While FIG. 3 is described with reference to FIG. 2 , it should be noted that the process blocks of FIG. 3 may be performed by other systems.
  • the process 300 begins at block 302 in which a first device 210 sends an initial signal to a second device 250 .
  • the initial signal from the first device 210 to the second device 250 prompts the second device 250 to send the cloud server 130 a notification of its communications capabilities.
  • the initial signal may be sent via a sound with an inaudible ultrasonic frequency.
  • An inaudible ultrasonic frequency may in the spectrum of 19 kHz or greater.
  • Detection of the initial inaudible ultrasonic frequency audio signal may be accomplished by using a bandpass filter, and triggering second stage analysis in software.
  • a microphone may be turned on, and Fourier analysis may be performed on the received inaudible ultrasonic frequency audio signal to get a frequency domain signal.
  • particular frequency ranges may be analyzed for peaks.
  • particular frequency ranges may be analyzed for an amplitude that is greater than a threshold, or greater than nearby frequency amplitudes.
  • the initial signal may be sent via other techniques, for example, Bluetooth or NFC.
  • devices with Bluetooth capabilities may periodically scan for initial signals broadcasted over Bluetooth.
  • the initial signal may be sent by broadcasting it over Bluetooth.
  • the initial signal is sent by the first device upon receiving input from a user.
  • the input may be a button tap on the device, a voice command given to the device, or a physical movement of the device.
  • Examples of a physical movement that may trigger the initial signal are: quickly moving the first device toward a second device while the screens of both devices are facing each other, sliding the first device toward the second device while both are laying on a surface, laying a first device down next to a second device on a surface, rotating a first device while both devices are on a surface, touching the screen of a first device to the screen of a second device, laying a first device on top of a second device, waving a first device over a second device while both screens are facing each other, waving a first device over a second device while both screens are facing the same direction, repeatedly quickly moving the first device toward a second device while the screens of both devices are facing each other, simultaneously tapping the screens of the two devices while they are laying on a surface, raising the edge of one of
  • the physical movement may be detected by the first device 210 using an accelerometer in the first device 210 .
  • the physical movement may also be detected using a tilt sensor in the first device 210 .
  • the process 300 proceeds to block 304 , in which the first device 210 sends a notification to the cloud server 130 , of a set of communication capabilities of the first device 210 .
  • Examples of communications capabilities include audio communication, Bluetooth, NFC, and WiFi.
  • the audio communications capabilities may be unilateral. Unilateral audio communication is used when the first device 210 is capable of sending an audio signal (e.g., has a speaker) and the second device 250 is capable of receiving an audio signal (e.g., has a microphone).
  • the audio communications capabilities may be bilateral. Bilateral audio communication is used when the first device 210 and the second device 250 are both capable of sending and receiving an audio signal.
  • the cloud server 130 also receives a notification of a set of communications capabilities from the second device 250 .
  • the first device 210 and the second device 250 each send the cloud server 130 a list of their respective communications capabilities.
  • the first device 210 and the second device 250 each send the cloud server 130 their respective device identifiers.
  • the device identifiers may contain information the cloud server 130 may use to determine a common communications capability.
  • the cloud server 130 may obtain communications capabilities of the devices 210 , 250 by looking up the device identifiers on a table containing communications capabilities indexed by device identifiers.
  • the cloud server 130 selects a common communication capability for pairing the first device 210 to the second device 250 , based on the communications capabilities information received from the first device 210 and the second device 250 .
  • the cloud server 130 may select any common capability between the first device 210 and the second device 250 as the common communications capability.
  • the cloud server 130 may determine the common communication capability based on the speed of data transfer between the two devices 210 , 250 .
  • the cloud server 130 may determine the common communication capability based on the battery consumption of the devices 210 , 250 .
  • the cloud server 130 may determine the common communication capability based on the connection reliability of the devices 210 , 250 and the communication capabilities of the devices 210 , 250 .
  • the cloud server 130 may determine the common communication capability is one that is not the fastest communication capability based on speed of data transfer, but one that is more reliable. Reliability may be determined based on, for example, connection failure rates, rates of lost data.
  • the notification of a set of communication capabilities of the first device 210 is sent to the second device 250 .
  • the second device 250 may select a common communication capability for pairing the first device 210 to the second device 250 .
  • the second device 250 may select any common capability between the first device 210 and the second device 250 as the common communications capability.
  • the second device 250 may determine the common communication capability based on the speed of data transfer between the two devices 210 , 250 .
  • the second device 250 may determine the common communication capability based on the battery consumption of the devices 210 , 250 .
  • the second device 250 may determine the common communication capability based on the connection reliability of the devices 210 , 250 and the communication capabilities of the devices 210 , 250 .
  • the second device 250 may determine the common communication capability is one that is not the fastest communication capability based on speed of data transfer, but one that is more reliable. Reliability may be determined based on, for example, connection failure rates, rates of lost data.
  • the process 300 proceeds to block 306 , in which the first device 210 receives, from the server, an indication of a common communication capability between the first device 210 and the second device 250 .
  • the common communication capability may be determined by one or more of the following considerations: speed of data transfer between the devices 210 , 250 ; battery consumption; and connection reliability.
  • the process 300 proceeds to block 308 , in which pairing of the first device 210 and the second device 250 are initiated using the common communication capability.
  • FIG. 3 sets forth an example process 300 for device pairing via a cloud server using the example devices 210 , 250 and example cloud server 130 of FIG. 2 .
  • An example will now be described using the example process 300 of FIG. 3 , a first device 210 that is a smartphone, having a communications module 214 that is capable of audio, Bluetooth, and NFC.
  • the example will also be described using a second device 250 that is a tablet, having a communications module 254 that is capable of audio, Bluetooth, and WiFi.
  • the process 300 begins at block 302 , in which the smartphone 210 sends an initial signal to the tablet 250 .
  • the initial signal may be sent via a sound with an inaudible ultrasonic frequency, Bluetooth, NFC, or other techniques.
  • the process 300 proceeds to block 304 , in which the smartphone 210 sends a notification to the cloud server 130 of its set of communication capabilities (e.g., audio, Bluetooth, and NFC).
  • the smartphone 210 sends a notification to the cloud server 130 of its set of communication capabilities (e.g., audio, Bluetooth, and NFC).
  • the tablet 250 also sends a notification of its communications capabilities to the cloud server 130 .
  • the cloud server 130 determines a common communications capability between the smartphone 210 and the tablet 250 . Possible common communications capabilities between the smartphone 210 and tablet 250 are audio and Bluetooth. As previously discussed, the cloud server 130 may determine a common communications capability in a different number of ways. In this example, the cloud server 130 determines that Bluetooth is the common communications capability shared by the smartphone 210 and the tablet 250 .
  • the process 300 proceeds to block 306 , in which the smartphone 210 receives, from the server 130 , an indication that Bluetooth is a common communications capability between the smartphone 210 and the tablet 250 .
  • the process 300 proceeds to block 308 , in which the smartphone 210 initiates pairing with the tablet 250 using Bluetooth.
  • FIG. 4 illustrates an example process 400 for device pairing via a cloud server using the example clients 210 , 250 and cloud server 130 of FIG. 2 . While FIG. 4 is described with reference to FIG. 2 , it should be noted that the process blocks of FIG. 4 may be performed by other systems. The process illustrated in FIG. 4 may be used when the second device 250 is unable to transmit data directly to the first device 210 . For example, if the common communications capability is unilateral audio, where the first device 210 has a speaker and the second device 250 has a microphone, the second device 250 is unable to transmit data directly to the first device 210 .
  • the process 400 begins at block 402 , in which a first device 210 sends an initial signal to a second device 250 .
  • the initial signal may be sent via a sound with an inaudible ultrasonic frequency.
  • the initial signal is sent by the first device upon receiving input from a user.
  • the input may be a button tap on the device, a voice command given to the device, or a physical movement of the device.
  • the first device 210 and the second device 250 send notification of communication capabilities to the cloud server 130 .
  • Examples of communications capabilities include audio communication, Bluetooth, NFC, and WiFi.
  • the audio communications capabilities may be unilateral. Unilateral audio communication is used when the first device 210 is capable of sending an audio signal (e.g., has a speaker) and the second device 250 is capable of receiving an audio signal (e.g., has a microphone).
  • the audio communications capabilities may be bilateral. Bilateral audio communication is used when the first device 210 and the second device 250 are both capable of sending and receiving an audio signal.
  • the cloud server 130 determines a common communications capability between the first device 210 and the second device 250 , and indicates the common communications capability to the first device 210 .
  • the cloud server 130 selects a common communication capability for pairing the first device 210 to the second device 250 , based on the communications capabilities information received from the first device 210 and the second device 250 .
  • the cloud server 130 may determine the common communication capability based on the speed of data transfer between the two devices 210 , 250 .
  • the first device 210 sends a token to the cloud server 130 .
  • the token is used to create a paired connection between the first device 210 and the second device 250 .
  • a token may be any bits of data.
  • a token may be a number, a word, or a combination of letters and numbers.
  • the token sent by the first device 210 is received by the cloud server 130 , and the cloud server 130 may later receive a verification request from the second device 250 . If the token received by the second device 250 matches the token received by the cloud server 130 , the connection is secure. That is, both the second device 250 and the cloud server 130 have verification that they are both communicating with the same device (e.g., the first device 210 ).
  • the first device 210 sends the token to the second device 250 using the common communication capability.
  • the second device 250 verifies the token with the cloud server 130 , which received the token from the first device 210 in block 408 .
  • a connection between the first device 210 and the second device 250 is established. If the second device 250 is unable to transmit data directly to the first device 210 , then data transfer may be facilitated by the cloud server 130 .
  • FIG. 5 is a block diagram illustrating an example computer system 500 with which some implementations of the subject technology can be implemented.
  • the computer system 500 may be implemented using hardware or a combination of software and hardware, either in a dedicated server, or integrated into another entity, or distributed across multiple entities.
  • Computer system 500 (e.g., clients 110 and server 130 ) includes a bus 508 or other communication mechanism for communicating information, and a processor 502 (e.g., processor 212 ) coupled with bus 508 for processing information.
  • processor 502 e.g., processor 212
  • the computer system 500 may be implemented with one or more processors 502 .
  • Processor 502 may be a general-purpose microprocessor, a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • PLD Programmable Logic Device
  • Computer system 500 can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them stored in an included memory 504 (e.g., memory 216 ), such as a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device, coupled to bus 508 for storing information and instructions to be executed by processor 502 .
  • the processor 502 and the memory 504 can be supplemented by, or incorporated in, special purpose logic circuitry.
  • the instructions may be stored in the memory 504 and implemented in one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, the computer system 500 , and according to any method well known to those of skill in the art, including, but not limited to, computer languages such as data-oriented languages (e.g., SQL, dBase), system languages (e.g., C, Objective-C, C++, Assembly), architectural languages (e.g., Java, .NET), and application languages (e.g., PHP, Ruby, Perl, Python).
  • data-oriented languages e.g., SQL, dBase
  • system languages e.g., C, Objective-C, C++, Assembly
  • architectural languages e.g., Java, .NET
  • application languages e.g., PHP, Ruby, Perl, Python.
  • Instructions may also be implemented in computer languages such as array languages, aspect-oriented languages, assembly languages, authoring languages, command line interface languages, compiled languages, concurrent languages, curly-bracket languages, dataflow languages, data-structured languages, declarative languages, esoteric languages, extension languages, fourth-generation languages, functional languages, interactive mode languages, interpreted languages, iterative languages, list-based languages, little languages, logic-based languages, machine languages, macro languages, metaprogramming languages, multiparadigm languages, numerical analysis, non-English-based languages, object-oriented class-based languages, object-oriented prototype-based languages, off-side rule languages, procedural languages, reflective languages, rule-based languages, scripting languages, stack-based languages, synchronous languages, syntax handling languages, visual languages, wirth languages, embeddable languages, and xml-based languages.
  • Memory 504 may also be used for storing temporary variable or other intermediate information during execution of instructions to be executed by processor 502 .
  • a computer program as discussed herein does not necessarily correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • Computer system 500 further includes a data storage device 506 such as a magnetic disk or optical disk, coupled to bus 508 for storing information and instructions.
  • Computer system 500 may be coupled via input/output module 510 to various devices.
  • the input/output module 510 can be any input/output module.
  • Example input/output modules 510 include data ports such as USB ports.
  • the input/output module 510 is configured to connect to a communications module 512 .
  • Example communications modules 512 e.g., communications module 214
  • networking interface cards such as Ethernet cards and modems.
  • the input/output module 510 is configured to connect to a plurality of devices, such as an input device 514 and/or an output device 516 .
  • Example input devices 514 include a keyboard and a pointing device, e.g., a mouse or a trackball, by which a user can provide input to the computer system 500 .
  • Other kinds of input devices 514 can be used to provide for interaction with a user as well, such as a tactile input device, visual input device, audio input device, or brain-computer interface device.
  • feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, tactile, or brain wave input.
  • Example output devices 516 include display devices, such as a LED (light emitting diode), CRT (cathode ray tube), or LCD (liquid crystal display) screen, for displaying information to the user.
  • the client 110 and server 130 can be implemented using a computer system 500 in response to processor 502 executing one or more sequences of one or more instructions contained in memory 504 .
  • Such instructions may be read into memory 504 from another machine-readable medium, such as data storage device 506 .
  • Execution of the sequences of instructions contained in main memory 504 causes processor 502 to perform the process steps described herein.
  • processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory 504 .
  • hard-wired circuitry may be used in place of or in combination with software instructions to implement various aspects of the present disclosure.
  • aspects of the present disclosure are not limited to any specific combination of hardware circuitry and software.
  • a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network.
  • the communication network can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like.
  • PAN personal area network
  • LAN local area network
  • CAN campus area network
  • MAN metropolitan area network
  • WAN wide area network
  • BBN broadband network
  • the communication network can include, but is not limited to, for example, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, or the like.
  • the communications modules can be, for example, modems or Ethernet cards.
  • Computing system 500 can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • Computer system 500 can be, for example, and without limitation, a desktop computer, laptop computer, or tablet computer.
  • Computer system 500 can also be embedded in another device, for example, and without limitation, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, a video game console, and/or a television set top box.
  • PDA personal digital assistant
  • GPS Global Positioning System
  • machine-readable storage medium or “computer readable medium” as used herein refers to any medium or media that participates in providing instructions or data to processor 502 for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media.
  • Non-volatile media include, for example, optical disks, magnetic disks, or flash memory, such as data storage device 506 .
  • Volatile media include dynamic memory, such as memory 504 .
  • Transmission media include coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 508 .
  • machine-readable media include, for example, floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
  • the machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
  • the phrase “at least one of” preceding a series of items, with the terms “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item).
  • the phrase “at least one of” does not require selection of at least one item; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items.
  • the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or at least one of each of A, B, and C.
  • the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.

Abstract

Methods for device pairing via a cloud server are provided. In one aspect, a method includes sending an initial signal from a first device to a second device. The method includes sending a notification from the first device of a set of communication capabilities of the first device. The method also includes receiving an indication of a common communication capability between the first and second devices. The method includes initiating pairing of the first device and the second device using the common communication capability in response to the received indication. Systems and machine-readable media are also provided.

Description

BACKGROUND
Field
The present disclosure generally relates to the transmission of data over a network, and more particularly to the connection of a device with another device.
Description of the Related Art
Pairing is a process used in computer networking that establishes a connection between computing devices to allow data transfer between them. For example, a Bluetooth enabled mobile phone may be paired to a Bluetooth headset. When the mobile phone and headset are paired together, the user of the mobile phone may use the speaker and microphone of the headset instead of the speaker and microphone of the mobile phone.
SUMMARY
According to one embodiment of the present disclosure, a computer-implemented method for device pairing via a cloud server is provided. The method includes sending an initial signal from a first device to a second device. The method includes sending a notification to a server, wherein the notification comprises a set of communication capabilities of the first device. The method also includes receiving, from the server, an indication of a common communication capability between the first and second devices. The method includes initiating pairing of the first device and the second device using the common communication capability in response to the received indication.
According to one embodiment of the present disclosure, a system for device pairing via a cloud server is provided. The system includes a memory storing executable instructions and a processor configured to execute the executable instructions stored in the memory to send an initial signal from a first device to a second device. The processor is also configured to send a notification from the first device to the second device of a set of communication capabilities of the first device. The processor is also configured to receive, from the second device, an indication of a common communication capability between the first and second devices. The processor is also configured to, in response to the received indication, initiate pairing of the first device and the second device using the common communication capability.
According to one embodiment of the present disclosure, a non-transitory machine-readable medium embodying instructions is provided. These instructions, when executed by a machine, allow the machine to perform a method. The method includes sending an initial signal from a first device to a second device, wherein the initial signal is sent via an inaudible ultrasonic frequency. The method also includes sending a notification to a server, wherein the notification comprises a set of communication capabilities of the first device. The method also includes receiving, from the server, an indication of a common communication capability between the first and second devices. The method also includes, in response to the received indication, initiating pairing of the first device and the second device using the common communication capability.
It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embodiments and together with the description serve to explain the principles of the disclosed embodiments. In the drawings:
FIG. 1 illustrates an example architecture for device pairing via a cloud server.
FIG. 2 is a block diagram illustrating example clients and an example server from the architecture of FIG. 1 according to certain aspects of the disclosure.
FIG. 3 illustrates an example process for device pairing via a cloud server using the example client of FIG. 2.
FIG. 4 illustrates an example process for device pairing via a cloud server using the example client of FIG. 2.
FIG. 5 is a block diagram illustrating an example computer system with which some implementations of the subject technology can be implemented.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth to provide a full understanding of the present disclosure. It will be apparent, however, to one ordinarily skilled in the art that the embodiments of the present disclosure may be practiced without some of these specific details. In other instances, well-known structures and techniques have not been shown in detail so as not to obscure the disclosure.
Pairing one device to another device commonly involves multiple steps for the user. For example, in order to pair two devices over Bluetooth, a pairing mode needs to be initiated on the first device. The second device then recognizes the first device, and the user inputs a pairing code into the second device. Performing these series of steps may be bothersome to the user of the devices. A preferred solution would be to have the devices pair to each other automatically.
In another example, two devices may connect to a common local area network (e.g., WiFi) and utilize a discovery protocol in order to pair with each other. For example, if a user who is visiting his friend's house wishes to pair his WiFi capable phone to his friend's WiFi capable television, the user will need access to his friend's WiFi connection. However, in some situations, the user's friend may not wish to grant the user access to the WiFi connection. A preferred situation would be to have the user's phone and the friend's television paired to each other while using independent network connections.
In another example, two devices may not be able to pair with one another because they do not have matching capabilities. For example, the first device may be configured to use WiFi while the second device is configured to use Bluetooth. In some cases, it is not immediately obvious to the user what each device's capabilities are. A preferred approach would be to have the two devices determine a common communications capability without user involvement.
The disclosed application provides device pairing via a cloud server. An initial signal is sent from a first device to a second device, indicating to the second device that the first device is requests pairing to the second device. The first device and the second device each send notifications of their respective communications capabilities. In some aspects, the first and second devices send their respective notifications to a cloud server. In some aspects, the first and second devices send their respective notifications to the other device. The first device receives an indication of a common communication capability between the first and second device, and in response to the indication, initiates pairing of the first device with the second device.
FIG. 1 illustrates an example architecture 100 for device pairing via a cloud server. The architecture 100 includes servers 130 and clients 110 connected over a network 150.
Each of the many clients 110 is configured to connect to the network 150 or to other clients 110. The clients 110 can be, for example, desktop computers, mobile computers, tablet computers (e.g., including e-book readers), mobile devices (e.g., a smartphone or PDA), set top boxes (e.g., a television), video game consoles, or any other devices having appropriate processor, memory, and communications capabilities for connecting to the network 150 or connecting to other devices.
The servers 130 can be any device having an appropriate processor, memory, and communications capability for facilitating communications between devices 110. The network 150 can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network 150 can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.
FIG. 2 is a block diagram 200 illustrating example clients 210, 250 and server 130 in the architecture 100 of FIG. 1 according to certain aspects of the disclosure. The clients 210, 250 and the server 130 are connected over the network 150.
The clients 210, 250 include a processor 212, 252, a communications module 214, 254, and memory 216, 256. The communications module 214, 254 is configured to interface with the network 150 to send and receive information, such as data, requests, responses, and commands to other devices on the network. The communications module 214, 254 can be, for example, modems or Ethernet cards. The communications module 214, 254 may also be configured to interface with other devices (i.e., first device 210 and second device 250) to send and receive information, such as data, requests, responses, and commands to other devices on the network. The communications module 214, 254 can be, for example, audio communications modules (i.e., a speaker and microphone), Bluetooth modules or Near Field Communication (“NFC”) modules. In some aspects, the communications module 214, 254 is capable of connecting to the network 150, but not to other devices 110. In some aspects, the communications module 214, 254 is capable of connecting to other devices 110, but not to the network 150.
In example aspects, the first device 210 sends an initial signal to the second device 250 notifying the second device 250 of a pairing request. The initial signal prompts the second device 250 to notify the cloud server 130 to send a notification of its communications capabilities. The first device 210 also sends a notification of its communications capabilities to the cloud server 130. The cloud server 130 determines a common communications capability between the first device 210 and the second device 250, and sends an indication of the common communication capability to the first device 210. The first device 210 initiates pairing to the second device 250 using the common communications capability determined by the cloud server 130.
In some aspects, data transfer between the first device 210 and second device 250 is performed directly between the two devices 210, 250. In some aspects, data transfer is performed by using the cloud server 130 as an intermediary. That is, in order for the first device 210 to send data to the second device 250, the first device 210 sends data to the cloud server 130, and the cloud server sends the data to the second device 250. Accordingly, in order for the second device 250 to send data to the first device 210, the second device 250 sends data to the cloud server 130 and the cloud server sends the data to the first device 210.
FIG. 3 illustrates an example process 300 for device pairing via a cloud server using the example clients 210, 250 and cloud server 130 of FIG. 2. While FIG. 3 is described with reference to FIG. 2, it should be noted that the process blocks of FIG. 3 may be performed by other systems.
The process 300 begins at block 302 in which a first device 210 sends an initial signal to a second device 250. In some aspects, the initial signal from the first device 210 to the second device 250 prompts the second device 250 to send the cloud server 130 a notification of its communications capabilities.
In some aspects, the initial signal may be sent via a sound with an inaudible ultrasonic frequency. An inaudible ultrasonic frequency may in the spectrum of 19 kHz or greater. Detection of the initial inaudible ultrasonic frequency audio signal may be accomplished by using a bandpass filter, and triggering second stage analysis in software. A microphone may be turned on, and Fourier analysis may be performed on the received inaudible ultrasonic frequency audio signal to get a frequency domain signal. In some aspects, particular frequency ranges may be analyzed for peaks. In some aspects, particular frequency ranges may be analyzed for an amplitude that is greater than a threshold, or greater than nearby frequency amplitudes. The initial signal may be sent via other techniques, for example, Bluetooth or NFC. In some aspects, devices with Bluetooth capabilities may periodically scan for initial signals broadcasted over Bluetooth. The initial signal may be sent by broadcasting it over Bluetooth.
In some aspects, the initial signal is sent by the first device upon receiving input from a user. For example, the input may be a button tap on the device, a voice command given to the device, or a physical movement of the device. Examples of a physical movement that may trigger the initial signal are: quickly moving the first device toward a second device while the screens of both devices are facing each other, sliding the first device toward the second device while both are laying on a surface, laying a first device down next to a second device on a surface, rotating a first device while both devices are on a surface, touching the screen of a first device to the screen of a second device, laying a first device on top of a second device, waving a first device over a second device while both screens are facing each other, waving a first device over a second device while both screens are facing the same direction, repeatedly quickly moving the first device toward a second device while the screens of both devices are facing each other, simultaneously tapping the screens of the two devices while they are laying on a surface, raising the edge of one of two devices which are laying on a surface, tapping a first device using the corner of a second device, tapping the back of a first device while the screens of the first and second devices are facing each other.
The physical movement may be detected by the first device 210 using an accelerometer in the first device 210. The physical movement may also be detected using a tilt sensor in the first device 210.
The process 300 proceeds to block 304, in which the first device 210 sends a notification to the cloud server 130, of a set of communication capabilities of the first device 210. Examples of communications capabilities include audio communication, Bluetooth, NFC, and WiFi. In some aspects, the audio communications capabilities may be unilateral. Unilateral audio communication is used when the first device 210 is capable of sending an audio signal (e.g., has a speaker) and the second device 250 is capable of receiving an audio signal (e.g., has a microphone). In some aspects, the audio communications capabilities may be bilateral. Bilateral audio communication is used when the first device 210 and the second device 250 are both capable of sending and receiving an audio signal.
In some aspects, the cloud server 130 also receives a notification of a set of communications capabilities from the second device 250. In some aspects, the first device 210 and the second device 250 each send the cloud server 130 a list of their respective communications capabilities. In some aspects, the first device 210 and the second device 250 each send the cloud server 130 their respective device identifiers. The device identifiers may contain information the cloud server 130 may use to determine a common communications capability. The cloud server 130 may obtain communications capabilities of the devices 210, 250 by looking up the device identifiers on a table containing communications capabilities indexed by device identifiers.
The cloud server 130 selects a common communication capability for pairing the first device 210 to the second device 250, based on the communications capabilities information received from the first device 210 and the second device 250. In some aspects, the cloud server 130 may select any common capability between the first device 210 and the second device 250 as the common communications capability. In some aspects, the cloud server 130 may determine the common communication capability based on the speed of data transfer between the two devices 210, 250. In some aspects, the cloud server 130 may determine the common communication capability based on the battery consumption of the devices 210, 250. The cloud server 130 may determine the common communication capability based on the connection reliability of the devices 210, 250 and the communication capabilities of the devices 210, 250. For example, the cloud server 130 may determine the common communication capability is one that is not the fastest communication capability based on speed of data transfer, but one that is more reliable. Reliability may be determined based on, for example, connection failure rates, rates of lost data.
In some aspects, instead of sending the notification in block 304 to the cloud server 130, the notification of a set of communication capabilities of the first device 210 is sent to the second device 250. The second device 250 may select a common communication capability for pairing the first device 210 to the second device 250. In some aspects, the second device 250 may select any common capability between the first device 210 and the second device 250 as the common communications capability. In some aspects, the second device 250 may determine the common communication capability based on the speed of data transfer between the two devices 210, 250. In some aspects, the second device 250 may determine the common communication capability based on the battery consumption of the devices 210, 250. The second device 250 may determine the common communication capability based on the connection reliability of the devices 210, 250 and the communication capabilities of the devices 210, 250. For example, the second device 250 may determine the common communication capability is one that is not the fastest communication capability based on speed of data transfer, but one that is more reliable. Reliability may be determined based on, for example, connection failure rates, rates of lost data.
The process 300 proceeds to block 306, in which the first device 210 receives, from the server, an indication of a common communication capability between the first device 210 and the second device 250. As discussed above, the common communication capability may be determined by one or more of the following considerations: speed of data transfer between the devices 210, 250; battery consumption; and connection reliability.
The process 300 proceeds to block 308, in which pairing of the first device 210 and the second device 250 are initiated using the common communication capability.
FIG. 3 sets forth an example process 300 for device pairing via a cloud server using the example devices 210, 250 and example cloud server 130 of FIG. 2. An example will now be described using the example process 300 of FIG. 3, a first device 210 that is a smartphone, having a communications module 214 that is capable of audio, Bluetooth, and NFC. The example will also be described using a second device 250 that is a tablet, having a communications module 254 that is capable of audio, Bluetooth, and WiFi.
The process 300 begins at block 302, in which the smartphone 210 sends an initial signal to the tablet 250. As previously discussed, the initial signal may be sent via a sound with an inaudible ultrasonic frequency, Bluetooth, NFC, or other techniques.
The process 300 proceeds to block 304, in which the smartphone 210 sends a notification to the cloud server 130 of its set of communication capabilities (e.g., audio, Bluetooth, and NFC).
The tablet 250 also sends a notification of its communications capabilities to the cloud server 130. The cloud server 130 determines a common communications capability between the smartphone 210 and the tablet 250. Possible common communications capabilities between the smartphone 210 and tablet 250 are audio and Bluetooth. As previously discussed, the cloud server 130 may determine a common communications capability in a different number of ways. In this example, the cloud server 130 determines that Bluetooth is the common communications capability shared by the smartphone 210 and the tablet 250.
The process 300 proceeds to block 306, in which the smartphone 210 receives, from the server 130, an indication that Bluetooth is a common communications capability between the smartphone 210 and the tablet 250. The process 300 proceeds to block 308, in which the smartphone 210 initiates pairing with the tablet 250 using Bluetooth.
FIG. 4 illustrates an example process 400 for device pairing via a cloud server using the example clients 210, 250 and cloud server 130 of FIG. 2. While FIG. 4 is described with reference to FIG. 2, it should be noted that the process blocks of FIG. 4 may be performed by other systems. The process illustrated in FIG. 4 may be used when the second device 250 is unable to transmit data directly to the first device 210. For example, if the common communications capability is unilateral audio, where the first device 210 has a speaker and the second device 250 has a microphone, the second device 250 is unable to transmit data directly to the first device 210.
The process 400 begins at block 402, in which a first device 210 sends an initial signal to a second device 250. In some aspects, the initial signal may be sent via a sound with an inaudible ultrasonic frequency. In some aspects, the initial signal is sent by the first device upon receiving input from a user. For example, the input may be a button tap on the device, a voice command given to the device, or a physical movement of the device.
At block 404, the first device 210 and the second device 250 send notification of communication capabilities to the cloud server 130. Examples of communications capabilities include audio communication, Bluetooth, NFC, and WiFi. In some aspects, the audio communications capabilities may be unilateral. Unilateral audio communication is used when the first device 210 is capable of sending an audio signal (e.g., has a speaker) and the second device 250 is capable of receiving an audio signal (e.g., has a microphone). In some aspects, the audio communications capabilities may be bilateral. Bilateral audio communication is used when the first device 210 and the second device 250 are both capable of sending and receiving an audio signal.
At block 406, the cloud server 130 determines a common communications capability between the first device 210 and the second device 250, and indicates the common communications capability to the first device 210. The cloud server 130 selects a common communication capability for pairing the first device 210 to the second device 250, based on the communications capabilities information received from the first device 210 and the second device 250. The cloud server 130 may determine the common communication capability based on the speed of data transfer between the two devices 210, 250.
At block 408, the first device 210 sends a token to the cloud server 130. In some aspects, the token is used to create a paired connection between the first device 210 and the second device 250. A token may be any bits of data. For example, a token may be a number, a word, or a combination of letters and numbers.
The token sent by the first device 210 is received by the cloud server 130, and the cloud server 130 may later receive a verification request from the second device 250. If the token received by the second device 250 matches the token received by the cloud server 130, the connection is secure. That is, both the second device 250 and the cloud server 130 have verification that they are both communicating with the same device (e.g., the first device 210).
At block 410, the first device 210 sends the token to the second device 250 using the common communication capability. At block 412, the second device 250 verifies the token with the cloud server 130, which received the token from the first device 210 in block 408. At block 414, a connection between the first device 210 and the second device 250 is established. If the second device 250 is unable to transmit data directly to the first device 210, then data transfer may be facilitated by the cloud server 130.
FIG. 5 is a block diagram illustrating an example computer system 500 with which some implementations of the subject technology can be implemented. In certain aspects, the computer system 500 may be implemented using hardware or a combination of software and hardware, either in a dedicated server, or integrated into another entity, or distributed across multiple entities.
Computer system 500 (e.g., clients 110 and server 130) includes a bus 508 or other communication mechanism for communicating information, and a processor 502 (e.g., processor 212) coupled with bus 508 for processing information. By way of example, the computer system 500 may be implemented with one or more processors 502. Processor 502 may be a general-purpose microprocessor, a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information.
Computer system 500 can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them stored in an included memory 504 (e.g., memory 216), such as a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device, coupled to bus 508 for storing information and instructions to be executed by processor 502. The processor 502 and the memory 504 can be supplemented by, or incorporated in, special purpose logic circuitry.
The instructions may be stored in the memory 504 and implemented in one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, the computer system 500, and according to any method well known to those of skill in the art, including, but not limited to, computer languages such as data-oriented languages (e.g., SQL, dBase), system languages (e.g., C, Objective-C, C++, Assembly), architectural languages (e.g., Java, .NET), and application languages (e.g., PHP, Ruby, Perl, Python). Instructions may also be implemented in computer languages such as array languages, aspect-oriented languages, assembly languages, authoring languages, command line interface languages, compiled languages, concurrent languages, curly-bracket languages, dataflow languages, data-structured languages, declarative languages, esoteric languages, extension languages, fourth-generation languages, functional languages, interactive mode languages, interpreted languages, iterative languages, list-based languages, little languages, logic-based languages, machine languages, macro languages, metaprogramming languages, multiparadigm languages, numerical analysis, non-English-based languages, object-oriented class-based languages, object-oriented prototype-based languages, off-side rule languages, procedural languages, reflective languages, rule-based languages, scripting languages, stack-based languages, synchronous languages, syntax handling languages, visual languages, wirth languages, embeddable languages, and xml-based languages. Memory 504 may also be used for storing temporary variable or other intermediate information during execution of instructions to be executed by processor 502.
A computer program as discussed herein does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
Computer system 500 further includes a data storage device 506 such as a magnetic disk or optical disk, coupled to bus 508 for storing information and instructions. Computer system 500 may be coupled via input/output module 510 to various devices. The input/output module 510 can be any input/output module. Example input/output modules 510 include data ports such as USB ports. The input/output module 510 is configured to connect to a communications module 512. Example communications modules 512 (e.g., communications module 214) include networking interface cards, such as Ethernet cards and modems. In certain aspects, the input/output module 510 is configured to connect to a plurality of devices, such as an input device 514 and/or an output device 516. Example input devices 514 include a keyboard and a pointing device, e.g., a mouse or a trackball, by which a user can provide input to the computer system 500. Other kinds of input devices 514 can be used to provide for interaction with a user as well, such as a tactile input device, visual input device, audio input device, or brain-computer interface device. For example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, tactile, or brain wave input. Example output devices 516 include display devices, such as a LED (light emitting diode), CRT (cathode ray tube), or LCD (liquid crystal display) screen, for displaying information to the user.
According to one aspect of the present disclosure, the client 110 and server 130 can be implemented using a computer system 500 in response to processor 502 executing one or more sequences of one or more instructions contained in memory 504. Such instructions may be read into memory 504 from another machine-readable medium, such as data storage device 506. Execution of the sequences of instructions contained in main memory 504 causes processor 502 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory 504. In alternative aspects, hard-wired circuitry may be used in place of or in combination with software instructions to implement various aspects of the present disclosure. Thus, aspects of the present disclosure are not limited to any specific combination of hardware circuitry and software.
Various aspects of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. The communication network (e.g., network 150) can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the communication network can include, but is not limited to, for example, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, or the like. The communications modules can be, for example, modems or Ethernet cards.
Computing system 500 can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Computer system 500 can be, for example, and without limitation, a desktop computer, laptop computer, or tablet computer. Computer system 500 can also be embedded in another device, for example, and without limitation, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, a video game console, and/or a television set top box.
The term “machine-readable storage medium” or “computer readable medium” as used herein refers to any medium or media that participates in providing instructions or data to processor 502 for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical disks, magnetic disks, or flash memory, such as data storage device 506. Volatile media include dynamic memory, such as memory 504. Transmission media include coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 508. Common forms of machine-readable media include, for example, floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory chip or cartridge, or any other medium from which a computer can read. The machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
As used herein, the phrase “at least one of” preceding a series of items, with the terms “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase “at least one of” does not require selection of at least one item; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items. By way of example, the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or at least one of each of A, B, and C. To the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.
A reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” The term “some” refers to one or more. All structural and functional equivalents to the elements of the various configurations described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and intended to be encompassed by the subject technology. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the above description.
While this specification contains many specifics, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of particular implementations of the subject matter. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
The subject matter of this specification has been described in terms of particular aspects, but other aspects can be implemented and are within the scope of the following claims. For example, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. The actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the aspects described above should not be understood as requiring such separation in all aspects, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Other variations are within the scope of the following claims.

Claims (17)

What is claimed is:
1. A computer-implemented method comprising:
sending an initial signal from a first device to a second device, wherein the initial signal prompts the second device to send a first notification comprising a set of communication capabilities of the second device to a server;
sending a second notification from the first device to the server, wherein the second notification comprises a set of communication capabilities of the first device;
receiving, from the server, an indication of a common communication capability between the first and second devices;
generating, by the first device, a pairing token;
sending the pairing token from the first device to the server;
sending the pairing token from the first device to the second device using the common communication capability; and
initiating pairing of the first device and the second device using the common communication capability, based on a verification that the pairing token sent to the server matches the pairing token sent to the second device.
2. The computer-implemented method of claim 1, wherein the initial signal is sent via an inaudible ultrasonic frequency.
3. The computer-implemented method of claim 2, wherein the inaudible ultrasonic frequency is in the spectrum of 19 kHz or greater.
4. The computer-implemented method of claim 1, wherein the initial signal is triggered by a physical movement of the first device.
5. The computer-implemented method of claim 4, wherein the physical movement of the device is at least one of: quickly moving the first device toward the second device while screens of both devices are facing each other, sliding the first device toward the second device while both devices are laying on a surface, laying the first device down next to the second device on the surface, or waving a first device over a second device while the screens of both devices are facing each other.
6. The computer-implemented method of claim 1, wherein the common communication capability is at least one of: Bluetooth Wireless Standard, Near Field Communication, WiFi, unilateral audio, or bilateral audio.
7. The computer-implemented method of claim 1, further comprising pairing the first device to the second device, wherein data transfer of the pairing is accomplished through the server.
8. A system comprising:
a memory storing executable instructions; and
a processor configured to execute the executable instructions stored in the memory to:
send an initial signal from a first device to a second device, wherein the initial signal prompts the second device to send a first notification comprising a set of communication capabilities of the second device to a server;
send a second notification to the server, wherein the second notification comprises a set of communication capabilities of the first device;
receive, from the server, an indication of a common communication capability between the first and second devices;
generate, by the first device, a pairing token;
send the pairing token from the first device to the server;
send the pairing token from the first device to the second device using the common communication capability; and
initiate pairing of the first device and the second device using the common communication capability, based on a verification that the pairing token sent to the server matches the pairing token sent to the second device.
9. The system of claim 8, wherein the initial signal is sent via an inaudible ultrasonic frequency.
10. The system of claim 8, wherein the initial signal is triggered by a physical movement of the first device.
11. The system of claim 10, wherein the physical movement of the device is at least one of: quickly moving the first device toward the second device while screens of both devices are facing each other, sliding the first device toward the second device while both devices are laying on a surface, laying the first device down next to the second device on the surface, or waving a first device over a second device while the screens of both devices are facing each other.
12. The system of claim 8, wherein the common communication capability is at least one of: Bluetooth Wireless Standard, Near Field Communication, WiFi, unilateral audio, or bilateral audio.
13. The system of claim 8, wherein the processor is further configured to pair the first device to the second device, wherein data transfer of the pairing is accomplished through the server.
14. A non-transitory machine-readable medium embodying instructions that, when executed by a machine, allow the machine to perform a method comprising:
sending an initial signal from a first device to a second device, wherein the initial signal is sent via an inaudible ultrasonic frequency and prompts the second device to send a first notification comprising a set of communication capabilities of the second device to a server;
sending a second notification to the server, wherein the second notification comprises a set of communication capabilities of the first device;
receiving, from the server, an indication of a common communication capability between the first and second devices;
generating, by the first device, a pairing token;
sending the pairing token from the first device to the server;
sending the pairing token from the first device to the second device using the common communication capability; and
initiating pairing of the first device and the second device using the common communication capability, based on a verification that the pairing token sent to the server matches the pairing token sent to the second device.
15. The non-transitory machine-readable medium of claim 14, wherein the inaudible ultrasonic frequency is in the spectrum of 19 kHz or greater.
16. The non-transitory machine-readable medium of claim 14, wherein the initial signal is triggered by a physical movement of the first device.
17. The non-transitory machine-readable medium of claim 14, further comprising pairing the first device to the second device, wherein data transfer of the pairing is accomplished through the server.
US14/144,427 2013-12-30 2013-12-30 Device pairing via a cloud server Active 2034-08-22 US9621645B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US14/144,427 US9621645B2 (en) 2013-12-30 2013-12-30 Device pairing via a cloud server
KR1020167015501A KR101931607B1 (en) 2013-12-30 2014-12-16 Device pairing via a cloud server
PCT/US2014/070677 WO2015102890A1 (en) 2013-12-30 2014-12-16 Device pairing via a cloud server
JP2016556695A JP2017500834A (en) 2013-12-30 2014-12-16 Device pairing via cloud server
AU2014374237A AU2014374237B2 (en) 2013-12-30 2014-12-16 Device pairing via a cloud server
CN201480071657.5A CN105874725A (en) 2013-12-30 2014-12-16 Device pairing via a cloud server
EP14877255.1A EP3090495B1 (en) 2013-12-30 2014-12-16 Device pairing via a cloud server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/144,427 US9621645B2 (en) 2013-12-30 2013-12-30 Device pairing via a cloud server

Publications (2)

Publication Number Publication Date
US20150189006A1 US20150189006A1 (en) 2015-07-02
US9621645B2 true US9621645B2 (en) 2017-04-11

Family

ID=53483283

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/144,427 Active 2034-08-22 US9621645B2 (en) 2013-12-30 2013-12-30 Device pairing via a cloud server

Country Status (7)

Country Link
US (1) US9621645B2 (en)
EP (1) EP3090495B1 (en)
JP (1) JP2017500834A (en)
KR (1) KR101931607B1 (en)
CN (1) CN105874725A (en)
AU (1) AU2014374237B2 (en)
WO (1) WO2015102890A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160278161A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Data transfer using non-radio frequency (rf) and rf signals
US11223616B2 (en) 2019-08-07 2022-01-11 Cisco Technology, Inc. Ultrasound assisted device activation
US11902789B2 (en) 2019-08-05 2024-02-13 Hewlett Packard Enterprise Development Lp Cloud controlled secure Bluetooth pairing for network device management

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213413B2 (en) * 2013-12-31 2015-12-15 Google Inc. Device interaction with spatially aware gestures
WO2015136142A1 (en) * 2014-03-12 2015-09-17 Nokia Technologies Oy Pairing of devices
US20160044060A1 (en) * 2014-03-26 2016-02-11 Empire Technology Development Llc Policy synchronization for multiple devices
US10019564B2 (en) 2014-03-28 2018-07-10 Cryptography Research, Inc. Authentication of a device
US9763276B2 (en) * 2014-05-30 2017-09-12 Apple Inc. Seamless connectivity between hearing aid and multiple devices
US9913079B2 (en) * 2015-06-05 2018-03-06 Apple Inc. Cloud-based proximity pairing and switching for peer-to-peer devices
US10382210B2 (en) * 2016-01-10 2019-08-13 Apple Inc. Secure device pairing
US10666642B2 (en) * 2016-02-26 2020-05-26 Ca, Inc. System and method for service assisted mobile pairing of password-less computer login
FR3050091B1 (en) * 2016-04-08 2018-04-06 Wistiki METHOD OF MATCHING BETWEEN A CONNECTED DEVICE AND A COMMUNITY
US9883330B2 (en) 2016-06-08 2018-01-30 Motorola Solutions, Inc. Device pairing using a secure zone
US11197331B2 (en) 2016-06-10 2021-12-07 Apple Inc. Zero-round-trip-time connectivity over the wider area network
JP6514154B2 (en) * 2016-07-19 2019-05-15 日本電信電話株式会社 Device management system, device management apparatus and device management method
US9730255B1 (en) * 2016-08-30 2017-08-08 Polycom, Inc. Room-specific pairing via a combined ultrasonic beacon/bluetooth approach
CN113068165B (en) * 2016-09-22 2022-04-12 华为技术有限公司 Method and equipment for configuring functional resources
US10158684B2 (en) 2016-09-26 2018-12-18 Cisco Technology, Inc. Challenge-response proximity verification of user devices based on token-to-symbol mapping definitions
KR102648112B1 (en) * 2016-12-22 2024-03-18 삼성전자주식회사 Electronic apparatus, control authority authentication method thereof and user terminal apparatus
US10250692B2 (en) 2017-04-21 2019-04-02 Sony Corporation Voice user interface for pairing between devices
US10955662B2 (en) 2017-05-22 2021-03-23 Magic Leap, Inc. Pairing with companion device
US11057442B2 (en) * 2018-01-27 2021-07-06 Vmware, Inc. System and method for workspace sharing
US11438786B1 (en) * 2018-06-15 2022-09-06 Amazon Technologies, Inc. Bandwidth estimation and management for connected devices
JP7293684B2 (en) * 2019-02-01 2023-06-20 ブラザー工業株式会社 Support program, information processing device, and printing method
US20220217547A1 (en) * 2021-01-06 2022-07-07 Inseego Corp. 5g fwa device self-installation and device management application
WO2023026270A1 (en) * 2021-08-25 2023-03-02 Owrita Technologies Ltd Verification of network or machine-based events through query to responsible users

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445716B1 (en) * 1997-01-21 2002-09-03 At&T Wireless Services, Inc. Method and apparatus for dynamic negotiation of protocols
US20050273609A1 (en) * 2004-06-04 2005-12-08 Nokia Corporation Setting up a short-range wireless data transmission connection between devices
US20100278345A1 (en) * 2009-05-04 2010-11-04 Thomas Matthieu Alsina Method and apparatus for proximity based pairing of mobile devices
US20110070834A1 (en) * 2009-09-24 2011-03-24 Research In Motion Limited System and associated nfc tag using plurality of nfc tags associated with location or devices to communicate with communications device
US20110159959A1 (en) 2009-12-24 2011-06-30 Sony Computer Entertainment Inc. Wireless Device Pairing Methods
US20110210820A1 (en) 2010-02-26 2011-09-01 Gm Global Technology Operations, Inc. Multiple near field communication tags in a pairing domain
US20110314168A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation System for interaction of paired devices
US20120077442A1 (en) * 2010-09-24 2012-03-29 Canon Kabushiki Kaisha Establishing communication between devices
US20120220217A1 (en) * 2011-02-24 2012-08-30 Lior Kravitz Techniques for augmented functionality by sharing wireless resources
US8312392B2 (en) 2009-10-02 2012-11-13 Qualcomm Incorporated User interface gestures and methods for providing file sharing functionality
US20120322376A1 (en) 2011-06-14 2012-12-20 Mitel Networks Corporation Centralized Bluetooth device pairing
US8370501B2 (en) 2008-04-21 2013-02-05 Microsoft Corporation Gesturing to select and configure device communication
US20130115880A1 (en) 2011-11-09 2013-05-09 Cisco Technology, Inc. Pairing a Bluetooth Device to a Virtual Desktop in a Hosted Desktop Environment
WO2013071209A1 (en) 2011-11-10 2013-05-16 Microsoft Corporation Method and system for pairing devices
US20140148094A1 (en) * 2012-11-27 2014-05-29 Microsoft Corporation Sharing of information common to two mobile device users over a near-field communication (nfc) link
US20140273820A1 (en) * 2013-03-14 2014-09-18 Motorola Mobility Llc Automatic user notification, with quick response (qr) code generation following failed nfc device pairing
US20150100463A1 (en) * 2012-05-25 2015-04-09 Jonathan Peter Vincent Drazin Collaborative home retailing system
US20150120838A1 (en) * 2010-01-18 2015-04-30 Cisco Technology, Inc. Method for Pairing a Computer with a Video Conference Device
US9130664B2 (en) * 2012-10-17 2015-09-08 Qualcomm Incorporated Wireless communications using a sound signal

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006062066A1 (en) * 2004-12-08 2006-06-15 Nec Corporation Authentication system, authentication method, and authentication information generation program
US7471200B2 (en) * 2005-06-30 2008-12-30 Nokia Corporation RFID optimized capability negotiation
JP5220625B2 (en) * 2009-01-06 2013-06-26 Kddi株式会社 Authentication method and system in terminal-to-terminal negotiation
US8823494B1 (en) * 2010-11-19 2014-09-02 Logitech Europe S.A. Systems and methods for wireless device connection and pairing
WO2012092293A2 (en) * 2010-12-30 2012-07-05 Visa International Service Association Mixed mode transaction protocol
WO2013038047A1 (en) * 2011-09-14 2013-03-21 Nokia Corporation A system, an apparatus, a device, a computer program and a method for devices with short range communication capabilities
US9628514B2 (en) * 2011-11-10 2017-04-18 Skype Device association using an audio signal
JP5130409B1 (en) * 2012-06-11 2013-01-30 ユーイング株式会社 Communication system and communication terminal connection method

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445716B1 (en) * 1997-01-21 2002-09-03 At&T Wireless Services, Inc. Method and apparatus for dynamic negotiation of protocols
US20050273609A1 (en) * 2004-06-04 2005-12-08 Nokia Corporation Setting up a short-range wireless data transmission connection between devices
US8370501B2 (en) 2008-04-21 2013-02-05 Microsoft Corporation Gesturing to select and configure device communication
US20100278345A1 (en) * 2009-05-04 2010-11-04 Thomas Matthieu Alsina Method and apparatus for proximity based pairing of mobile devices
US20110070834A1 (en) * 2009-09-24 2011-03-24 Research In Motion Limited System and associated nfc tag using plurality of nfc tags associated with location or devices to communicate with communications device
US8312392B2 (en) 2009-10-02 2012-11-13 Qualcomm Incorporated User interface gestures and methods for providing file sharing functionality
US8457651B2 (en) 2009-10-02 2013-06-04 Qualcomm Incorporated Device movement user interface gestures for file sharing functionality
US20110159959A1 (en) 2009-12-24 2011-06-30 Sony Computer Entertainment Inc. Wireless Device Pairing Methods
US20150120838A1 (en) * 2010-01-18 2015-04-30 Cisco Technology, Inc. Method for Pairing a Computer with a Video Conference Device
US20110210820A1 (en) 2010-02-26 2011-09-01 Gm Global Technology Operations, Inc. Multiple near field communication tags in a pairing domain
US20110314168A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation System for interaction of paired devices
US20120077442A1 (en) * 2010-09-24 2012-03-29 Canon Kabushiki Kaisha Establishing communication between devices
US20120220217A1 (en) * 2011-02-24 2012-08-30 Lior Kravitz Techniques for augmented functionality by sharing wireless resources
US20120322376A1 (en) 2011-06-14 2012-12-20 Mitel Networks Corporation Centralized Bluetooth device pairing
US20130115880A1 (en) 2011-11-09 2013-05-09 Cisco Technology, Inc. Pairing a Bluetooth Device to a Virtual Desktop in a Hosted Desktop Environment
WO2013071209A1 (en) 2011-11-10 2013-05-16 Microsoft Corporation Method and system for pairing devices
US20150100463A1 (en) * 2012-05-25 2015-04-09 Jonathan Peter Vincent Drazin Collaborative home retailing system
US9130664B2 (en) * 2012-10-17 2015-09-08 Qualcomm Incorporated Wireless communications using a sound signal
US20140148094A1 (en) * 2012-11-27 2014-05-29 Microsoft Corporation Sharing of information common to two mobile device users over a near-field communication (nfc) link
US20140273820A1 (en) * 2013-03-14 2014-09-18 Motorola Mobility Llc Automatic user notification, with quick response (qr) code generation following failed nfc device pairing

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Proximity Pairing of Smartphones with Ultra-High Frequency Sound Waves", Circle 38, retrieved from <circlewithme.tumblr.com/post/25893923940/proximity-pairing-sound-waves>, 2012-2013, 3 pages.
"Serious Technology", Circle 38 Inc., retrieved from <http://www.circlewithme.com/portfolio/technology> on Dec. 30, 2013, 2 pages.
Chong, "GesturePIN: Using Discrete Gestures for Associating Mobile Devices", MobileHCI '10, Sep. 7-10, 2010, pp. 261-264, Lisbon, Portugal.
Guse, "Gesture-Based User Authentication on Mobile Devices using Accelerometer and Gyroscope", Master Thesis, May 31, 2011, Corrected Version Aug. 8, 2011, 110 pages.
Peng, "Point&Connect: Intention-Based Device Pairing for Mobile Phone Users", MobiSys '09, Jun. 22-25, 2009, pp. 137-149, Krakow, Poland.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160278161A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Data transfer using non-radio frequency (rf) and rf signals
US10057942B2 (en) * 2015-03-20 2018-08-21 Qualcomm Incorporated Data transfer using non-radio frequency (RF) and RF signals
US11902789B2 (en) 2019-08-05 2024-02-13 Hewlett Packard Enterprise Development Lp Cloud controlled secure Bluetooth pairing for network device management
US11223616B2 (en) 2019-08-07 2022-01-11 Cisco Technology, Inc. Ultrasound assisted device activation

Also Published As

Publication number Publication date
KR20160085853A (en) 2016-07-18
EP3090495B1 (en) 2018-08-29
US20150189006A1 (en) 2015-07-02
EP3090495A4 (en) 2017-08-02
JP2017500834A (en) 2017-01-05
CN105874725A (en) 2016-08-17
AU2014374237A1 (en) 2016-06-09
WO2015102890A1 (en) 2015-07-09
KR101931607B1 (en) 2018-12-21
EP3090495A1 (en) 2016-11-09
AU2014374237B2 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
US9621645B2 (en) Device pairing via a cloud server
AU2019208255B2 (en) Environmentally aware dialog policies and response generation
EP3371809B1 (en) Voice commands across devices
US20190013025A1 (en) Providing an ambient assist mode for computing devices
US11538328B2 (en) Mobile device self-identification system
US20180176270A1 (en) Initiating a conferencing meeting using a conference room device
US20190196779A1 (en) Intelligent personal assistant interface system
US11935521B2 (en) Real-time feedback for efficient dialog processing
US10860289B2 (en) Flexible voice-based information retrieval system for virtual assistant
KR20210134675A (en) Method and system for learning and executing instructions through user demonstration
US11178280B2 (en) Input during conversational session
US11264027B2 (en) Method and apparatus for determining target audio data during application waking-up
US11790901B2 (en) Task-oriented dialog suitable for a standalone device
US20210407165A1 (en) Methods and systems for providing animated visual feedback for voice commands
TW202001500A (en) Information processing method and device for wearable device
US10984800B2 (en) Personal assistant device responses based on group presence
US20190065608A1 (en) Query input received at more than one device
US20190019505A1 (en) Sustaining conversational session
BR112016014095B1 (en) COMPUTER-IMPLEMENTED METHOD, DEVICE PAIRING SYSTEM AND COMPUTER READABLE NON-TRANSITORY MEDIUM
EP3792912A1 (en) Improved wake-word recognition in low-power devices

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SMUS, BORIS;PLAGEMANN, CHRISTIAN;WUELLNER, TROND THOMAS;AND OTHERS;SIGNING DATES FROM 20131224 TO 20131230;REEL/FRAME:031955/0842

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044097/0658

Effective date: 20170929

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4