Peripheral computing device

CN116719423BActive Publication Date: 2026-10-09MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202310840755.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-12-29
Filing Date
2018-11-10
Publication Date
2026-10-09
Estimated Expiration
2038-11-10

AI Technical Summary

Technical Problem

主机和外围设备之间的连接机制和协议可以变化,并且有时即使连接已被建立后,与主机设备的交互也可能会给用户带来负担

Benefits of technology

[0011] Quick Pair streamlines the connection mechanism between peripheral devices and host devices without requiring users to navigate to the host device's settings panel just to connect the devices. Quick Pair, implemented using a proximity platform, also focuses and centralizes functions and filters for peripheral devices that could otherwise be performed by various services within the host device. This centralization within the host device's OS saves battery life, system bandwidth, and processor and memory utilization, as all these functions are performed by a single client within the OS—the proximity platform. For example, battery life can be saved compared to alternative options where tracing is performed but lacks the centralization at the proximity platform.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116719423B_ABST
    Figure CN116719423B_ABST
Patent Text Reader

Abstract

The present disclosure relates to peripheral devices. A host device, such as a laptop or desktop computer, that supports a wireless point-to-point connection with a peripheral device, such as a pair of headphones, a mouse, etc., is configured with fast pairing with which the host device can quickly surface a prompt on a UI for a user to pair the host and peripheral devices when the peripheral device is in range. For example, a pattern within an advertisement payload can be transmitted to, or beaconed to, the host device by the peripheral device, where the host device then recognizes that the peripheral device is enabled for fast pairing based on the pattern. When the peripheral device is in range, the host device automatically surfaces a prompt for a user to pair the two devices, and moves the prompt to a notification center in the event the user wishes to pair with the device at a later time.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related applications

[0002] This application is a divisional application of the invention patent application with application number 201880075228.3 and the invention title "Peripheral Computing Device". Technical Field

[0003] This disclosure relates to peripheral computing devices, and more particularly to the rapid pairing of peripheral computing devices and host devices. Background Technology

[0004] Host computing devices (such as smartphones, desktop computers, and laptops) utilize a multitude of wireless peripheral computing devices (such as speakers, mice, and keyboards) to provide users with additional functionality and experiences. The connection mechanisms and protocols between host and peripheral devices can vary, and sometimes, even after a connection is established, interacting with the host device can be burdensome for the user. Sometimes, users navigate across multiple screens or settings to pair the host device with the peripheral device. Summary of the Invention

[0005] A rapid pairing system instantiated on host and peripheral computing devices is used to quickly and easily pair devices via point-to-point connections. The host device can utilize a proximity platform, instantiated within its OS (operating system), which allows services and applications to register patterns and operate centrally when peripheral devices broadcast announcements or connect to the host device. For example, a single pattern represents details about a peripheral device, or details about operations or functions performed when a specific peripheral device, a category of peripheral devices, or a group of peripheral devices connects to the host device, or before a connection is established between the peripheral device and the host device. Groups or categories of peripheral devices can be further subdivided by manufacturer, device type (e.g., speakers, headphones, keyboards, mice, etc.), and other groups or categories.

[0006] When using In this technology (as opposed to other wireless connectivity protocols), advertisement packets from peripheral devices are transmitted, broadcast, or sent to the host device via beacons, enabling the peripheral device to connect. When the host device detects the advertisement, it can choose whether to connect to the peripheral device. The advertisement includes a field in octet or byte form containing a pattern within the advertised payload, which corresponds to one or more registered patterns on the host device. The neighboring platform examines the advertisement and, based on the detected correspondence between the received payload pattern and the registered patterns, the host device performs necessary operations, functions, filters, etc. Although a scheme can be triggered when the host and peripheral device are currently connected, a connection is not required for one or more schemes to be triggered at the host device. In some implementations, quick pairing can be considered a unidirectional channel for communication from the peripheral device to the host device, such that advertisements from the respective peripheral device are broadcast without the peripheral device being aware of the host device's configuration.

[0007] Quick Pair is an implementation of proximity platform support. For example, when an announcement payload is detected within range of the host device, the laptop host device recognizes the announcement transmitted from the mouse peripheral, and the laptop identifies a pattern within the announcement payload indicating support for Quick Pair. The laptop automatically displays a prompt (e.g., a hint or notification) on the UI (User Interface) providing the user with the option to pair the laptop with the mouse or postpone pairing. Then, based on user input, the laptop pairs the two devices, or, if the user postpones pairing, the UI sends the prompt to the Action Center (e.g., the Notification Center), which stores pending notifications for the OS. The prompt remains in the Action Center until the user selects the prompt to pair with the device, cancels the prompt, or the Quick Pair mode is no longer detected, such as when the peripheral becomes obsolete (e.g., turned off, out of range, or Quick Pair has been removed from the announcement).

[0008] Using a proximity platform, quick pairing enables host devices to implement schemes or filters to perform functions associated with quick pairing. For example, a master filter for quick pairing can enable a laptop computer to monitor broadcast beacons of peripheral devices (such as mice) within a range of host devices determined by the proximity platform.

[0009] Additionally, the laptop can employ a secondary filter in which it periodically tracks the presence of the mouse. Both the primary and secondary filters can use passive scanning, but the secondary filter operates by tracking addresses within the notification. The laptop attempts to determine if the mouse is still within range or otherwise available, thereby verifying that the mouse has not become obsolete and therefore useless to the laptop. This secondary filter can be applied after the primary filter has detected the peripheral device, but before the host and peripheral device are paired or connected. For quick pairing purposes, the secondary filter may not focus on the exact location or relative distance to the laptop, but rather on guarantees that the mouse is still active, within range, and not turned off. In the case of quick pairing, the primary filter may not be able to dismiss it, so it can continue detecting peripheral devices with quick pairing enabled. When tracking the peripheral device is no longer necessary, such as when the device is paired or out of range, the secondary filter can be ignored.

[0010] In another illustrative example, Quick Pair enables a PC host device (personal computer) connected to a wireless health watch peripheral to download an application associated with the watch, automatically connect to the watch, and then register the user with the downloaded application—all within the Quick Pair ecosystem. Each action performed is based on a scheme and / or filter registered with a neighboring platform in response to events occurring when the host device connects to the health watch. For example, a pattern within the payload of an announcement transmitted from the watch corresponds to a registered pattern on the neighboring platform, thereby giving rise to the various operations discussed above.

[0011] Quick Pair streamlines the connection mechanism between peripheral devices and host devices without requiring users to navigate to the host device's settings panel just to connect the devices. Quick Pair, implemented using a proximity platform, also focuses and centralizes functions and filters for peripheral devices that could otherwise be performed by various services within the host device. This centralization within the host device's OS saves battery life, system bandwidth, and processor and memory utilization, as all these functions are performed by a single client within the OS—the proximity platform. For example, battery life can be saved compared to alternative options where tracing is performed but lacks the centralization at the proximity platform.

[0012] This summary provides a simplified overview of some concepts, which will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that address any or all of the disadvantages pointed out in any part of this disclosure. It will be understood that the aforementioned subject matter can be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as one or more computer-readable storage media. These and other various features will become apparent from reading the following detailed description and referring to the accompanying drawings. Attached Figure Description

[0013] Figure 1 An exemplary wireless connection between a host device and a peripheral device is shown;

[0014] Figure 2 An exemplary architecture of a host computing device is shown;

[0015] Figure 3A -B shows an illustrative schematic diagram of a peripheral computing device;

[0016] Figure 4-6 An exemplary environment in which a service registers with a neighboring platform is shown;

[0017] Figure 7 An illustrative taxonomy for the field is shown, which is related to the taxonomy for data from peripheral devices. The transmitted announcement payload packets are associated;

[0018] Figure 8 An illustrative diagram of data packets associated with Bluetooth transmission is shown;

[0019] Figure 9 An exemplary field is shown that is associated with the payload of an announcement within a protocol data unit of a data packet;

[0020] Figure 10 An example payload of an announcement in which fields contain an example pattern is shown;

[0021] Figure 11 An exemplary notification mode associated with LE (Low Power) Bluetooth pairing is shown;

[0022] Figure 12 An exemplary notification pattern associated with classic Bluetooth pairing is shown;

[0023] Figure 13 This illustrates an example of how a host device operates when it receives a notification packet from a mouse peripheral device.

