Multi-device control transfer using Bluetooth LE ranging
By using the high-precision distance measurement technology in the Bluetooth 6 specification, and the phase-based ranging method, the problem of inaccurate distance measurement between user devices is solved, enabling seamless application control transfer and reliable network connectivity.
Patent Information
- Application Number
- CN202180085374.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-31
- Filing Date
- 2021-04-29
- Publication Date
- 2026-01-30
- Estimated Expiration
- 2041-04-29
AI Technical Summary
Existing wireless proximity detection methods cannot accurately measure the distance between user devices, resulting in an opaque and unseamless user experience during handover, especially when multiple user devices are used for network activities.
It employs High-Precision Distance Measurement (HADM) technology from the Bluetooth 6 specification, using a phase-based ranging method to detect the proximity between the first and second devices, and automatically transfers the operation of the first application to the second device when a change in proximity is detected.
It enables seamless control transfer between user devices, improves the transparency of user experience and the reliability of network connectivity, and ensures smooth switching in different network environments.
Smart Images

Figure CN116648937B_ABST
Abstract
Description
Background of the Invention Technical Field
[0002] This invention relates to information processing systems. More specifically, embodiments of this invention relate to performing control transfer operations.
[0003] Description of related technologies
[0004] As the value and use of information continue to increase, individuals and businesses are seeking more ways to process and store it. One option available to users is an information processing system. Information processing systems typically process, compile, store, and / or transmit information or data for business, personal, or other purposes, allowing users to leverage the value of information. Because technologies and information processing needs and requirements vary between different users or applications, information processing systems may also differ in terms of what information is processed, how it is processed, how much information is processed, stored, or transmitted, and how quickly and efficiently it can be processed, stored, or transmitted. Variations in information processing systems allow them to be general-purpose or configured for specific users or purposes (such as financial transaction processing, flight booking, corporate data storage, or global communications). Furthermore, information processing systems can include a variety of hardware and software components that can be configured to process, store, and transmit information, and may include one or more computer systems, data storage systems, and networking systems. Summary of the Invention
[0005] In one embodiment, the present invention relates to a method for performing a control transfer operation, comprising: detecting proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application having an associated first application context; detecting a change in proximity between the first device and the second device via the phase-based ranging; when the change in proximity is detected, providing a notification to a user on the second device, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and automatically providing the first application context to the second device based on the inquiry.
[0006] In another embodiment, the present invention relates to a system comprising: a processor; a data bus coupled to the processor; and a non-transitory computer-readable storage medium embodying computer program code coupled to the data bus, the computer program code interacting with a plurality of computer operations and including instructions executable by the processor and configured to: detect proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application having an associated first application context; detect a change in proximity between the first device and the second device via the phase-based ranging; when the change in proximity is detected, provide a notification on the second device to a user, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and, based on the inquiry, automatically provide the first application context to the second device.
[0007] In another embodiment, the present invention relates to a computer-readable storage medium embodying computer program code including computer-executable instructions configured to: detect proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application having an associated first application context; detect a change in proximity between the first device and the second device via the phase-based ranging; when the change in proximity is detected, provide a notification on the second device to a user, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and automatically provide the first application context to the second device based on the inquiry. Attached Figure Description
[0008] By referring to the accompanying drawings, those skilled in the art will better understand the invention, and many of its objectives, features, and advantages will become apparent. The same reference numerals are used throughout the several drawings to refer to the same or similar elements.
[0009] Figure 1 A general illustration of the components of an information processing system implemented in the systems and methods of the present invention;
[0010] Figure 2 This is a block diagram of an intelligent connected environment;
[0011] Figure 3 A simplified block diagram of the smart connectivity framework is shown.
[0012] Figure 4The hardware and software components used to perform Bluetooth network connection persistence operations are shown.
[0013] Figure 5 This demonstrates the integration of Bluetooth Low Energy (LE) High Accuracy Distance Measurement (HADM) physical links and channels into the Bluetooth protocol architecture;
[0014] Figure 6 This illustrates the operating modes used to perform control transfer operations;
[0015] Figure 7a and Figure 7b The process flow associated with performing control transfer operations is shown; and
[0016] Figure 8a and Figure 8b This illustrates user gestures used with a user device to perform operations associated with control transfer. Detailed Implementation
[0017] Disclosed are systems, methods, and computer-readable media for performing control transfer operations. Certain aspects of the invention reflect the growing need to efficiently retrieve data from where it may be stored or generated to where it is needed, whether in data centers, the cloud, at the network edge, or a combination thereof. Certain aspects of the invention also reflect the increasing number of network-enabled devices (i.e., devices that can be connected to a network via a network link) and network connectivity options. These network connectivity options include, for example, personal area networks (PANs) using Bluetooth, wireless local area networks (WLANs) such as Wi-Fi networks, wireless wide area networks (WWANs) such as 3G, 4G, and 5G cellular networks, satellite networks, and wired networks (e.g., traditional LANs), and wide area networks (WANs) such as the Internet.
[0018] Some aspects of this invention reflect the understanding that today, productivity, collaboration, work, and entertainment activities that support networks are increasingly taking place anywhere and anytime. Similarly, some aspects of this invention reflect the understanding that these activities are becoming part of daily life, thus leading to increased expectations for network connectivity whenever and wherever it is needed. Some aspects of this invention reflect the understanding that users also expect network connectivity to be seamless, reliable, and secure, regardless of the underlying technology used to provide that connectivity.
[0019] Various aspects of this invention reflect the understanding that users are increasingly using more than one user device when engaging in certain support network activities. Similarly, some aspects of this invention reflect the understanding that it is not uncommon for users to begin support network activities using one user device, such as a laptop computer, only to switch at some point to another user device, such as a smartphone, to continue those activities. For example, salespeople may work from a home office and typically use laptop computers to participate in weekly sales meetings via video conferencing.
[0020] In this example, a salesperson might only be able to participate in the first half hour of a video conference because they need to travel to the customer's site for a pre-arranged sales presentation. Continuing the example, the salesperson might sign in on the video conference and then use their smartphone to call back, allowing them to continue the meeting while traveling to the customer's site. Certain aspects of this invention reflect that while such transfers from one user device to another may be common, the processes involved are often neither transparent nor seamless, thus leading to a disruptive user experience.
[0021] Similarly, aspects of the present invention reflect the understanding that certain known Wi-Fi and Bluetooth proximity detection methods, such as Received Signal Strength Indication (RSSI), often fail to accurately measure the distance separating two network-enabled devices that are close to each other. Likewise, aspects of the present invention reflect the understanding that other wireless proximity determination methods, such as Near Field Communication (NFC) and Ultra Wideband (UWB), require precise positioning of their antennas within the user device, adding additional complexity. Similarly, aspects of the present invention reflect the understanding that some of these proximity determination methods may be limited to one-way traffic or unavailable for implementation with certain operating systems. Furthermore, in In this context, NFC is currently used exclusively for secure payments and is not permitted for transferring any other type of data.
[0022] Similarly, various aspects of the present invention reflect the understanding that certain methods outlined in the Bluetooth 6 specification, slated for adoption in 2021, enable accurate phase-based ranging. As used herein, ranging broadly refers to determining the distance between two devices of a supporting network that are close to each other, such as user devices, routers, access points, etc. In various embodiments, such ranging can be achieved using certain radio frequency (RF) phase-based ranging methods familiar to those skilled in the art. Those skilled in the art will also recognize that one such example of a phase-based ranging method is High Accuracy Distance Measurement (HADM) described in the Bluetooth 6 specification, which, as defined, aims to achieve an accuracy of less than 20 centimeters. Therefore, certain aspects of the present invention reflect the understanding that using HADM would be advantageous when attempting to accurately determine the distance separating user devices of two supporting networks that are close to each other.
[0023] For the purposes of this disclosure, an information processing system may include any tool or set of tools operable to compute, classify, process, transmit, receive, retrieve, initiate, switch, store, display, indicate, detect, record, reproduce, dispose of, or utilize information, intelligence, or data of any form for commercial, scientific, control, or other purposes. For example, an information processing system may be a personal computer, a network storage device, or any other suitable device, and may vary in size, shape, performance, functionality, and price. An information processing system may include random access memory (RAM), one or more processing resources (e.g., a central processing unit (CPU) or hardware or software control logic), ROM, and / or other types of non-volatile memory. Additional components of an information processing system may include one or more disk drives, one or more network ports for communicating with external devices, and various input and output (I / O) devices, such as a keyboard, mouse, and video display. An information processing system may also include one or more buses operable to transmit communication between various hardware components.
[0024] Figure 1This is a general illustration of an information processing system 100 that can be used to implement the systems and methods of the present invention. The information processing system 100 includes a processor (e.g., a central processing unit or “CPU”) 102, input / output (I / O) devices 104 (e.g., a display, keyboard, mouse, touchpad, or touchscreen, and associated controllers), a hard disk drive or disk storage device 106, and various other subsystems 108. In various embodiments, the information processing system 100 also includes a network port 110 operable to connect to a network 140, which is also accessible by a service provider server 142. The information processing system 100 also includes a system memory 112 interconnected with the aforementioned devices via one or more buses 114. The system memory 112 also includes an operating system (OS) 116, and in various embodiments may also include a smart connectivity system 118. In one embodiment, the information processing system 100 is capable of downloading the smart connectivity system 118 from the service provider server 142. In another embodiment, the smart connectivity system 118 is provided as a service from the service provider server 142.
[0025] In some embodiments, the intelligent connectivity system 118 may be implemented to include a traffic component 120, a persistence component 122, a context component 124, a security component 126, and a management component 128, or combinations thereof, as described in more detail herein. In some embodiments, the intelligent connectivity system 118 may be implemented to perform the intelligent connectivity operations described in more detail herein. In some embodiments, the intelligent connectivity operations may be performed by the intelligent connectivity system 118 during the operation of the information processing system 100. In some embodiments, the execution of the intelligent connectivity operations may result in improved network connectivity for the information processing system 100.
[0026] Figure 2 This is a block diagram of an intelligent connectivity environment implemented according to an embodiment of the present invention. In some embodiments, the intelligent connectivity environment 200 may include the intelligent connectivity system 118 described in more detail herein. In some embodiments, the intelligent connectivity system 118 may be implemented on a user device 204. As used herein, user device 204 broadly refers to an information processing system, such as a personal computer, laptop computer, tablet computer, personal digital assistant (PDA), smartphone, mobile phone, or other device capable of transmitting and processing data. In some embodiments, user 202 may use user device 204 to interact with intelligent connectivity system 118.
[0027] In some implementations, the intelligent connectivity environment 200 may include a local area network (LAN) 224, a personal area network (PAN) 206, a wireless local area network (WLAN), a wireless wide area network (WWAN) 226, a satellite network 270, a public switched telephone network (PSTN) 228, and a wide area network (WAN) 230, such as the Internet or a combination thereof. In some implementations, the LAN 224 may be based on one or more protocols, such as Ethernet, Asynchronous Transfer Mode (ATM), Token Ring, or Fiber Distributed Data Interface (FDDI). In some implementations, the PAN may be based on one or more protocols typically associated with Bluetooth, ZigBee, or Ultra Wideband (UWB). In some implementations, the WLAN may be based on one or more variants of the IEEE 802.11 wireless communication standard. In some implementations, the WWAN 226 may be based on one or more generations of known cellular network protocols, commonly referred to as 3G, 4G, 5G, etc. In some implementations, WAN 230 may be based on one or more protocols, such as X.25, Frame Relay, Asynchronous Transfer Mode (ATM), or Telecommunications Protocol / Internet Protocol (TCP / IP).
[0028] In some implementations, user device 204 may be implemented using communication hardware and software that allow the user device to communicate with one or more wirelessly enabled input / output (I / O) devices via a PAN 206 network link. Examples of such wirelessly enabled I / O devices include a keyboard 208, a mouse 210, a game controller 212, headphones or earphones 214, headsets 216, etc. Those skilled in the art will be familiar with network links, which are generally understood to refer to the physical and logical network components used to interconnect hosts or nodes in a network. Those skilled in the art will also recognize that these network links are typically established through the link layer of a telecommunications protocol stack, such as the Internet Protocol Suite or the Open Systems Interconnection (OSI) model. As is typically implemented, the link layer refers to a set of methods and communication protocols that are limited to the network link to which the host (e.g., the specific user device 204) is physically connected.
[0029] In some embodiments, user device 204 may be implemented using communication hardware and software that allow the user device to communicate with one or more access points 234 via a PAN 244 network link or a WLAN 244 network link, or both. Those skilled in the art will be familiar with wireless access point (AP) 234, which generally refers to networking hardware that allows wirelessly enabled devices (e.g., specific user device 204) to connect to a wired network (e.g., LAN 224). In various embodiments, AP 234 may be implemented as a standalone device. In some of these embodiments, AP 234 may be implemented as a connection to router 232 via LAN 224. In some embodiments, the functionality of AP 234 may be implemented as an integral component of router 232.
[0030] In some embodiments, user device 204 may be implemented using communication hardware and software that allows the user device to communicate with one or more peripheral devices 236 via a PAN 246 network link, a LAN 248 network link, or a WLAN 250 network link, or a combination thereof. In some embodiments, user device 204 may be implemented using communication hardware and software that allows the user device to communicate with one or more routers 232 via a LAN 240 network link, a WLAN 238 network link, or both. In some embodiments, user device 204 may be implemented using communication hardware and software that allows the user device to communicate with one or more WWAN 226 cell towers 260 via a WWAN 262 network link. In some embodiments, user device 204 may be implemented using communication hardware and software that allows the user device to communicate with one or more satellites 270 via a satellite 276 network link.
[0031] In various embodiments, a specific cell tower 260, or a specific satellite 270, or a combination of both, may be implemented individually or in combination to provide user equipment 204 with specific location data 278 familiar to those skilled in the art. In some embodiments, user equipment 204 may be configured to receive such location data 278, which serves as a data source for determining the location '1' 220 to 'n' 222 of user equipment 204. In some embodiments, location data 278 may include GPS data provided by Global Positioning System (GPS) satellites 270. In some embodiments (not shown), location data 278 may include various Internet Protocol (IP) or other network address information assigned to user equipment 204. In some embodiments (not shown), location data 278 may also be provided by router 232 or access point 234, or both.
[0032] In some implementations, one or more satellites 270 may be implemented to establish a satellite network link 274 to base station 272 using known satellite communication protocols. In various implementations, base station 272 may also be implemented to connect to PSTN 228, which in some implementations may also be implemented to connect to one or more WWANs 230, or one or more WANs 230, or a combination thereof. In various implementations, one or more LANs 224 may be implemented to connect to one or more WANs 230, or a combination thereof. In some of these implementations, one or more routers 232 may be implemented individually or in combination to connect a particular LAN 224 to a particular WAN 230.
[0033] In various embodiments, when user device 204 moves from position '1' 220 to position 'n' 222, the intelligent connectivity system 118 can be implemented to establish specific network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276. In some of these embodiments, the establishment of specific network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276 can be based on the availability of connectivity to the respective network. In various embodiments, the intelligent connectivity system 118 can be implemented to switch from one network link 206, 238, 240, 242, 244, 246, 248, 250, 262, 276 to another network link. In some of these embodiments, such switching can be based on the corresponding signal strength, available bandwidth, network latency, or a combination thereof, associated with the availability of connectivity to the respective network.
[0034] In some implementations, the intelligent connectivity system 118 can be implemented to switch from one network link 206, 238, 240, 242, 244, 246, 248, 250, 262, 276 to another network link based on the location of the user device 204 at specific locations '1' 220 to 'n' 222. In various implementations, the intelligent connectivity system 118 can be implemented to establish two or more simultaneous network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276. In some of these implementations, the bandwidth corresponding to two or more network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276 can be combined to provide aggregated network link bandwidth for use by the user device.
[0035] In various implementations, the intelligent connectivity system 118 can be implemented to assign network connections corresponding to specific software applications or user device 204 processes to specific network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276. In some implementations, the intelligent connectivity system 118 can be implemented to assign two or more software applications or user device 204 processes to two or more network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276 respectively based on their corresponding attributes. For example, the intelligent connectivity system 118 can be implemented to assign a wireless-enabled game controller 212 to the PAN 206 link, while information generated and received by a game executed on the user device 204 can be assigned to the WLAN 238 network link.
[0036] In some of these implementations, two or more software applications or user device 204 processes, or combinations thereof, are assigned to two or more network links 206, 238, 240, 242, 244, 246, 248, 250, 262, 276, depending on where user device 204 is located, from a specific location '1' 220 to 'n' 222. For example, only a lower-speed (e.g., 300 Mbps) WLAN 238 network link may be available at location '1' 220, but both a high-speed (e.g., 100 Gbps) LAN 240 network link and a relatively high-speed (e.g., 1.7 Gbps) WLAN 238 network link may be available at location 'n' 222. In this example, user 202 may want to play a specific online game while conducting an online chat session, regardless of whether they are at location '1' 220 or 'n' 222. Continuing the example, the bandwidth of the WLAN 238 network link at location '1' 220 may be insufficient to support the network connectivity requirements of the online game. Therefore, the additional overhead of network traffic associated with online chat sessions may cause the game to not perform as responsively as expected.
[0037] However, the intelligent connectivity system 118 can be implemented to assign online chat sessions to the higher-speed WLAN 238 network link and online games to the high-speed LAN 240 network link available at location 'n' 222. Therefore, the responsiveness of online games could be improved due to the 100Gbps speed provided by the LAN 238 network link available at location 'n' 220, while the 1.7Gbps speed of the WLAN 240 network link would adequately support online chat sessions. Those skilled in the art will recognize that many such embodiments and examples are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0038] In some embodiments, the intelligent connectivity system 118 may be implemented to establish and manage one or more Virtual Private Network (VPN) connections over one or more corresponding network links. Those skilled in the art will be familiar with VPNs, which are typically implemented as private networks extending, for example, a private LAN 224 over a public WAN 230 of the Internet, such as the Internet, using known tunneling protocols, so that users 202 can use their user devices 204 to send data to and receive data from external resources, such as remote servers, as if they were directly connected to the private network. Some embodiments of the invention reflect the understanding that a single VPN may not always be sufficient for the specific operating modes described in more detail herein.
[0039] Therefore, in some implementations, the intelligent connectivity system 118 can also be implemented to perform multi-link network traffic routing operations. As used herein, multi-link traffic routing operation broadly refers to any operation performed to route network traffic over two or more network links, as described in more detail herein. In various implementations, as described in more detail herein, multi-link traffic operations can be performed to perform many-to-many mappings of multiple VPN connections to corresponding multiple network links. In some of these implementations, many-to-many mappings can be optimized for a specific multi-link configuration. As used herein, since it involves many-to-many mappings of multiple VPN connections to corresponding multiple network links, optimization broadly refers to using certain network link attributes (e.g., available bandwidth, congestion, latency, signal strength, supported protocols, etc.) to determine which network link is best suited for allocating a particular VPN.
[0040] In some implementations, multi-link traffic operation is initiated by identifying concurrently running VPNs. In various implementations, the intelligent connectivity system 118 may be configured to perform certain operations to identify these concurrently running VPNs. A configuration policy associated with each identified VPN is then determined. In various implementations, for each VPN, the configuration policy may be configured to include certain information associated with the types of supported network links, each type of traffic that can be routed, etc.
[0041] The network filtering driver (NFD), described in more detail herein, is then used to create n+1 first-in-first-out (FIFO) network traffic queues, where 'n' is defined as the number of previously identified VPNs. Subsequently, when each identified VPN is initiated, a network tunnel indicator is created for each identified VPN. In some implementations, the network tunnel indicator can be implemented as a network tunnel pointer familiar to those skilled in the art. For example, network tunnel pointers '1' or '2' can be generated separately for VPNs '1' and '2'.
[0042] Subsequently, the associated configuration policy for each VPN is transmitted to the NFD. In some embodiments, the associated configuration policy for a VPN can be implemented to define which networks do not require the use of a VPN. In some embodiments, the associated configuration policy for a VPN can be implemented to define which types of network links (e.g., WLAN, WWAN 226, etc.) the VPN supports. In some embodiments, the configuration policy can be implemented to define what types of network traffic are allowed to be routed to which VPN. In some embodiments, the associated configuration policy for each VPN can be implemented to create a list of available VPNs and their associated available network links. Those skilled in the art will recognize that many such embodiments using this configuration policy are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0043] Subsequently, the intelligent connectivity system 118 can receive requests from the operating system (OS) of the user device 204 to allocate or reassign existing network traffic queues to previously identified VPNs. Continuing the previous example, network traffic queue '1' → network tunnel '1', network traffic queue '2' → network tunnel '1', and network traffic queue '3' → network tunnels without non-VPN network traffic. If such a request is received, it is determined whether a new network traffic queue is needed. If so, a new network traffic queue is generated and mapped to the associated network tunnel. Subsequently, or if it was previously determined that a new network traffic queue was not needed, each available network traffic queue is mapped to an available network link, and then the corresponding new VPN is established.
[0044] Figure 3 A simplified block diagram of an intelligent connectivity framework implemented according to an embodiment of the present invention is shown. In various embodiments, the intelligent connectivity framework 300 may be implemented as including certain computing and communication hardware 302, certain basic software and firmware 304, an intelligent connectivity system 118, and one or more operating modes 312 or combinations thereof. In some embodiments, the computing and communication hardware 302 and the basic software and firmware 304 or combinations thereof may be implemented on a user device, as described in more detail herein.
[0045] In various implementations, as described in more detail herein, certain base software and firmware 304 may be implemented using certain computing and communication hardware 302 to detect the availability of connectivity to a specific network. In various implementations, as also described in more detail herein, certain base software and firmware 304 may also be implemented using certain computing and communication hardware 302 to establish a network link to the detected network for transmitting information. In some implementations, information may be transmitted via one or more Virtual Private Network (VPN) connections. In some implementations, the base software and firmware 304 may be implemented as including a network traffic filtering platform 306. In some implementations, the network traffic filtering platform 306 may be implemented as... Kernel-mode filter driver.
[0046] In some implementations, the smart connectivity system 118 may be implemented to perform smart connectivity operations. As used herein, smart connectivity operations are broadly defined as any operation that enhances the ability of a user device to utilize network connectivity available from one or more networks, as described in more detail herein. In various implementations, the smart connectivity system 118 may be implemented to perform specific smart connectivity operations, either alone or in combination, using certain computing and communication hardware 302 and certain underlying software and firmware 304.
[0047] In some embodiments, the intelligent connectivity system 118 may be implemented as including a traffic component 120, a persistence component 122, a context component 124, a security component 126, and a management component 128, or a combination thereof. In some embodiments, the traffic component 120, persistence component 122, context component 124, security component 126, or management component 128 may be implemented individually or in combination to perform specific intelligent connectivity operations. In some embodiments, the traffic component 120 may be implemented to determine whether one or more networks are available to provide network connectivity to the information processing system 100. In some embodiments, the traffic component 120 may be implemented to use one or more networks individually or in combination to provide network connectivity to user devices.
[0048] In some embodiments, the persistence component 122 may be implemented to use two or more networks, alone or in combination, to provide network connectivity continuity to user equipment. In some embodiments, the persistence component 122 may be implemented to include a control transfer subcomponent 308. In some embodiments, as described in more detail herein, the control transfer subcomponent 308 may be implemented to perform control transfer operations.
[0049] As used herein, a control transfer operation broadly refers to any operation performed to transfer control of an application executing on a user device of one supporting network to a user device of another supporting network. In some embodiments, a control transfer operation can be implemented to seamlessly transfer an application executing on a user device of a first supporting network to a device of a second supporting network, and to enable control from the user device of the second supporting network once execution is underway on the second supporting network. In some embodiments, the transfer of control can occur based on the proximity of a device of one supporting network to a device of another supporting network, one or more user gestures, or a combination thereof.
[0050] In some embodiments, context component 124 may be implemented to select one or more networks to provide network connectivity to the user device based on the context in which the user device is being used. In some embodiments, security component 126 may be implemented to select one or more networks to provide secure network connectivity to the user device. In various embodiments, management component 128 may be implemented to manage certain aspects of the network connectivity provided to the user device by one or more networks.
[0051] In various implementations, the intelligent connectivity system 118 can be implemented to provide a certain network connection to the user device at a specific time or place, or at a specific time and place, based on the user device's current operating mode 312. As used herein, the user device's operating mode 312 broadly refers to the purpose for which the user device can be used. In some implementations, the user device's operating mode 312 may be associated with the specific use of the user device for productivity 314, collaboration 316, work 318, or entertainment 320, or a combination thereof.
[0052] As used herein, and because it relates to operating mode 312, productivity 314 broadly refers to the ratio of output to input. For example, a consultant at a construction company might need to estimate the cost of a project at a client's work site. In this example, the consultant could input certain project-related information, such as the quantity and cost of certain materials and anticipated labor costs, into a project estimation application running on a mobile user device. Continuing the example, the estimator can achieve a certain level of productivity 314 by simply using the project estimation application to generate an initial estimate.
[0053] However, if the user device is able to establish two Virtual Private Network (VPN) connections using available network connectivity—one to the consultant's resources and the other to the client's resources—the consultant can achieve a higher level of productivity. If so, the consultant can use the first VPN connection to securely access past estimates for similar projects, which can then be used to prepare a final estimate for the client. Once the final estimate is complete, it can be presented to the client using the second VPN connection.
[0054] As used herein, and because it relates to mode of operation 312, collaboration 316 broadly refers to actions involving interaction with someone to achieve a common purpose. Those skilled in the art will recognize that many examples of such a common purpose are possible. For instance, a common purpose could be a group of individuals with shared interests using their respective user devices to participate in a video conference to make or create something. As another example, a common purpose might be a group of friends using their respective user devices to meet regularly via video conference to maintain their relationship.
[0055] As used herein, and because it relates to mode 312 of operation, job 318 broadly refers to effort or work undertaken to produce or accomplish something. Those skilled in the art will recognize that job can take many forms. For example, a pest control worker might be paid per job. In this example, the pest control worker might stop at a coffee shop, access their public Wi-Fi network, and establish a VPN connection to his office. Once connected, the pest control worker can securely download his tasks for the day. He then proceeds to each location one by one and completes his tasks. Continuing the example, after completing each task, the pest control worker might complete a report. Once completed, the pest control worker can access the cellular network, establish a VPN connection, and then securely upload each report to his office.
[0056] Some embodiments of the present invention reflect the understanding that not all tasks 318 are performed for monetary rewards. For example, some tasks 318 may be performed for educational purposes. To illustrate this example, students can use mobile user devices, wherever they are, to access knowledge resources via a network connection, use those resources to complete tasks, and then submit the tasks using the same or different network connections.
[0057] As another example, some work 318 can be performed for altruistic reasons. To illustrate this example, a member of a nonprofit might volunteer to check on the health of elderly residents. In this example, the volunteer could use her home Wi-Fi connection to establish a VPN connection with the nonprofit. Once the VPN connection is established, the volunteer downloads a list of residents she plans to visit that day, along with their addresses, to her tablet. She then spends the entire morning using the tablet to record the status of each resident. The volunteer then stops at a restaurant for lunch. After ordering, she accesses the restaurant's Wi-Fi network, establishes a VPN connection with the nonprofit, and uploads a report summarizing the morning's work.
[0058] As used herein, and because it relates to operating mode 312, entertainment 320 broadly refers to the act of providing or being provided with entertainment or pleasure. Those skilled in the art will recognize that entertainment can take many forms. For example, a user can use a mobile device to wirelessly connect to their home's local area network (LAN). Once the connection is established, the user can access a streaming movie service. Once accessing the streaming movie service and selecting a movie, the user can use Bluetooth to wirelessly connect a pair of headphones to their mobile device. Once connected, the user can watch the movie on their mobile device while simultaneously listening to the movie's soundtrack using the wireless headphones.
[0059] As another example, a user can use a gaming computer to play online multiplayer games. In this example, the user can use a wired connection to their home LAN for the gaming computer and a cellular connection for their mobile phone. Continuing the example, the gaming computer can use the wired connection to the LAN to ensure that any bandwidth available on the LAN is dedicated to the online game itself. Similarly, the user can use their mobile phone's cellular connection to communicate with other players in the online game.
[0060] Some embodiments of the invention reflect how a particular mode of operation 312 may be associated with the simultaneous use of a particular user device to achieve productivity 314, collaboration 316, work 318, or entertainment 320, or a combination thereof. For example, a game developer may use a user device in conjunction with one or more network connections while developing a game. In this example, the developer may use the user device and one or more network connections to improve their productivity 314, collaborate with colleagues 316, work 318 in various aspects of the game, and simultaneously enjoy entertainment 320 through the game itself. Those skilled in the art will recognize that many such examples of mode of operation 312 are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0061] Figure 4Hardware and software components for performing Bluetooth network connectivity persistence operations according to embodiments of the present invention are shown. In various embodiments, the user device may be implemented using certain hardware 402 and software 414 components that allow the user device to determine its location and the location of certain network links, as described in more detail herein. In some embodiments, hardware component 402 may include a location sensor hub module 404, a personal area network (PAN) module 406, a wireless local area network (WLAN) module 408, a wireless wide area network (WWAN) module 410, a global navigation satellite system (GNSS) module 412, etc.
[0062] As used herein, the sensor hub 404 module broadly refers to a hardware module configured to integrate and process sensor data from different sensors. In some implementations, the sensor hub 404 module can be implemented to offload sensor-related operations and processes from the main central processing unit (CPU) of the user device to reduce battery consumption and provide associated performance improvements. A known example of a sensor hub 404 module is... Integrated Sensor Hub (ISH).
[0063] In some implementations, the PAN 406 module can be implemented to transmit data to an associated PAN via a network link, as described in more detail herein. In some implementations, the WLAN 408 module can be implemented to transmit data to an associated WLAN via a network link, also as described in more detail herein. Similarly, as described in more detail herein, the WWAN 410 module can be implemented in some implementations to transmit data to an associated WWAN via a network link. In various implementations, as described in more detail herein, the GNSS 412 module can be implemented to receive certain GPS data from Global Positioning System (GPS) satellites.
[0064] In some embodiments, software component 414 may include a sensor hub 416 driver, a PAN 418 driver, a WLAN 420 driver, a WWAN 422 driver, a GNSS 424 driver, etc. In some embodiments, the sensor hub 416, PAN 418, WLAN 420, WWAN 422, and GNSS 424 drivers may be implemented to provide programming interfaces for controlling and managing the sensor hub 404, PAN 406, WLAN 408, WWAN 410, and GNSS 412 modules, respectively. In some embodiments, software component 414 may also include an operating system (OS) sensing stack 426 and an OS stack driver 428, which are familiar to those skilled in the art.
[0065] Similarly, in some embodiments, software component 414 may include positioning engine 436. In some embodiments, positioning engine 436 may be implemented to perform location determination operations. As used herein, location determination operations are broadly defined as any operation performed to determine the location of a user device, the location of an available network, and the distance between the two.
[0066] In some implementations, software component 414 may also include a location provider 430 module. In some implementations, the location provider 430 module may be implemented as including a location trigger 432 submodule, or a pacing device 434 submodule, or both. In various implementations, the location trigger 432 submodule may be implemented to perform geofencing operations. As used herein, geofencing operations are broadly defined as any operation performed to establish a virtual perimeter (often referred to as a geofence) for a corresponding real-world geographic area.
[0067] In some implementations, geofences, such as radii around specific geographic points, can be dynamically generated. In some implementations, geofences can be generated as a set of predefined geographic boundaries. In some implementations, the location trigger 432 submodule can be implemented to generate an alarm when an associated user device approaches the boundary of a specific geofence. In some implementations, the pedometer 434 submodule can be implemented to measure the individual steps a user may take while using a specific user device. In various implementations, the pedometer 434 submodule can be implemented to perform such user step measurements using some information provided by a motion sensor or accelerometer, or both.
[0068] In various implementations, the location trigger 432 submodule and the pacing detector 434 submodule may be implemented individually or in combination to provide the location provider 430 module with certain location information that they can generate. In various implementations, the location provider 430 module may be implemented to generate location information for use by a software application executing on a user device. In some implementations, the location provider 430 module may be implemented to determine the geographic location of an associated user device via WLAN triangulation, the use of location information provided by the IEEE 802.11mc standard, IP address resolution, cellular tower triangulation, the use of Global Positioning System (GPS) information, or a combination thereof. In various implementations, the location provider 430 module may be implemented to provide location information for Location Network Tag (LNT) using certain location information provided by the location trigger 432 and pacing detector 434 submodules, as described in more detail herein. A known example of the location provider 430 module is familiar to those skilled in the art. LOCATION
[0069] In some implementations, software component 414 may include positioning system 436. In various implementations, positioning system 436 may be implemented to estimate expected throughput, latency, coverage, signal strength, and other network connectivity metrics for a particular network link using certain known artificial intelligence (AI) and machine learning (ML) methods. In various implementations, when using such AI and ML methods, positioning system 436 may be implemented using certain location information provided by location provider 430, or LNT information that it can generate.
[0070] In some embodiments, software component 414 may also include a user settings 440 module. In some embodiments, the user settings 440 module may be implemented to store certain network connectivity settings associated with a user of the user device. Those skilled in the art will recognize that many such embodiments are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0071] Figure 5 This illustration shows the integration of Bluetooth Low Energy (LE) High Accuracy Distance Measurement (HADM) physical links and channels into the Bluetooth protocol architecture according to an embodiment of the present invention. In some embodiments, Bluetooth LE HADM physical channel 524 and Bluetooth LE HADM physical link 526 can be implemented as integrated into the corresponding Bluetooth protocol architecture 500, respectively. Figure 5 As shown, the Bluetooth protocol architecture 500 may include a physical transport layer 502, which corresponds to the Bluetooth LE physical transport layer 522. Similarly, as... Figure 5 As shown, the Bluetooth protocol architecture 500 may include a physical channel layer 504 and a physical link layer 506. In some implementations, the Bluetooth LE HADM physical channel 524 and the Bluetooth LE HADM physical link 526 may be implemented as physical channel 504 and physical link 506 layers of the Bluetooth protocol architecture 500, respectively.
[0072] Similarly, as Figure 5 As shown, the Bluetooth protocol architecture 500 may include a logical transport layer 508, a logical link layer 512, a channel layer 514, and an application layer 516. As typically implemented, the channel layer 514 of the Bluetooth protocol architecture 500 may include a logical link control and adaptive protocol (L2CAP) layer and an isochronous adaptive layer (ISOAL) channel, both of which are familiar to those skilled in the art. In some embodiments, the control transport component 308, described in more detail herein, may be implemented as corresponding to the application layer 516 of the Bluetooth architecture 500.
[0073] Figure 6The diagram illustrates an operational mode for performing control transfer operations implemented according to embodiments of the invention. In some embodiments, the control transfer operations described in more detail herein can be performed to transfer control 650 of an application running on a device supporting one network (e.g., user device '1' 612) to a device supporting another network (e.g., user device '2' 622). In some embodiments, as described in more detail herein, the transfer of control 650 can be initiated due to the proximity of the two devices supporting the network to each other, or the execution of one or more user gestures, or a combination thereof.
[0074] In some implementations, the control transfer operation can be implemented as including a user operating mode 602 and a kernel operating mode 604. Those skilled in the art will be familiar with user operating mode 602, which refers to the operation of a user application such as a web browser, word processor, or spreadsheet when the operating system (OS) of the information processing system (IHS) of user devices '1'612 and '2'622 is running. Those skilled in the art will also recognize that core OS components run in kernel mode 604. Similarly, drivers such as Bluetooth Low Energy (LE) drivers '1'618 and '2'638, and services such as High Accuracy Distance Measurement (HADM) services '1'616 and '2'636, typically run in kernel mode 604.
[0075] Similarly, as Figure 6 As shown, other OS components, such as the General Attribute Profile (GATT) profiles '1' 620 and '2' 640 and the Attribute Protocol (ATT) '1' 622 and '2' 643, typically run in kernel mode 604. Those skilled in the art will be familiar with the concept of GATT profiles, which are general specifications for sending and receiving small chunks of data, often referred to as attributes, over Bluetooth Low Energy (LE) network links. More specifically, as is typically implemented, GATT profiles are specifications of how devices, such as user devices '1' 612 and '2' 622, operate when used with a specific application 630 (e.g., application 630 associated with the specific user device context described in more detail herein), control transfer components '1' 614 and '2' 634, etc. In some embodiments, a particular device may be implemented using one or more GATT profiles. For example, a device may be implemented using a battery level detector and a device proximity detector supporting the network.
[0076] Those skilled in the art will also recognize that GATT profiles are built on top of ATT, as typically implemented ATT provides certain uniquely identifiable device attribute information and associated string IDs in a standardized 128-bit format. These attributes are formatted as features and services. An ATT feature, which can be considered a type (similar to a category), contains a single value and 0-n descriptors describing that feature value. An ATT descriptor is a defined ATT attribute that describes a feature value in a relevant unit of measurement (e.g., decibels of signal strength, centimeters of device proximity), such as the acceptable range for a particular feature value. An ATT service is a collection of ATT features, such as the signal strength of a particular network link, the distance between two nearby user devices that support network operation, etc.
[0077] In some implementations, the same is true. Figure 6 As shown, the transfer of control 650 from user device '1' 612 to user device '2' 632 of a specific application 630 can be initiated by the user invoking a control transfer component '2' 634 implemented on user device '2' 632. In some embodiments, the control transfer component '2' 634 can be invoked due to user device '2' 632 being close to user device '1' 612, one or more user gestures, or a combination thereof, as described in more detail herein. In some embodiments, control transfer components '2' 634 and '1' 614 can be implemented to determine the proximity of user device '2' 632 to user device '1' 612, detect one or more user gestures, or a combination thereof, using HADM services '2' 638 and '1' 616, respectively. In some embodiments, control transfer components '2' 634 and '1' 614 can also be implemented to interact with application 630 to transfer its control from user device '1' 612 to user device '2' 632, as also described in more detail herein.
[0078] In some embodiments, Bluetooth LE drivers '1' 618 and '2' 638 may be implemented to interact with application 630 and HADM services '1' 616 and '2' 636, respectively, to support the transfer of control 650 of application 630 from user device '1' 612 to user device '2' 632. Similarly, in some embodiments, Bluetooth LE drivers '1' 618 and '2' 638 may be implemented to interact with GATT profiles '1' 620 and '2' 640 and ATT '1' 622 and '2' 642, respectively, to determine which transfer of control 650, selected and described in more detail herein, can be presented to the user. Those skilled in the art will recognize that many such embodiments are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0079] Figure 7a and Figure 7b This illustration shows a process flow associated with performing a control transfer operation, implemented according to an embodiment of the invention. In this embodiment, user devices '1' 612 (e.g., a laptop computer) and '2' 622 (e.g., a smartphone) are both network-enabled. More specifically, as Figure 7a and Figure 7b As shown, user devices '1' 612 and '2' 632 can be implemented to establish a Bluetooth network 702 connection with each other using network link 702, respectively. As described in more detail herein, user devices '1' 612 and '2' 632 can be implemented to use the Bluetooth network 702 connection when performing certain control transfer operations, as also described in more detail herein.
[0080] Similarly, Figure 7a and Figure 7b As shown, user devices '1' 612 and '2' 632 can be implemented to establish network connections with a wireless wide area network (WWAN) 226, a wireless local area network (WLAN) 708, or a local area network (LAN) 224, or combinations thereof, respectively, using network links 706, 710, and 712. In some embodiments, user devices '1' 612 and '2' 632 can be implemented to establish network connections to the same WWAN 226, WLAN 708, or LAN 224, or different WWAN 226, WLAN 708, or LAN 224, or combinations thereof, using network links 706, 710, and 712. In some embodiments, user devices '1' 612 and '2' 632' can be implemented to use connections to the WWAN 226, WLAN 708, or LAN 224, respectively, to execute one or more applications associated with a specific user device context, as described in more detail herein.
[0081] In this embodiment, user devices '1' 612 or '2' 632 can be implemented in step 714 to use their respective network connections to Bluetooth network 702 to determine whether they have a Bluetooth pairing relationship when they are close to each other. If not, in step 716, a Bluetooth pairing operation familiar to those skilled in the art is performed to pair user devices '1' 612 and '2' 632 with each other. In some embodiments, the Bluetooth pairing operation may be initiated by user device '1' 612 or '2' 632.
[0082] Then, in step 718, user device '1' 612 initiates an application (e.g., a video conferencing application) associated with a specific user device context, such as a video conferencing session for collaboration. Then, in step 720, as described in more detail herein, the user initiates a control transfer operation using user device '2' 632. In some embodiments, as described in more detail herein, the control transfer operation may be initiated due to the proximity of network-enabled user devices '1' 612 and '2' 622 to each other, or the execution of one or more user gestures, or a combination thereof.
[0083] In various implementations, in step 722, certain features of the Bluetooth Low Energy (LE) High Accuracy Distance Measurement (HADM) service can be used to determine the proximity of user devices '1' 612 and '2' 622 to each other, or the execution of one or more user gestures, or a combination thereof. For example, a user can hold device '2' 622 (e.g., a smartphone) within a specific proximity distance (e.g., six inches) of user device '1' 612 (e.g., a laptop computer) and perform a left-to-right swipe gesture. In this example, the proximity of user devices '1' 612 and '2' 622, combined with the user gesture of user device '2' 622 performing a left-to-right swipe gesture, initiates a transfer control operation. In various implementations, the actual distance between user devices '1' 612 and '2' 622 that are close to each other, and the specific user gesture used to initiate the transfer control operation, are design choices.
[0084] Then, in step 724, the network-supporting user device '1' 612 provides the network-supporting user device '2' 632 with certain General Attribute Profile (GATT) profile information, as described in more detail herein, and then uses said information at the network-supporting user device '2' 632 to determine which control transfer options are available to be presented to the user. For example, user device '2' 622 may use the GATT profile information provided by user device '1' 612 to present the user with transfer control options such as "transfer video conferencing to smartphone," "mute microphone," and "audio only," or combinations thereof. Those skilled in the art will recognize that many such examples are possible in using GATT profile information to determine which transfer control options are presented to the user. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0085] Then, in step 726, the user makes a transfer control selection, and once selected, the selection is transferred to user device '1' 612. Subsequently, in step 728, the transfer control selection made by the user in step 726 (e.g., "Transfer video conferencing to smartphone - audio only") is transmitted to user device '1' 612. In response, in step 730, user device '1' 612 securely transmits certain metadata associated with the currently executing application (e.g., video conferencing session) (e.g., account, user ID, password, video conferencing session number, user preferences, etc.) to user device '2' 622. Then, in step 732, user device '2' 622 uses the transferred metadata to initiate the application currently executing on user device '1' 612 and transfers control of the application to itself.
[0086] Once the application currently running on user device '1' 612 begins running on user device '2', control of the application is transferred to user device '2' 622 in step 734. In step 736, user device '2' 622 then sends an acknowledgment (ACK) to user device '1' 612 confirming that the transfer of control of the currently running application is complete. In response, user device '1' 612 terminates the currently running application in step 738.
[0087] Figure 8a and Figure 8b The illustration shows a user gesture associated with a control transfer operation performed using a user device, according to an embodiment of the present invention. In some embodiments, the user device '1' 612 may be implemented using antennas 'A' 812 and 'B' 814. In some embodiments, antennas 'A' 812 and 'B' 814 may be integrated within the physical range of the user device '1' 612.
[0088] In these embodiments, the placement of antennas 'A'812 and 'B'814, the distance between them, and the method of integrating them within the physical range of user equipment '1'612 are design choices. In some embodiments, additional antennas, not shown, may be integrated within the physical range of user equipment '1'612 to support additional user gestures described in more detail herein. In some embodiments, antennas 'A'812 and 'B'814 and... Figure 8a and Figure 8b The orientation of additional antennas, not shown, can also be repositioned or otherwise changed to support different or additional user gestures.
[0089] In some embodiments, both user device '1' 612 and user device '2' 632 can implement high-precision distance measurement (HADM) functionality, as described in more detail herein. In some embodiments, these HADM functions can be implemented to accurately determine the corresponding distances (e.g., within 20 cm or less) between user device '2' 632 and antennas 'A' 812 and 'B' 814. In some embodiments, the corresponding distances between user device '2' 632 and antennas 'A' 812 and 'B' 814 can be used to determine the proximity of user devices '1' 612 and '2' 632 to each other, the occurrence of one or more user gestures, or a combination thereof.
[0090] For example, such as Figure 8a As shown, the use of HADM by both user devices '1' 612 and '2' 632 makes it possible to detect that the distance 'D1' 820 between user device '2' 632 and antenna 'A' 812 is less than the distance 'D2' 822 between user device '2' 632 and antenna 'B' 814. Therefore, it can be determined that user device '2' 632 is located to the left 802 of user device '1' 612. Continuing the example, the use of HADM by both user devices '1' 612 and '2' 632 makes it possible to detect that the distance 'D3' 824 between user device '2' 632 and antenna 'A' 812 is approximately the same as the distance 'D4' 826 between user device '2' 632 and antenna 'B' 814. Therefore, it can be determined that user device '2' 632 is located between the left 802 and right 804 of user device '1' 612.
[0091] Continuing the example further, the use of HADM by both user devices '1' 612 and '2' 632 can make it possible to detect that the distance 'D5' 828 between user device '2' 632 and antenna 'A' 812 is greater than the distance 'D6' 830 between user device '2' 632 and antenna 'B' 814. Therefore, it can be determined that user device '2' 632 is located to the right 804 of user device '1' 612. Continuing the example even further, sequential HADM measurements of distances 'D1' 820, 'D2' 822, 'D3' 824, 'D4' 826, 'D5' 828, and 'D6' 830 over a certain period of time can make it possible to determine that user device '2' 632 is moving from the left 802 to the right 804 relative to user device '1' 612, and is therefore being used to perform user gestures. Continuing with the example, in some implementations such user gestures can be used to transfer control of an application running on user device '1' 612 to user device '2' 632.
[0092] As another example, such as Figure 8bAs shown, the use of HADM by both user devices '1' 612 and '2' 632 makes it possible to detect that the distance 'D7' 832 between user device '2' 632 and antenna 'B' 814 is less than the distance 'D8' 834 between user device '2' 632 and antenna 'A' 812. Therefore, it can be determined that user device '2' 632 is located to the right 804 of user device '1' 612. Continuing the example, the use of HADM by both user devices '1' 612 and '2' 632 makes it possible to detect that the distance 'D9' 836 between user device '2' 632 and antenna 'B' 814 is approximately the same as the distance 'D10' 838 between user device '2' 632 and antenna 'A' 812. Therefore, it can be determined that user device '2' 632 is located between the right 804 and the left 802 of user device '1' 612.
[0093] Continuing the example further, the use of HADM by both user devices '1' 612 and '2' 632 can make it possible to detect that the distance 'D11' 840 between user device '2' 632 and antenna 'B' 814 is greater than the distance 'D12' 842 between user device '2' 632 and antenna 'A' 812. Therefore, it can be determined that user device '2' 632 is located to the left 802 of user device '1' 612. Continuing the example even further, sequential HADM measurements of distances 'D7' 832, 'D8' 834, 'D9' 836, 'D10' 838, 'D11' 840, and 'D12' 842 over a certain period of time can make it possible to determine that user device '2' 632 is moving from the right 804 to the left 802 relative to user device '1' 612, and is therefore being used to perform user gestures. Continuing with the example, in some embodiments, such user gestures can be used to transfer control of an application running on user device '2'632 to user device '1'612. Those skilled in the art will recognize that many such embodiments and examples are possible. Therefore, the foregoing is not intended to limit the spirit, scope, or intent of the invention.
[0094] As will be appreciated by those skilled in the art, this invention can be embodied as a method, system, or computer program product. Therefore, embodiments of the invention can be implemented entirely in hardware, entirely in software (including firmware, resident software, microcode, etc.), or in a combination of software and hardware. These different embodiments are generally referred to herein as “circuit,” “module,” or “system.” Furthermore, the invention can take the form of a computer program product on a computer-usable storage medium, wherein computer-usable program code is embodied.
[0095] Any suitable computer-usable or computer-readable medium may be used. A computer-usable or computer-readable medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or apparatuses. More specific examples (not an exhaustive list) of computer-readable media will include: portable computer floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable optical disc read-only memory (CD-ROM), optical storage devices, or magnetic storage devices. In the context of this document, a computer-usable or computer-readable medium can be any medium that can contain, store, transmit, or transfer programs for use by or in connection with an instruction execution system, device, or apparatus.
[0096] Computer program code for performing the operations of this invention can be written in object-oriented programming languages such as Java, SmartTalk, and C++. However, it can also be written in conventional programming languages such as C or similar languages. The program code can execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer via a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0097] Embodiments of the present invention are described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, establish means for implementing the functions / operations specified in one or more blocks of the flowchart illustrations and / or block diagrams.
[0098] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of writing, the article of writing including instruction means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0099] Computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0100] This invention is well-suited to achieving the aforementioned advantages, as well as other inherent advantages therein. Although the invention has been depicted, described, and defined by reference to specific embodiments thereof, such reference does not imply limitation of the invention, nor should such limitation be inferred. The invention is capable of considerable modifications, alterations, and equivalents in form and function, as will be apparent to those skilled in the art. The depicted and described embodiments are merely exemplary and do not constitute the full scope of the invention.
[0101] Therefore, the invention is intended to be limited only by the spirit and scope of the appended claims, and the equivalents are fully understood in all respects.
Claims
1. A computer-implemented method for performing a control transfer operation, comprising: detecting proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application, the first application having an associated first application context; detecting, via the phase-based ranging, a change in proximity between the first device and the second device; when the change in proximity is detected, providing a notification to a user on the second device, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and based on the asking, automatically providing the first application context to the second device, wherein the first device includes a plurality of antennas, and the phase-based ranging detects proximity of the second device to each of the plurality of antennas; wherein the method further comprises: detecting a gesture of the second device relative to each of the plurality of antennas; and performing a predetermined operation in response to the gesture.
2. The method of claim 1, wherein: the phase-based ranging provides high accuracy distance measurements (HADM).
3. The method of claim 1, further comprising: initiating execution of a version of the first application on the second device; and transferring control of the first application to the version of the first application executing on the second device.
4. The method of claim 1, further comprising: when the first device and the second device are in proximity to each other, determining when the first device and the second device have a Bluetooth pairing relationship.
5. A system, comprising: a processor; a data bus coupled to the processor; and a non-transitory computer-readable storage medium embodying computer program code, the non-transitory computer-readable storage medium coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor and configured for: detecting proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application, the first application having an associated first application context; detecting, via the phase-based ranging, a change in proximity between the first device and the second device; when the change in proximity is detected, providing a notification to a user on the second device, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and based on the asking, automatically providing the first application context to the second device; wherein the first device includes a plurality of antennas, and the phase-based ranging detects proximity of the second device to each of the plurality of antennas; wherein the instructions executable by the processor are further configured for: detecting a gesture of the second device relative to each of the plurality of antennas; and performing a predetermined operation in response to the gesture. performing a predetermined operation in response to the gesture.
6. The system of claim 5, wherein the phase-based ranging provides high accuracy distance measurements (HADM).
7. The system of claim 5, wherein the instructions executable by the processor are further configured for: initiating execution of a version of the first application on the second device; and transferring control of the first application to the version of the first application executing on the second device.
8. The system of claim 5, wherein the instructions executable by the processor are further configured for: determining when the first device and the second device have a Bluetooth pairing relationship when the first device and the second device are in proximity to each other.
9. A non-transitory computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions configured for: detecting proximity between a first device and a second device using Bluetooth-compatible phase-based ranging, the first device executing a first application, the first application having an associated first application context; detecting a change in proximity between the first device and the second device via the phase-based ranging; when the change in proximity is detected, providing a notification to a user on the second device, the notification asking the user whether to transfer operation of the first application from the first device to the second device; and based on the asking, automatically providing the first application context to the second device; wherein the first device comprises a plurality of antennas, and the phase-based ranging detects proximity of the second device to each of the plurality of antennas; wherein the computer executable instructions are further configured for: detecting a gesture of the second device relative to each of the plurality of antennas; and performing a predetermined operation in response to the gesture.
10. The non-transitory computer-readable storage medium of claim 9, wherein: the phase-based ranging provides high accuracy distance measurements (HADM).
11. The non-transitory computer-readable storage medium of claim 9, wherein the computer executable instructions are further configured for: initiating execution of a version of the first application on the second device; and transferring control of the first application to the version of the first application executing on the second device.
12. The non-transitory computer-readable storage medium of claim 9, wherein the computer executable instructions are further configured for: determining when the first device and the second device have a Bluetooth pairing relationship when the first device and the second device are in proximity to each other.
13. The non-transitory computer-readable storage medium of claim 9, wherein: the computer executable instructions are deployable to a client system from a server system at a remote location.
14. The non-transitory computer-readable storage medium of claim 9, wherein: The computer executable instructions are provided by the service provider to the user on demand.
Citation Information
Patent Citations
Automatic seamless context sharing across multiple devices
US20140141714A1