[0024] Figure 14 This illustrates an exemplary operation of the host device when it receives a notification packet from the headset peripheral device;

[0025] Figure 15 An exemplary classification of schemes that the host device can execute is shown;

[0026] Figure 16 An exemplary fast pairing scheme that the host device can perform is shown;

[0027] Figure 17-18 An exemplary passive scan performed against the primary and secondary filters is shown;

[0028] Figure 19 An exemplary user interface (UI) for a host device is shown, in which prompts are placed on a surface to automatically configure the host device for quick pairing with peripheral devices;

[0029] Figure 20 An exemplary UI of the host device is shown, in which prompts are placed on the surface to allow the user to quickly connect to the mouse peripheral device;

[0030] Figure 21 An exemplary UI is shown, which confirms the pairing of the host and the peripheral device;

[0031] Figure 22-23 An illustrative security measure is shown for users to enter or confirm a PIN before pairing the host with a peripheral device;

[0032] Figure 24 An exemplary UI is shown, in which the user chooses not to pair the host device with the peripheral device;

[0033] Figure 25 An exemplary notification area is shown, which stores information from... Figure 24 The prompts are for future user engagement;

[0034] Figure 26 An example UI is shown where the notification message has been removed from the notification area;

[0035] Figure 27 An exemplary UI is shown, in which the host device places a prompt on the surface for the user to download a health app and set up the user's wearable device;

[0036] Figure 28 An exemplary UI is shown, in which the host device places a prompt on the surface for the user to connect to the wearable watch;

[0037] Figure 29An exemplary UI is shown, in which the host device confirms the settings of the wearable device;

[0038] Figures 30-31 An exemplary process executed by the host device and / or peripheral devices is shown;

[0039] Figure 32 This is a simplified block diagram of an exemplary computer system, such as a mobile device, which can be used in part to implement this fast pairing.

[0040] Figure 33 A block diagram of an exemplary host or peripheral device is shown, which can be used in part to implement this quick pairing; and

[0041] Figure 34 A block diagram of an exemplary host or peripheral computing device is shown, which can be used to implement this quick pairing.

[0042] Similar reference numerals indicate similar elements in the accompanying drawings. Unless otherwise specified, elements are not drawn to scale. Detailed Implementation

[0043] Figure 1 An exemplary environment 100 is shown, in which various host devices 1051, 1052, 1053 are illustrated. n (Also collectively referred to as host device 105) and corresponding peripheral devices 1101, 1103, 1104, 110 n (Also collectively referred to as Peripheral Device 110) Wirelessly connected (as indicated by the double arrow line in Figure 115). In this example, the host device is depicted as a smartphone, laptop computer, and tablet computer, but other host devices can also be utilized, such as personal computers (PCs), game consoles, and wearable computing devices such as head-mounted displays. The host device can be used by the user to make and receive voice and / or video calls, participate in messaging (e.g., SMS / MMS) and email communications, use applications, play or stream music, movies, and other multimedia, access data-intensive services, browse the World Wide Web, etc.

[0044] Figure 1 The peripheral devices 110 depicted and paired with the corresponding host device 105 include various wireless devices, including Speakers, mouse, keyboard, headphones, and a stylus configured for use with a touchscreen display. Figure 1Other wireless peripherals, not shown, can also be used with this quick pairing. These include remote controls, video game controllers, and chargers. Additionally, in some scenarios, certain host devices may be considered peripherals. For example, when a smartphone is connected to a PC (such as when a smartphone attempts to upload multimedia (e.g., pictures) to the PC for backup), the smartphone can be considered a peripheral. In some scenarios, the operations performed between the two devices can determine the assignment of host (master device) and peripheral (slave device).

[0045] Figure 2 An exemplary layered architecture 200 of a host computing device 105 is shown. Architecture 200 is typically implemented in software, although in some cases a combination of software, firmware, and / or hardware may be utilized. The architecture is layered and includes an application layer 205, an OS (operating system) layer 210, and a hardware layer 215. The hardware layer 215 provides the layers above it with an abstraction of various hardware (e.g., input and output devices, networking and radio hardware, etc.) used by the host device 105. In this exemplary example, the hardware layer supports processor(s) 220, memory 225, input / output devices (e.g., mouse, keyboard, monitor) 230, and wireless communication devices 235.

[0046] The wireless communication device 235 or transceiver may include technologies that support the transmission and reception of data over any distance via wave, including classic technologies. (Examples include Enhanced Data Rate (EDR)), Bluetooth LE (Low Energy), NFC (Near Field Communication), and Wi-Fi. These various wirelessly connected devices can transmit and receive data using waves such as radio waves, and transmit and receive data at specific frequencies according to protocols specific to the technology. For example, Bluetooth uses 2.4 GHz radio frequency to transmit and receive data between two or more devices, while Wi-Fi can utilize 2.4 GHz, 3.6 GHz, or 5.0 GHz radio frequencies.

[0047] The wireless communication device 235 can transmit and receive data, for example, in the form of radio waves, wherein the device converts data into radio waves for transmission, or decomposes radio waves into data upon reception. The wireless communication device can be operatively connected to a processor that transmits data from and to the wireless communication device. In addition to beacons, the wireless communication device can also monitor the signal strength of connections to peripheral devices. In one example, the device can monitor beacons when the peripheral device is not connected, and monitor the connection when the peripheral device is connected. The proximity platform is designed to handle both scenarios.

[0048] In this exemplary example, application layer 205 supports various applications 240, including web browsers 245, email applications 250, map applications 255, etc. Although in Figure 2 Only a few applications are depicted, but any number of applications can be utilized by the device, including calendar, contacts, news, health, etc. Applications are typically implemented using locally executed code. However, in some cases, these applications may rely on services and / or remote code execution provided by remote servers, other computing platforms (such as those supported by service providers), or other cloud-based resources (not shown).

[0049] OS layer 210 specifically supports management system 260, operating applications / programs 265, and schema registration 270 in other operations. The OS layer can interoperate with the application layer and hardware layer to perform various functions and features. Furthermore, although schema registration is shown as a component within device 105, alternatively, it can be instantiated, wholly or partially, on a remote server and communicate with host device 105 via a network (not shown). This network can include any number of connections where devices and services are part, such as personal area networks (LANs), local area networks (LANs), wide area networks (WANs), the Internet, or the World Wide Web.

[0050] Figure 3A and 3B Indicative hierarchical architectures 300 and 350 of peripheral device 110 are shown respectively. Peripheral devices can be, for example... Figure 3A The more complex device shown has components similar to the host devices discussed above, or may be as follows: Figure 3B The description is rather candid and simple. Figure 3A and 3B The various layers and components within can be similar to those described above. Figure 2 The host device operates by discussing the layers and components.

[0051] Go to Figure 3A More complex devices could include, for example, smartphones that, when connected to a laptop computer (the host device), function as peripherals (or slave devices). As another example, a pair of headphones could include more complex features than typical headphones, and thereby utilize… Figure 3A The various layers in the described architecture. For example, headphones with noise cancellation and other complex functions may require additional components, applications, etc.

[0052] On the other hand, for simple peripheral devices that do not require complex operation, Figure 3BThe system shown can be more compact. For example, the keyboard may include a controller (or processor) dedicated to recognizing keystrokes and transmitting various keystrokes and user input to the computer. In this approach, the processor can communicate with a wireless communication device that transmits various inputs to the host device.

[0053] If the keyboard is wireless, the 355 battery can provide voltage to the processor and other components to operate. Although the battery is only about... Figure 3B And shown, but Figure 2 and Figure 3A Each system architecture described herein may also include a battery or some form of direct power source. Figure 3B It also describes exemplary, rather than exhaustive, wireless communication technologies that peripheral devices can employ, including Bluetooth Classic, Bluetooth LE, Wi-Fi, and NFC.

[0054] To establish a connection, such as using Bluetooth LE, peripheral device 110 can transmit advertisement packets via beacon, broadcast, or other means. From here, the host device can detect the advertisement using wireless communication device 235. If the advertisement is recognized by wireless communication device 235, in some systems, the wireless communication device signals it to the OS for processing by the host device, whereby the OS can forward the data received in the advertisement to one or more services or applications to perform various operations. In this scenario, multiple services can consume system resources to perform the same task, such as monitoring the connectivity of peripheral devices. This consumes system resources by consuming battery power, performing repetitive work across services, and processing power.

[0055] Figure 4 , Figure 5 and Figure 6 Exemplary environments 400, 500, and 600 are shown, where each service registers a mode with a neighboring platform 415 to perform various schemes, filters, and functions. Services 405, 505, and 605 each register (as shown in numbers 420, 520, and 620) their respective modes 410, 510, and 610 with the neighboring platform 415. The neighboring platform can be exposed to the OS and wireless communication devices, ensuring that both are correctly configured to detect modes and perform corresponding functions.

[0056] The corresponding modes can utilize preset modes instantiated on the host device 105, such that each mode represents specific information that is decryptable and understandable by the host device. Therefore, notifications received from peripheral devices can correspond to registered modes, thereby enabling the host device to automatically understand details about the connected peripheral devices and automatically perform functions for that specific peripheral device.

[0057] Quick Pairing is a use and implementation surrounding the Proximity Platform ecosystem. Various services registered with the Proximity Platform centralize all processing within a single location (i.e., the Proximity Platform) within the already utilized wireless communication devices of the OS and host device, instead of monitoring multiple services for specific peripheral connections. Centralizing processing on the Proximity Platform saves battery life, processing power, and bandwidth associated with computing devices, and ultimately extends battery life per charge due to resource savings.

[0058] Figure 7 This is an exemplary classification of field 700, which is associated with the advertised payload transmitted from peripheral device 110. Each field can be filled with information in bytes or octets, forming a complete pattern. Assuming both devices support the proximity platform protocol and underlying technology, the pattern ultimately received by the host device can provide specific details about the peripheral device, the functions and operations performed by the host device, and the schemes and filters applied by the host device. (See also: ...) Figure 4-6 The transmitted patterns discussed can correspond to registered patterns from the corresponding service at a neighboring platform.

[0059] The classification of field 700 in the notification may include length 705, manufacturer 710, company ID 715, scheme type (e.g., using a filter) 720, sub-scheme type 725 (e.g., using a sub-filter), calibration and RSSI data 730, and optional payload 735 (e.g., bucket information). Although filters and sub-filters are shown as examples of schemes, they are only one example of how a host device can implement a scheme. For example, a filter can be implemented using a sub-scheme, and a sub-filter can be implemented using a filter. The configuration of the scheme and filters can ultimately be determined based on the host device's desired functionality when a peripheral device sends a beacon to or connects to the host device.

[0060] Additionally, depending on the overall system configuration, each corresponding field can occupy one or more fields within the payload, specific services register their patterns with the system, and hosts and peripherals interact with the system. For example, if the calibration technique changes or is found to be more or less efficient in a different way, the RSSI data 730 can use multiple fields to transmit data.

[0061] Figure 8This is an illustrative diagram 800 of a Bluetooth data packet 805, which is transmitted from a peripheral device 110 to a host device 105. The Bluetooth data packet 805 includes various fields for different purposes and provides different information to the host device. Data within each corresponding field may include a specified number of one or more bytes (or octets), with each peripheral device adhering to a specific structure according to the Bluetooth protocol.

[0062] The preamble 810 can be used for internal protocol management, such as synchronization and timing estimation at the receiving host device. The access address 815 identifies the connection between the host and peripheral devices to reduce the possibility of data packet collisions between different wireless connections. The PDU (Protocol Data Unit) 820 field carries a header 835 and a payload 840, containing data for announcing data packets 825. The CRC (Cyclic Redundancy Check) 830 is an error detection code used to verify data packets against unwanted alterations; it can be used to ensure the data integrity of wirelessly transmitted data packets.

[0063] The header 835 of the PDU field describes the packet type and PDU type, which can define the purpose of the peripheral device. For example, the PDU type can indicate whether the peripheral device is a connectable undirected announcement event, a non-connectable undirected announcement event, a scannable undirected announcement event, etc. The payload 840 also forms part of the PDU field 820. The payload 840 can be of variable size and describes a unique pattern 845 for a given scenario, such as the actions that the peripheral device and the host device will perform.

[0064] The payload consists of a series of integers for a set of bytes, which form a pattern that instructs the host device 105 to perform a specific action. For example, Figure 9 An exemplary structure of a notification data packet 825 is depicted, which includes a header 835 and a payload 840. In this example, the payload contains 32 bytes, but more or fewer bytes may be used for the payload depending on the Bluetooth version and individual scheme employed. The payload 840 includes fields 905 as shown representatively from fields 1-N. Figure 10 An exemplary notification data group 825 is shown, in which field 1005 includes integers, each of which indicates to the host device information about a peripheral device, one or more actions to be performed, or one or more filters to be applied.

[0065] Figure 11 and 12Exemplary announcement packets 1100 and 1200, each with unique modes 1105 and 1205, are shown respectively. Announcement packet 1100 can be configured for LE (Low Energy) Bluetooth pairing, and announcement packet 1200 can be configured for classic Bluetooth pairing, such as using EDR (Enhanced Data Rate). Figure 11 and 12 The payload of the notification group described may include multiple fields, each of which corresponds to a specific description 1110 and 1210, and a value 1115 and 1215.

[0066] Each value associated with the corresponding field provides specific information as detailed in description fields 1110 and 1210 (e.g., length, seller ID, company ID, scheme, received RSSI calibration, etc.). Although in Figure 11 and 12 The code shows a specific octet, but other variations are possible. For example, certain fields can be removed, and additional octets can be added, such as the scheme field. Additional fields can be created or added for specific descriptions or other purposes, as long as the bytes remain available. For unconnected peripherals (broadcast announcements or beacons), the announcement field can be used as the scheme. For connected peripherals, additional information can be retrieved using the Bluetooth GATT (General Attributes) database or an L2CAP (Logical Link Control and Adaptation Protocol) service connection to customize the proximity scheme.

[0067] OneBeacon (represented by reference numerals 1120 and 1220) can instruct a specific scheme between a host and peripheral devices. The OneBeacon protocol is the payload format structure used, which can provide entries or first-level instructions to the host device for the scheme and sub-schemes used. Therefore, a neighboring platform implements a OneBeacon scheme that instructs the device to implement specific schemes and sub-schemes, which from there can cause the host device to execute specific filters and sub-filters. Figure 11 and 12 In the example included, OneBeacon is indicated via fields 2-7, but OneBeacon can alternatively be indicated using fewer fields (e.g., one or two fields) or more fields. Although OneBeacon is utilized in this scenario, and as applied to Quick Match, the proximity platform can ultimately operate without indications in the OneBeacon format. OneBeacon is just one example of an introductory implementation of efforts to reach scenarios and sub-scenarios, but other customizations of fields (e.g., seller and company ID fields) can result in different scenarios separated from OneBeacon.

[0068] If a peripheral device detects that the host device does not support (e.g., is not configured to, or does not participate in) the OneBeacon protocol with executable filters and subschemas, the peripheral device will still execute the normal pairing mode without filters and subschemas. Therefore, OneBeacon instructs the host and peripheral devices as follows: each device is configured with fields for proximity platforms and fast pairing, or is configured to otherwise execute the original pairing mode without schemes, subschemas, and filters.

[0069] Figure 13 and Figure 14 Corresponding exemplary environments 1300 and 1400 are shown, where the neighboring platform for the host device depends on the services and applications registered with the neighboring platform to handle scenarios and filters. For example, in Figure 13 In environment 1300, mouse 1305 (a peripheral device in this example) transmits announcement 1310 to wireless communication device 235 associated with host device 105 according to the OneBeacon protocol. The specific scheme and filters applied depend on and correspond to the pattern from the announcement ( Figure 11 and 12 ).

[0070] In this example, the proximity platform 415 of the wireless communication device identifies the advertisement as a communication that the OS can utilize, such as through detection scheme 1315 and applied filter 1320. From here, the wireless communication device forwards the advertisement to the OS for processing. In this respect, the proximity platform can act as a client instantiated on both the wireless communication device and the OS. In the absence of a proximity platform, the OS layer can typically forward the identified advertisement to a specific service or application on the host device for processing. Conversely, the proximity platform is a centralized platform used to perform various tasks.

[0071] Figure 14 Another exemplary environment 1400 is provided, in which a pair of earphones 1405 (peripherals in this example) transmits an announcement 1410 to a wireless communication device 235 associated with a host device 105. In this example, a neighboring platform detects a single scheme 1415 and sees the existence of associated sub-schemes 1420 and 1425, which are used by the host device to perform for that particular peripheral device (i.e., the earphones).

[0072] Figure 13 and 14 The different functionalities among the examples can be attributed to different modes within the notification group payload. For example, in Figure 13 In this context, the host device might want to place notifications on the surface of the UI to quickly enable the user to connect the mouse. Conversely, in... Figure 14In this context, the host device may want to launch a music application, automatically play music, and execute other schemes and associated filters that can be utilized when headphones are connected and are convenient for the user.

[0073] Figure 15 An exemplary classification of scheme 1500 is shown, which the host device can execute when connected to or receiving notifications from peripheral devices. Although in Figure 15 The document describes specific scenarios and functions, but this list is not exhaustive, and other filters and scenarios can also be executed. Exemplary scenarios and filters executable by the host device include downloading an application 1505, directing the user to a URL (e.g., a website, a local / remote folder) 1510, opening one or more applications (e.g., a health app or a music app) 1515, launching one or more background applications 1520, placing a notification on the surface (e.g., for connecting devices) 1525, tracking peripheral devices (e.g., their location relative to the host device) 1530, and verifying whether the peripheral device is within a threshold presence to the host device 1535.

[0074] The threshold can be, for example, the distance between the peripheral device and the host device that is detectable by the host device. For instance, the threshold could be the maximum distance between the peripheral device and the host device, even when the device is not fully operational (e.g., there is latency or connectivity issues). Alternatively, the threshold could be the operating distance between the peripheral device and the host device, such that this distance is the maximum distance at which the host and peripheral device can interact while still operating normally, and where there are few or no connectivity issues, lag, interruptions, etc.

[0075] Figure 16 An exemplary fast pairing scheme 1600 is illustrated. In this example, the host device can detect the presence of one or more peripheral devices 1605, which can be implemented as a primary filter. Once presence is detected, a secondary filter (or sub-filter 1610) tracks the detected peripheral device based on the payload address 1615. Once the host and peripheral device are paired or connected, the tracking secondary filter (indicated by label 1625) can be dismissed because tracking is no longer necessary. However, the host device can continue to execute the primary filter to detect other peripheral devices.

[0076] Tracking may include verifying an estimated distance to a peripheral device or associating the peripheral device with a specific category that represents a remote parameter. For example, a remote parameter may include a specific category indicating the relative distance of the peripheral device to the host device. These categories can be used so that the host device can continue to use or rely on the peripheral device without concern that the peripheral device is out of range, inactive, or no longer powered on. The distance or estimated distance may be determined using an RSSI value determined by the host device, where the RSSI value is associated with the advertised transmission of the peripheral device. The distance or estimated distance may be determined as discussed in the following co-pending application, which has U.S. Serial No. 15 / 859,099, entitled “PROXIMITY PLATFORM,” filed December 29, 2017, co-filed with this document, claiming the benefit and priority of Provisional Application Serial No. 62 / 590,022, filed November 22, 2017.

[0077] Figure 17 and Figure 18 An exemplary primary and secondary filter is shown, which host device 105 can apply to achieve fast pairing. For example, the host device can implement passive scanning 1705 for peripheral devices as primary filter 1710. Passive scanning is a scan in which the wireless communication device performs the scan and the host device does not open and analyze the advertisement packets. Furthermore, using passive scanning, the host device may not send a request to the peripheral device for every broadcast data packet it receives, in order to respect the privacy of the host device. Although in Figure 17 and Figure 18 Passive scanning is described, but depending on the underlying wireless protocol / technology used, different modes can be used between different levels of filters.

[0078] Passive scanning can be employed for the master filter to initially detect the presence of peripheral devices supporting fast pairing, the peripheral device being within range, and the peripheral device being in pairing mode. From this point, tracking of the peripheral device is initiated. For example, the master filter can cause the host device to receive notification packets such as... Figure 11-12 The information shown includes calibrated RSSI information, seller ID, company ID, etc.

[0079] After the host device has various information related to the peripheral device, the host device 105 can implement a secondary filter 1810, which also utilizes a passive scan 1805 to verify the continued presence of the peripheral device 110. The passive scan of the secondary filter can check the address of the advertisement to verify the presence of the peripheral device. This passive scan can occur periodically, such as every second, every ten seconds, every 30 seconds, etc., for wireless communication devices to pick up advertisements sent by beacons. In this way, the host device can track and verify the presence of the peripheral device when it becomes stale, i.e., when the peripheral device is turned off, out of range, inactive, or the fast pairing payload has been removed from the advertisement.

[0080] Figure 19-26 An exemplary scheme is shown in which fast pairing is utilized based on the proximity of platforms. First, refer to... Figure 19 The wireless mouse 1905 transmits or sends a Bluetooth quick pairing notification via beacon. When within range of the host device, the Bluetooth quick pairing notification is picked up by the laptop computer host device 105. According to the quick pairing protocol, the laptop computer follows this procedure: upon recognizing the quick pairing mode within the mouse's notification, it displays a toast message 1910 on the laptop computer's UI. The toast message may be displayed only once, such as when the OS first detects the quick pairing notification; in this case, the toast message seeks the user's consent and initiates quick pairing.

[0081] The prompt asks the user if they want to subscribe to future quick pairing features. By selecting "Continue," the user subscribes to quick pairing for all future connections with peripheral devices that have a payload mode configured for quick pairing. By selecting "No, thank you," the user will have to manually enter the Bluetooth settings to connect to the mouse. In this case, the user selects "Continue," as indicated by input 1915. This input can be in the form of a touch on a touchscreen display, a mouse click, etc.

[0082] Figure 20 An exemplary UI is shown with Quick Pairing enabled and in operation, where a prompt message 2005 is placed on the surface for the user to quickly pair the two devices when the host device detects a Quick Pairing notification for the mouse within its payload range. The names and images of the peripheral devices are based on information retrieved from the Quick Pairing payload notification. When the user selects "Connect," as indicated by input 2010, ... Figure 21As shown, a notification 2105 instructing the designer that the mouse is connected is placed on the surface. The user's mouse setup is now complete. From here, neighboring platforms following the quick pairing filter can now disregard secondary filters, at least regarding paired devices. However, the primary filter can remain effective to monitor announcements from other wireless peripherals. Therefore, since the host and peripherals are paired, any further beacon transmissions from paired peripherals can be ignored by the host device.

[0083] In some embodiments, after the quick pairing scheme is executed, security measures may be implemented for some capable devices. Figure 22-23 An illustrative prompt is shown, providing additional security measures when a user attempts to pair peripheral devices with a host laptop computer. For example, Figure 22 The prompt message 2205 prompts the user to enter a unique PIN on the keyboard 2210. Figure 23 The prompt message 2305 prompts the user to verify that the PIN displayed on the smartphone peripheral device 2310 matches the PIN in the prompt message. These security measures verify that the user's intended device is not a spoofing attack.

[0084] Figure 24 An exemplary scenario is shown, in which a user selects not to pair the laptop and mouse by choosing "Not now" on the prompt message 2405 represented by input 2410. Then, as... Figure 25 As shown, the prompt message 2405 is then moved to the Action Center, which stores, for example, pending actions that either require user attention or provide information to the user in general. In this regard, the Action Center can alternatively be considered a notification center. The prompt message 2405 can remain in the Action Center, thereby allowing the user to take action on and pair with the detected mouse at another time. In another embodiment, if the user fails to take action, the prompt message can be moved to the Action Center, i.e., the "Not Now" option is not selected, but the prompt message remains on the screen. In this case, the prompt message will be moved to the Action Center after no action is taken within a preset time period.

[0085] The tooltip 2405 can be retained in the Action Center until the user pairs the mouse, cancels the tooltip, or the laptop detects that the mouse is outdated. For example... Figure 26An exemplary scenario is shown where the mouse is obsolete (2605). The mouse may become obsolete because it is out of range (2610), turned off (2615), or its payload has been removed from the beacon (2620). For example, a pairing protocol can be configured to force the peripheral device to remove the quick pairing payload from its announcements within a preset time period before it leaves the pairable / connectable state. In this example, the host device can transmit a signal (e.g., using a wireless communication device) to the peripheral device instructing it to remove the quick pairing payload. The preset time could be 30 seconds, but alternatively, it could be 5 seconds, 10 seconds, 1 minute, etc. This mechanism can help synchronize the removal of notification information from the action center and increase resilience against announcement outages. For example, since the host device can deterministically predict this when it detects the payload being removed, the timeout can be set, for example, to be higher.

[0086] When a peripheral device becomes obsolete due to being out of range, being turned off, or having its payload temporarily removed, and is subsequently detected, a notification message can be displayed in the UI ( Figure 20 ) or motion center ( Figure 25 The device may be repositioned on the surface. However, if the user ignores the prompt, it may not be repositioned until an action of the peripheral device interrupts the user's indifference. Exemplary actions that could interrupt the user's indifference may include the peripheral device being out of range, the peripheral device being turned off, or the payload being removed.

[0087] As mentioned above Figure 16-18 The secondary filter discussed can continue to track or monitor the mouse to verify that it is still within a threshold. Therefore, mouse tracking allows the laptop to know when the mouse stops sending beacons and is thus outdated. Upon determining that the mouse is outdated, a notification is removed from the Action Center to prevent unsuspecting users from attempting to quickly pair peripherals when they are outdated. This provides added convenience and an overall user-friendly experience.

[0088] Figure 27-29 An exemplary quick pairing scheme is shown, where the filter / scheme is implemented for wireless health watches utilizing Bluetooth. For example, Figure 27 The laptop computer detects that the health watch 2705 is within range and, according to the quick pairing protocol, places a prompt message 2710 on the surface, offering the user the opportunity to download a health application associated with the health watch 2705. The user can then select "Settings" as indicated by input 2715. In this scenario, the mode within the notification payload for the health watch may have been indicated to a nearby platform to execute an additional scheme that facilitates the use of the health watch, resulting in prompt message 2710.

[0089] Figure 28 An exemplary scheme is shown, in which quick pairing is further configured to place a prompt message 2810 on the surface for the user to quickly pair the two devices. The user selects "Connect" as indicated by input 2815, thereby pairing the two devices via Bluetooth without any further action. Figure 29 The prompt message 2905 illustrates all the actions performed and completed, requiring only a few user commands and no navigation to the app store, settings panel, etc. If the user postpones any prompt message for the health watch, the prompt can then be moved to the Action Center for the user to take action at a later time.

[0090] The downloaded application can be automatically trusted and considered safe by the health watch and laptop computer because the download follows the trusted payload pattern within the watch's advertised payload and is triggered by the proximity platform. Therefore, when certain devices conform to the proximity platform and quick pairing routines and protocols, the proximity platform can identify these devices as safe and thus act as the basis for the security of both the host and peripheral devices.

[0091] Advantageously, and as described regarding health watches, apps, drivers, updates, etc., can be installed automatically and seamlessly for new peripherals. Therefore, in situations where some devices may not function due to the lack of a corresponding app on the host device, Quick Pair and its automatic triggering function can reduce user stress and workload. For those who are not particularly tech-savvy, such as toddlers and those who do not frequently use computers, the Quick Pair ecosystem can significantly simplify their lives.

[0092] Figure 30 This is a flowchart of an exemplary method 3000 for achieving rapid pairing between a host and peripheral devices. Unless otherwise specified, the methods or steps shown in the flowchart and described in the accompanying text are not limited to a specific order or sequence. Furthermore, some methods or steps may occur or be performed simultaneously, and depending on the requirements of a given implementation, not all methods or steps must be performed in such an implementation, and some methods or steps may be used optionally.

[0093] In step 3005, upon receiving an incoming notification, the pattern within the notification is compared with a pre-registered record of the pattern. The incoming notification is within the range of the host device. The corresponding pattern may have already been registered with the host device and its wireless communication devices to facilitate this comparison. In step 3010, based on the comparison, a quick pairing scheme is identified. In step 3015, a prompt message is displayed on the host device's UI, providing the user with options to pair the host and peripheral devices. In step 3020, user input to connect to the peripheral device is received. In step 3025, in response to the input, a wireless connection with the peripheral device is established.

[0094] Figure 31 Another exemplary method 3100 is shown in which the host device uses a proximity platform to handle a fast pairing scheme. In step 3105, a pattern is received, wherein the pattern is initially received at a wireless communication device associated with the host device. In step 3110, the pattern is parsed to identify the information contained within the pattern. In step 3115, based on the information derived from the pattern, the application is downloaded over the network.

[0095] Figure 32This is a simplified block diagram of an exemplary computer system 3200, such as a PC, client machine, or server, which can be used to implement this quick pairing. The computer system 3200 includes a processor 3205, system memory 3211, and a system bus 3214 that couples various system components, including system memory 3211, to the processor 3205. The system bus 3214 can be any of several types of bus architectures, including a memory bus or memory controller, a peripheral bus, or a local bus, using any of the various bus architectures. The system memory 3211 includes read-only memory (ROM) 3217 and random access memory (RAM) 3221. The ROM 3217 stores a basic input / output system (BIOS) 3225, which contains basic routines such as those that help transfer information between components in the computer system 3200 during startup. Computer system 3200 may further include: a hard disk drive 3228 for reading from and writing to an internally located hard disk (not shown); a disk drive 3230 for reading from and writing to a removable disk 3233 (e.g., a floppy disk); and an optical disk drive 3238 for reading from or writing to a removable optical disk 3243 (such as a CD, DVD, or other optical media). Hard disk drive 3228, disk drive 3230, and optical disk drive 3238 are connected to system bus 3214 via hard disk drive interface 3246, disk drive interface 3249, and optical disk drive interface 3252, respectively. The drives and their associated computer-readable storage media provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for computer system 3200. Although this exemplary example includes hard disks, removable disks 3233, and removable optical disks 3243, other types of computer-readable storage media that can store computer-accessible data, such as magnetic tape, flash memory cards, digital video disks, data cassettes, random access memory (RAM), read-only memory (ROM), etc., may also be used in some applications of this quick pairing. Additionally, as used herein, the term computer-readable storage medium includes instances of one or more media types (e.g., one or more disks, one or more CDs, etc.). For the purposes of this specification and claims, the phrase "computer-readable storage medium" and its variations are non-transitory and do not include wave, signal, and / or other transient and / or intangible communication media.

[0096] Multiple program modules may be stored on hard disk drive 3228, disk drive 3230, optical disk drive 3238, ROM 3217, or RAM 3221, including operating system 3255, one or more applications 3257, other program modules 3260, and program data 3263. Users can input commands and information into computer system 3200 through input devices such as keyboard 3266 and pointing devices such as mouse 3268. Other input devices (not shown) may include microphone, joystick, gamepad, dish satellite dish, scanner, trackball, touchpad, touchscreen, touch-sensitive device, voice command module or device, user motion or gesture capture device, etc. These and other input devices are typically connected to processor 3205 via serial port interface 3271, but may also be connected to processor 3205 via other interfaces such as parallel port, game port, or universal serial bus (USB), with serial port interface 3271 coupled to system bus 3214. Monitor 3273 or other types of display devices are also connected to system bus 3214 via an interface such as video adapter 3275. In addition to monitor 3273, personal computers typically include other peripheral output devices (not shown), such as speakers and printers. Figure 32 The exemplary examples shown also include a host adapter 3278, a small computer system interface (SCSI) bus 3283, and an external storage device 3276 connected to the SCSI bus 3283.

[0097] Computer system 3200 can operate in a networked environment using a logical connection between one or more remote computers (such as remote computer 3288). Although in Figure 32 Only a single representative remote memory / storage device 3290 is shown. The remote computer 3288 can be selected as another human computer, server, router, network PC, peer device or other public network node, and typically includes many or all of the elements described above with respect to computer system 3200. Figure 32 The networks described include Local Area Networks (LANs) 3293 and Wide Area Networks (WANs) 3295. Such networking environments are typically deployed in, for example, office, enterprise-wide computer networks, intranets, and the Internet.

[0098] When used in a LAN networking environment, computer system 3200 connects to local area network 3293 via network interface or adapter 3296. When used in a WAN networking environment, computer system 3200 typically includes a broadband modem 3298, a network gateway, or other components for establishing communication over a wide area network 3295 such as the Internet. The broadband modem 3298 can be internal or external, and it connects to system bus 3214 via serial port interface 3271. In a networking environment, program modules or portions thereof associated with computer system 3200 may be stored in remote storage device 3290. Note that... Figure 32 The network connection shown is illustrative, and other components for establishing a communication link between computers may be used depending on the specific requirements of this quick pairing application.

[0099] Figure 33 An exemplary architecture 3300 of a device is shown, which is capable of performing the various components described herein for this quick pairing. Therefore, Figure 33 An architecture is shown that can be applied to server computers, mobile phones, PDAs, smartphones, desktop computers, netbooks, tablets, GPS devices, game consoles, and / or laptops. Architecture 3300 can be utilized to implement any aspect of the components presented herein.

[0100] Figure 33 The architecture 3300 shown includes a CPU (Central Processing Unit) 3302, a system memory 3304 including RAM 3306 and ROM 3308, and a system bus 3310 coupling the memory 3304 to the CPU 3302. A basic input / output system is stored in the ROM 3308, containing basic routines such as those that help pass information between components within the architecture 3300 during startup. The architecture 3300 also includes a mass storage device 3312 for storing software code or other computer-executable code used to implement applications, file systems, and operating systems.

[0101] Mass storage device 3312 is connected to CPU 3302 via a mass storage controller (not shown), which is connected to bus 3310. Mass storage device 3312 and its associated computer-readable storage media provide non-volatile storage for architecture 3300.

[0102] Although the description of computer-readable storage media contained herein refers to mass storage devices such as hard disks or CD-ROM drives, those skilled in the art will understand that computer-readable storage media can be any available storage media that can be accessed by architecture 3300.

[0103] By way of example and not limitation, computer-readable storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Examples of computer-readable media include, but are not limited to, RAM, ROM, EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), flash memory or other solid-state storage technologies, CD-ROM, DVD, HD-DVD (high-definition DVD), Blu-ray or other optical storage devices, magnetic tape, cassette tape, magnetic tape storage devices or other magnetic storage devices, or any other medium that can be used to store the desired information and is accessible by architecture 3300.

[0104] According to various embodiments, architecture 3300 can operate in a networked environment using a logical connection to a remote computer via a network. Architecture 3300 can be connected to a network via network interface unit 3316, which is connected to bus 3310. It is understood that network interface unit 3316 can also be used to connect to other types of networks and remote computer systems. Architecture 3300 may also include an input / output controller 3318 for receiving and processing input from several other devices, including a keyboard, mouse, or electronic pen. Figure 33 (Not shown in the image). Similarly, the input / output controller 3318 can provide output to a display, printer, or other type of output device (in...). Figure 33 (Not shown in the text).

[0105] It should be understood that the software components described herein, when loaded into and executed, can transform the CPU 3302 and the overall architecture 3300 from a general-purpose computing system into a custom-designed, special-purpose computing system to facilitate the functionality presented herein. The CPU 3302 can be composed of any number of transistors or other discrete circuit elements, which can individually or collectively present any number of states. More specifically, in response to executable instructions contained within the software modules disclosed herein, the CPU 3302 can operate as a finite state machine. These computer-executable instructions can transform the CPU 3302 by specifying how it transitions between states, thereby transforming the transistors or other discrete hardware elements constituting the CPU 3302.

[0106] Encoding the software modules presented herein can also transform the physical structure of the computer-readable storage medium presented herein. In different implementations of this specification, the specific transformation of the physical structure can depend on various factors. Examples of such factors may include, but are not limited to, the technology used to implement the computer-readable storage medium, whether the computer-readable storage medium is characterized as primary or secondary storage, etc. For example, if the computer-readable storage medium is implemented as a semiconductor-based memory, the software disclosed herein can be encoded on the computer-readable storage medium by transforming the physical state of the semiconductor memory. For example, the software can transform the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. The software can also transform the physical state of these components to store data thereon.

[0107] As another example, the computer-readable storage medium disclosed herein can be implemented using magnetic or optical techniques. In such implementations, when software is encoded in a magnetic or optical medium, the software presented herein can transform its physical state. These transformations may include altering the magnetic properties of specific locations within a given magnetic medium. These transformations may also include altering the physical characteristics or properties of specific locations within a given optical medium to change the optical properties of those locations. Other transformations of the physical medium are possible without departing from the scope and spirit of this specification, wherein the foregoing examples are provided only to facilitate the discussion.

[0108] In light of the foregoing, it can be understood that many types of physical transformations occur in architecture 3300 to facilitate the storage and execution of the software components presented herein. It can also be understood that architecture 3300 may include other types of computing devices, including handheld computers, embedded computer systems, smartphones, and PDAs known to those skilled in the art. It is also conceivable that architecture 3300 may not include… Figure 33 All components shown in the components can be included in Figure 33 Other components not explicitly shown in the document, or those that can be used with Figure 33 The architecture shown is completely different.

[0109] Figure 34 This is a functional block diagram of an exemplary host computing device 105, such as a mobile phone or smartphone, which includes various optional hardware and software components, generally shown as 3402. Any component 3402 in the mobile device can communicate with any other component, although not all connections are shown for ease of illustration. The mobile device can be any of a variety of computing devices (e.g., cellular phone, smartphone, handheld computer, PDA, etc.) and can allow for wireless two-way communication with one or more mobile communication networks 3404, such as cellular networks or satellite networks.

[0110] The illustrated device 105 may include a controller or processor 3410 (e.g., a signal processor, microprocessor, microcontroller, ASIC (Application-Specific Integrated Circuit), or other control and processing logic circuitry) for performing tasks such as signal encoding, data processing, input / output processing, power control, and / or other functions. The operating system 3412 may control the allocation and use of component 3402, including power states, above-lock states, and below-lock states, and provides support for one or more applications 3414. Applications may include common mobile computing applications (e.g., image capture applications, email applications, calendars, contact managers, web browsers, messaging applications) or any other computing application.

[0111] The illustrated device 105 may include memory 3420. Memory 3420 may include non-removable memory 3422 and / or removable memory 3424. Non-removable memory 3422 may include RAM, ROM, flash memory, hard disk, or other well-known memory storage technologies. Removable memory 3424 may include flash memory, or a Subscriber Identity Module (SIM) card well-known in GSM (Global System for Mobile Communications) systems, or other well-known memory storage technologies such as "smart cards". Memory 3420 may be used to store data and / or code for running operating system 3412 and applications 3414. Example data may include web pages, text, images, sound files, video data, or other data sets that are sent to or received from one or more network servers or other devices via one or more wired or wireless networks.

[0112] The memory 3420 may also be arranged as or include one or more computer-readable storage media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. For example, computer-readable media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid-state storage technologies, CD-ROM, DVD, HD-DVD (High Definition DVD), Blu-ray or other optical storage devices, magnetic tape, cassette tape, magnetic disk storage devices or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by the device 105.

[0113] Memory 3420 can be used to store: subscriber identifiers, such as International Mobile Subscriber Identity (IMSI); and device identifiers, such as International Mobile Equipment Identity (IMEI). Such identifiers can be transmitted to a web server to identify users and devices. Device 105 can support one or more input devices 3430—such as a touchscreen 3432; or a microphone 3434 for voice input for voice recognition, voice commands, etc.; a camera 3436; a physical keyboard 3438; a trackball 3440; and / or a proximity sensor 3442; and one or more output devices 3450—such as a speaker 3452 and one or more displays 3454. In some cases, other input devices (not shown) using gesture recognition may also be utilized. Other possible output devices (not shown) may include piezoelectric or haptic output devices. Some devices can provide more than one input / output function. For example, touchscreen 3432 and display 3454 can be combined into a single input / output device.

[0114] As is well known in the art, the wireless modem 3460 can be coupled to an antenna (not shown) and can support bidirectional communication between the processor 3410 and external devices. The modem 3460 is generally shown and may include a cellular modem for use with a mobile communication network 3404 and / or other radio-based modems (e.g., The wireless modem 3460 communicates with one or more cellular networks (such as GSM networks) for data and voice communication within a single cellular network, between cellular networks, or between the device and the Public Switched Telephone Network (PSTN).

[0115] The device may also include at least one input / output port 3480, a power supply 3482, a satellite navigation system receiver 3484 (e.g., a GPS receiver), an accelerometer 3486, a gyroscope (not shown), and / or a physical connector 3490, which may be a USB port, an IEEE 1394 (FireWire) port, and / or an RS-232 port. Since any component can be removed and other components can be added, the illustrated component 3402 is not required or may include all of them.

[0116] Various exemplary implementations of this quick pairing are now presented by way of illustration rather than as an exhaustive list of all embodiments. One example includes a method for executing a scheme on a host device based on proximity to a peripheral device, wherein the host device includes: a wireless communication device for monitoring at least beacon transmissions from the peripheral device, the method comprising: registering a pattern from a service at the host device, which details the characteristics of the peripheral device and processing for the peripheral device; receiving an indication from the peripheral device that is within a threshold present in relation to the host device; and, in response to receiving the indication, periodically tracking the peripheral device to verify that the distance between the peripheral device and the host device has not extended beyond the threshold present.

[0117] In another example, the pattern includes fields, each representing one or more of the characteristics or processing details for the peripheral device when it connects to the host device. As another example, the pattern fields include filters that specify processing for the peripheral device, such that periodic tracking of the peripheral device includes verifying that one or more filters are consistently satisfied when the peripheral device connects to the host device or sends a beacon to the host device. In another example, the fields represent the manufacturer associated with the peripheral device, the scheme for the peripheral device, and the sub-scheme for the peripheral device, where the scheme indicates the action to be performed, and the sub-scheme provides additional details about the action to be performed. In another example, the connection or beacon transmission from the peripheral device to the host device is according to the Bluetooth protocol. In yet another example, the method may include: receiving an advertisement transmission from the peripheral device when the peripheral device is within a threshold to the host device; matching the advertisement transmission to a registered pattern to determine which actions to perform for the peripheral device. In yet another example, the method may include: registering multiple patterns with multiple corresponding services, where each pattern specifies characteristics and processing for a specific peripheral device, a group of peripheral devices, or a category of peripheral devices.

[0118] Another example includes a computing device comprising: a wireless communication device that periodically monitors incoming notification transmissions; one or more processors communicating with the wireless communication device; and one or more hardware-based non-transitory storage devices storing computer-readable instructions that, when executed by the one or more processors, cause the computing device to: parse a pattern within an incoming notification when identifying it, such that portions of the pattern define characteristics of a peripheral device associated with the incoming notification; identify a real-time RSSI (Received Signal Strength Indication) value associated with the peripheral device; and determine the distance from the host device to the peripheral device using the real-time RSSI value and a calibrated RSSI value for the peripheral device, wherein the calibrated RSSI value takes into account the changing characteristics associated with the real-time connection between the computing device and the peripheral device.

[0119] As another example, the determined distance is also based on a set distance used to obtain a calibrated RSSI value. In another example, the calibrated RSSI value is based on previous measurements between a different, related peripheral device and a reference host device, such that the calibrated RSSI value and the actual RSSI value are used to determine a distance indicating one or more of the following: the distance between the peripheral device and the computing device, or a specific distance parameter. As another example, the computer-readable instructions also instruct the computing device to: establish buckets for peripheral devices that identify a defined distance or distance category from the computing device, the distance category at least partially representing the defined distance from the computing device; project the distance between the peripheral device and the computing device using one or both of the calibrated RSSI values; and identify the buckets for the peripheral devices based on the projected distance. In another example, the established buckets for peripheral devices are based on one or more of the following: a previous connection or previous calibration between the host device and one or more corresponding peripheral devices, or a previously received notification from one or more corresponding peripheral devices to the computing device. As another example, the established bucket is adjusted using a previous connection, previous calibration, or previously received notification. As another example, the computer-readable instructions also instruct the computing device to: track peripheral devices using subsequent RSSI values; identify subsequent buckets for the peripheral devices based on subsequent RSSI values; and perform an action when the identified subsequent bucket for the peripheral device changes from a previously identified bucket. As another example, peripheral devices include headphones, keyboards, mice, speakers, cameras, monitors, or printers.

[0120] In another exemplary embodiment, one or more hardware-based non-transitory computer-readable storage devices store instructions that, when executed by one or more processors disposed in a host device, cause the host device to: upon receiving a notification, register a plurality of records detailing at least one or more filters and processing operations for the host device, wherein the records are associated with services or applications from a plurality of services or applications executed on the host device; and when the host device receives a beacon containing the notification, apply a first filter, wherein the applied first filter corresponds to a pattern contained in the received notification.

[0121] As another example, a service or application is associated with two or more records out of a set of records. As another example, after the host device applies a first filter, the instructions further instruct the host device to apply a second filter using another pattern included within the received notification. In another example, the instructions also instruct the host device to disregard the second filter after applying it and continue executing the first filter to detect additional notifications. In yet another example, one or both of the first and second filters include sub-filters, which further define applicable actions for the host device based on the notification.

[0122] In another exemplary embodiment, a peripheral computing device is configured with point-to-point short-range connectivity and includes: a wireless communication device configured to broadcast a notification to an external device; one or more processors communicating with the wireless communication device; and one or more hardware-based non-transitory storage devices storing data packet structures for the wireless communication device and further storing computer-readable instructions executable by the one or more processors, wherein the data packet structure includes a PDU (Protocol Data Unit), the PDU including a header and a payload modified to include a first field defining an actionable scenario and a second field defining a sub-scenario associated with the actionable scenario.

[0123] In another exemplary embodiment, the first and second fields include predefined octet patterns. In another example, the operable scheme instructs an external device that the peripheral device is configured for quick pairing with the external device, such that the peripheral device's beacon pattern is pre-registered within the external device's OS (operating system), and the peripheral device is ready for pairing. As another example, the pre-registration of the peripheral device at the external device's OS includes storing one or more patterns associated with the peripheral device, such that the OS automatically identifies processing operations for the peripheral device based on one or more patterns corresponding to the patterns in the first and second fields. In another example, detection of quick pairing of a peripheral device within range causes the external device's OS to automatically prompt an opportunity on its user interface (UI) for the user to connect the peripheral device to the external device. As another example, computer-readable instructions also cause one or more processors to pair the peripheral device with the external device based on confirmation from user input. In another example, the wireless communication device utilizes one or more of the following: Bluetooth, NFC (Near Field Communication), or Wi-Fi.

[0124] Another embodiment includes a computing device comprising: a transceiver that periodically monitors incoming notification transmissions; and one or more processors communicating with the transceiver; and one or more hardware-based non-transitory storage devices storing computer-readable instructions that, when executed by the one or more processors, cause the computing device to: upon receiving an incoming notification transmission, compare a pattern within the notification transmission with a pre-registered record of the pattern and measure whether a peripheral device is within range; and based on the comparison, identify a quick pairing scheme, wherein the quick pairing scheme causes the computing device to recognize that a peripheral device associated with the notification transmission is attempting to quickly pair with the computing device, thereby causing the computing device to automatically place a prompt on the user interface (UI) of the computing device's display, the prompt providing the user with options for establishing a wireless connection with the peripheral device.

[0125] As another example, the computer-readable instructions also enable the computing device to: receive user input to connect to a peripheral device; and, in response to the input, establish a wireless connection with the peripheral device. As another exemplary example, the computer-readable instructions also enable the computing device to: monitor user interaction at a prompt message for a preset time period; and, after the preset time period expires, move the prompt message to the Action Center, which allows the user to quickly pair the peripheral device with the computing device at a later time. As another example, the computer-readable instructions also enable the computing device to: monitor beacon transmissions from the peripheral device; and, when a beacon transmission is detected at the computing device, maintain the prompt message in the Action Center. As another example, the computer-readable instructions also enable the computing device to: monitor beacon transmissions from the peripheral device; determine if the prompt message is outdated; and then, based on the determination that the prompt message is outdated, remove the prompt message from the Notification Center. In yet another example, the computer-readable instructions also enable the computing device to: continue monitoring beacon transmissions from the peripheral device; and, when a beacon transmission from the peripheral device is detected again, reposition the prompt message on the surface of the UI or Notification Center. As another example, a peripheral device is deemed obsolete based on one or more of the following: the peripheral device's location extends beyond a threshold distance, the peripheral device is disabled, a specific pattern is present or absent in beacon transmission, or the payload has been removed from the advertisement. In another example, the computer-readable instructions also instruct the computing device to: apply a primary filter according to a fast pairing scheme, wherein the primary filter causes the computing device to passively scan advertisements from the peripheral device; and apply a secondary filter, wherein the secondary filter causes the computing device to passively scan for the presence or absence of the peripheral device using the address contained in the advertisement.

[0126] Another exemplary embodiment includes one or more hardware-based non-transitory computer-readable storage devices storing instructions that, when executed by one or more processors disposed in a host device, cause the host device to: receive a mode, wherein the mode is initially retrieved at a wireless communication device associated with the host device; parse the mode to identify information contained within the mode, wherein the information within the mode indicates a manufacturer, fast pairing is enabled, and an associated application; and, in response to a user's permission, download the application over a network based on information derived from the mode.

[0127] In another example, the information included within the pattern is for an external computing device that is not yet associated with the host device. As another example, a prompt to the user is placed on the surface indicating that the application is available for download by a peripheral device, wherein the application is downloaded in response to user input. In another example, based on the application being identified and downloaded according to the advertised payload, the application is automatically trusted by the host device during download. In yet another example, the peripheral device is any one of headphones, keyboard, mouse, speakers, camera, monitor, or printer.

[0128] The subject matter described above is provided by way of example only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without departing from the true spirit and scope of the invention as set forth in the appended claims, and without following the illustrated and described exemplary embodiments and applications.

Claims

1. A computing device, comprising: A transceiver that periodically monitors incoming notification transmissions; One or more processors that communicate with the transceiver; One or more hardware-based memory devices store computer-readable instructions that, when executed by the one or more processors, cause the computing device to: Upon receiving an incoming notification transmission, the pattern within the notification transmission is compared with the pre-registered record of the pattern, and it is determined whether the peripheral device is within range; Based on the comparison, a fast matching scheme is identified. The quick pairing scheme identified therein enables the computing device to recognize that the peripheral device associated with the transmission of the notification is attempting to quickly pair with the computing device, thereby causing the computing device to automatically place a prompt message on the user interface UI of the computing device's display in response to the determination within the range, the prompt message providing the user with options for establishing a wireless connection with the peripheral device; Monitor user interactions at the prompt information within a preset time period; as well as After the preset time period expires, the notification message is moved to the notification center, which enables the user to quickly pair the peripheral device with the computing device at a later time.

2. The computing device of claim 1, wherein the executed computer-readable instructions further cause the computing device to: Receive user input to connect to the peripheral device; and In response to the input, a wireless connection is established with the peripheral device.

3. The computing device of claim 1, wherein the executed computer-readable instructions further cause the computing device to: Monitor beacon transmissions from the peripheral devices; and When a beacon transmission is detected at the computing device, the notification message is maintained in the notification center.

4. The computing device of claim 1, wherein the executed computer-readable instructions further cause the computing device to: Monitor beacon transmissions from the peripheral devices; Determine whether the prompt message is outdated; and Based on the determination that the notification information is outdated, the notification information is removed from the notification center.

5. The computing device of claim 4, wherein the executed computer-readable instructions further cause the computing device to: Continue monitoring beacon transmissions from the peripheral devices; and In response to the beacon transmission from the peripheral device being detected again, the notification message is re-placed on the surface of the UI or the notification center.

6. The computing device of claim 4, wherein the peripheral device is obsolete based on one or more of the following: the location of the peripheral device extends beyond a threshold distance, the peripheral device is turned off, a particular pattern in the beacon transmission is present or absent, or the payload has been removed from the announcement.

7. The computing device of claim 1, wherein the executed computer-readable instructions further cause the computing device to: According to the fast pairing scheme, a master filter is applied, wherein the master filter causes the computing device to passively scan for notifications from the peripheral devices; and A secondary filter is applied, wherein the secondary filter causes the computing device to passively scan for the presence or absence of the peripheral device using an address contained in the announcement.

8. A method executed by a computing device to pair with a peripheral device, wherein the computing device utilizes a transceiver to periodically monitor incoming notification transmissions, comprising: Upon receiving an incoming notification transmission, the pattern within the notification transmission is compared with the pre-registered record of the pattern, and it is determined whether the peripheral device is within range; as well as Based on the comparison, a fast matching scheme is identified. The quick pairing scheme identified therein enables the computing device to recognize that the peripheral device associated with the transmission of the notification is attempting to quickly pair with the computing device, thereby causing the computing device to automatically place a prompt message on the user interface UI of the computing device's display in response to the determination within the range, the prompt message providing the user with options for establishing a wireless connection with the peripheral device; Monitor user interactions at the prompt information within a preset time period; as well as After the preset time period expires, the notification message is moved to the notification center, which enables the user to quickly pair the peripheral device with the computing device at a later time.

9. The method according to claim 8, further comprising: Receive user input to connect to the peripheral device; as well as In response to the input, a wireless connection is established with the peripheral device.

10. The method of claim 8, further comprising: Monitor beacon transmissions from the peripheral devices; as well as When a beacon transmission is detected at the computing device, the notification message is maintained in the notification center.

11. The method of claim 8, further comprising: Monitor beacon transmissions from the peripheral devices; Determine whether the prompt message is outdated; as well as Based on the determination that the notification information is outdated, the notification information is removed from the notification center.

12. The method of claim 11, further comprising: Continue monitoring beacon transmissions from the aforementioned peripheral devices; as well as In response to the beacon transmission from the peripheral device being detected again, the notification message is re-placed on the surface of the UI or the notification center.

13. The method of claim 11, wherein the peripheral device is obsolete based on one or more of the following: the location of the peripheral device extends beyond a threshold distance, the peripheral device is turned off, a specific pattern in the beacon transmission is present or absent, or the payload has been removed from the announcement.

14. A hardware-based memory device storing computer-readable instructions, which, when executed by one or more processors disposed in a host device, cause the host device to: Receive incoming notification transmissions; In response to receiving the incoming notification transmission, the mode in the notification transmission is compared with the pre-registered record of the mode, and it is determined whether the peripheral device is within range; Based on the comparison, a quick pairing scheme is identified, wherein the identified quick pairing scheme enables the computing device to recognize that the peripheral device associated with the transmission of the notification is attempting to quickly pair with the computing device, thereby causing the computing device to automatically place a prompt message on the user interface UI of the computing device's display in response to the determination within the range, the prompt message providing the user with options for establishing a wireless connection with the peripheral device; Monitor user interactions at the prompt information within a preset time period; as well as After the preset time period expires, the notification message is moved to the notification center, which enables the user to quickly pair the peripheral device with the computing device at a later time.

15. The hardware-based memory device of claim 14, wherein the executed computer-readable instructions further cause the host device to: Receive user input to connect to the peripheral device; and In response to the input, a wireless connection is established with the peripheral device.

16. The hardware-based memory device of claim 14, wherein the executed computer-readable instructions further cause the host device to: Monitor beacon transmissions from the peripheral devices; and When a beacon transmission is detected at the computing device, the notification message is maintained in the notification center.

17. The hardware-based memory device of claim 14, wherein the executed computer-readable instructions further cause the host device to: Monitor beacon transmissions from the peripheral devices; Determine whether the prompt message is outdated; and Based on the determination that the notification information is outdated, the notification information is removed from the notification center.

18. The hardware-based memory device of claim 17, wherein the executed computer-readable instructions further cause the host device to: Continue monitoring beacon transmissions from the peripheral devices; and In response to the beacon transmission from the peripheral device being detected again, the notification message is re-placed on the surface of the UI or the notification center.

19. The hardware-based memory device of claim 17, wherein the peripheral device is obsolete based on one or more of the following: the location of the peripheral device extends beyond a threshold distance, the peripheral device is turned off, a particular mode in the beacon transmission is present or absent, or the payload has been removed from the announcement.

20. The hardware-based memory device of claim 14, wherein the executed computer-readable instructions further cause the computing device to: According to the fast pairing scheme, a master filter is applied, wherein the master filter causes the computing device to passively scan for notifications from the peripheral devices; and A secondary filter is applied, wherein the secondary filter causes the computing device to passively scan for the presence or absence of the peripheral device using an address contained in the announcement.

Citation Information

Patent Citations

  • Proximity platform

    US10609537B2

  • Communication between host and accessory devices using accessory protocols via wireless transport

    CN105393564A

  • Extending user authentication across a trust group of smart devices

    CN105794244A