Technology for communicating data
The described techniques for NFC communication using random number comparisons and authentication credentials address inefficiencies in existing data communication methods, enabling secure and efficient channel establishment between devices.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- APPLE INC
- Filing Date
- 2024-06-04
- Publication Date
- 2026-06-23
AI Technical Summary
Current data communication technologies are inefficient and ineffective, often requiring devices to possess pre-existing contact information, leading to complex and suboptimal data exchange.
Techniques for selecting an initiator for Near Field Communication (NFC) using random number comparisons and authentication credentials to establish different wireless communication channels, such as Wi-Fi or Bluetooth, allowing devices to dynamically determine communication initiation based on generated random numbers and authentication status.
Enhances data communication efficiency by enabling devices to selectively initiate communication channels based on random number comparisons and authentication, improving security and reducing complexity.
Smart Images

Figure 2026520542000001_ABST
Abstract
Description
Background Art
[0001] (Cross - Reference to Related Applications) This application claims priority to U.S. Non - Provisional Patent Application No. 18 / 665,270, titled "TECHNIQUES FOR COMMUNICATING DATA," filed on May 15, 2024; U.S. Provisional Patent Application No. 63 / 545,529, titled "TECHNIQUES FOR COMMUNICATING DATA," filed on October 24, 2023; and U.S. Provisional Patent Application No. 63 / 471,185, titled "TECHNIQUES FOR COMMUNICATING DATA," filed on June 5, 2023, which are hereby incorporated by reference in their entirety for all purposes.
[0002] Electronic devices are becoming increasingly interconnected. For example, a controller (e.g., a user device and / or a computer system) is often connected to home or office accessories (e.g., speakers, fans, and thermostats). Enabling such devices to communicate data in a secure way can be complex. Therefore, there is a need to improve techniques for communicating data.
Summary of the Invention
[0003] Current technologies for communicating data are generally ineffective and / or inefficient. For example, some technologies require devices to already possess contact information about what they are in contact with. This disclosure provides more effective and / or efficient technologies for communicating data, using an example in which two smartphones communicate contact information and then photographs. It should be recognized that other types of electronic devices and other data may be used in conjunction with the technologies described herein. For example, a smartwatch may use the technologies described herein to communicate calendar data to a smart speaker for output by the smart speaker. Furthermore, the technologies may optionally complement or replace other technologies for communicating data.
[0004] This specification describes several techniques for selecting an initiator for Near Field Communication (NFC). Such techniques include comparing a generated random number with a random message received in a polling message to select an initiator for NFC. NFC is then used to transfer data used to establish different types of wireless communication channels, such as Wi-Fi or Bluetooth. Other techniques for selectively transmitting a long-term key over one communication channel for a different communication channel when communicating with another device are described herein. Such techniques include receiving authentication credentials from the other device and, if the authentication credentials have not been seen before, transmitting a long-term key. It should be noted that the techniques described herein can be modified and / or combined. For example, a long-term key may be transmitted over NFC to establish different types of wireless communication channels.
[0005] In some embodiments, a method performed on a first device is described. In some embodiments, the method includes receiving a polling message from a second device different from the first device; initiating a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to initiate a first type of communication channel as a result of receiving the polling message; transmitting first communication information for a second type of communication channel over the first communication channel of a first type; refraining from initiating a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to initiate a first type of communication channel; and receiving second communication information for a second type of communication channel over a second communication channel of a first type.
[0006] In some embodiments, a non-temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, one or more programs include instructions to receive a polling message from a second device different from the first device, and, as a result of receiving the polling message, to start a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to start a first type of communication channel, to transmit first communication information for a second type of communication channel over the first communication channel of the first type, and to refrain from starting a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to start a first type of communication channel, and to receive second communication information for a second type of communication channel over a second communication channel of the first type.
[0007] In some embodiments, a temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, one or more programs include instructions to receive a polling message from a second device different from the first device, and, as a result of receiving the polling message, to start a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to start a first type of communication channel, to transmit first communication information for a second type of communication channel over the first communication channel of the first type, and to refrain from starting a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to start a first type of communication channel, and to receive second communication information for a second type of communication channel over a second communication channel of the first type.
[0008] In some embodiments, a first device is described. In some embodiments, the first device comprises one or more processors and a memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, one or more programs include instructions to receive a polling message from a second device different from the first device, and, as a result of receiving the polling message, to start a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to start a first type of communication channel, to transmit first communication information for a second type of communication channel over the first communication channel of a first type, and to refrain from starting a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to start a first type of communication channel, and to receive second communication information for a second type of communication channel over a second communication channel of a first type.
[0009] In some embodiments, a first device is described. In some embodiments, the first device comprises means for performing each of the following steps: receiving a polling message from a second device different from the first device; initiating a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to initiate a first type of communication channel as a result of receiving the polling message; transmitting first communication information for a second type of communication channel over the first communication channel of a first type; refraining from initiating a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to initiate a first type of communication channel; and receiving second communication information for a second type of communication channel over a second communication channel of a first type.
[0010] In some embodiments, a computer program product is described. In some embodiments, a computer program product is described that includes one or more programs configured to run by one or more processors of a first device. In some embodiments, one or more programs include instructions to receive a polling message from a second device different from the first device, and as a result of receiving the polling message, to start a first communication channel of a first type in accordance with a determination based on the polling message that the first device is selected to start a first type of communication channel, to transmit first communication information for a second type of communication channel over the first communication channel of a first type, and to refrain from starting a first communication channel of a first type in accordance with a determination based on the polling message that the first device is not selected to start a first type of communication channel, and to receive second communication information for a second type of communication channel over a second communication channel of a first type.
[0011] In some embodiments, a method performed on a first device is described. In some embodiments, the method includes receiving authentication credentials from a second device different from the first device via a first communication channel, and, in response to receiving the authentication credentials, sending to the second device via the first communication channel, a set of one or more keys, where the keys of the set of one or more keys correspond to a second communication channel that is not currently established, according to a determination that a second set of one or more criteria is met, where the second set of one or more criteria includes the criteria that are met when the authentication credentials have been previously received by the first device.
[0012] In some embodiments, a non-temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, one or more programs include instructions to receive authentication credentials from a second device different from the first device via a first communication channel, and in response to receiving the authentication credentials, to send one or more sets of keys, of which the keys correspond to a second communication channel that is not currently established, to the second device via the first communication channel, according to a determination that a first set of one or more criteria is met, the first set of criteria includes criteria that are met when the authentication credentials have not been previously received by the first device.
[0013] In some embodiments, a temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, one or more programs include instructions to receive authentication credentials from a second device different from the first device via a first communication channel, and in response to receiving the authentication credentials, to send one or more sets of keys, of which the keys correspond to a second communication channel that is not currently established, to the second device via the first communication channel, according to a determination that a first set of one or more criteria is met, the first set of criteria includes criteria that are met when the authentication credentials have not been previously received by the first device.
[0014] In some embodiments, a first device is described. In some embodiments, the first device comprises one or more processors and a memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, one or more programs include instructions to receive authentication credentials from a second device different from the first device via a first communication channel, and in response to receiving the authentication credentials, to send one or more sets of keys to the second device via the first communication channel, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria including criteria that are met when the authentication credentials have not been previously received by the first device, and to refrain from sending one or more sets of keys to the second device via a first type of communication channel, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria including criteria that are met when the authentication credentials have been previously received by the first device.
[0015] In some embodiments, a first device is described. In some embodiments, the first device comprises means for performing each of the following steps: receiving authentication credentials from a second device different from the first device via a first communication channel; and, in response to receiving the authentication credentials, transmitting to the second device via the first communication channel, a set of one or more keys, of which the keys correspond to a second communication channel that is not currently established, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device; and refraining from transmitting to the second device via a first type of communication channel, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that are met when the authentication credentials have been previously received by the first device.
[0016] In some embodiments, a computer program product is described. In some embodiments, a computer program product is described which includes one or more programs configured to run on one or more processors of a first device. In some embodiments, one or more programs receive authentication credentials from a second device different from the first device via a first communication channel, and in response to receiving the authentication credentials, includes instructions to send one or more sets of keys to the second device via the first communication channel, where the keys of the set of keys correspond to a second communication channel that is not currently established, according to a determination that a second set of criteria is met, where the second set of criteria includes criteria that are met when the authentication credentials have been previously received by the first device.
[0017] In some embodiments, a method performed on a first device is described. In some embodiments, the method includes connecting to a second device different from the first device via a first communication channel; transmitting a subsequent communication to the second device, while connected to the second device via the first communication channel and after receiving an authentication response from the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the second device corresponds to a known device; and delaying transmitting a subsequent communication to the second device, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that are met when the second device corresponds to an unknown device.
[0018] In some embodiments, a non-temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, the one or more programs include instructions that, while connected to the second device via a first communication channel and after receiving an authentication response from the second device, send a subsequent communication to the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria including criteria that are met when the second device corresponds to a known device; and delay sending a subsequent communication to the second device, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria including criteria that are met when the second device corresponds to an unknown device.
[0019] In some embodiments, a temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first device. In some embodiments, the one or more programs include instructions that, while connected to the second device via a first communication channel and after receiving an authentication response from the second device, send a subsequent communication to the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria including criteria that are met when the second device corresponds to a known device; and delay sending a subsequent communication to the second device, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria including criteria that are met when the second device corresponds to an unknown device.
[0020] In some embodiments, a first device is described. In some embodiments, the first device comprises one or more processors and a memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs include instructions that, while connected to the second device via the first communication channel and after receiving an authentication response from the second device, transmit a subsequent communication to the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the second device corresponds to a known device, and that, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that are met when the second device corresponds to an unknown device, and that that delay transmit a subsequent communication to the second device.
[0021] In some embodiments, a first device is described. In some embodiments, the first device comprises means for performing each of the following steps: connecting to a second device different from the first device via a first communication channel; transmitting a subsequent communication to the second device while connected to the second device via the first communication channel and after receiving an authentication response from the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria including criteria that are met when the second device corresponds to a known device; and delaying transmitting a subsequent communication to the second device, according to a determination that a second set of one or more criteria is met, the second set of one or more criteria including criteria that are met when the second device corresponds to an unknown device.
[0022] In some embodiments, a computer program product is described. In some embodiments, a computer program product is described which includes one or more programs configured to run on one or more processors of a first device. In some embodiments, one or more programs connect to a second device different from the first device via a first communication channel, and while connected to the second device via the first communication channel and after receiving an authentication response from the second device, the program includes instructions to send a subsequent communication to the second device, according to a determination that a first set of one or more criteria is met, the first set of one or more criteria including criteria that are met when the second device corresponds to a known device, and according to a determination that a second set of one or more criteria is met, the second set of one or more criteria including criteria that are met when the second device corresponds to an unknown device, and delay sending a subsequent communication to the second device.
[0023] The executable instructions that perform these functions are optionally contained within a non-temporary computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0024] For a better understanding of the various embodiments described, please refer to the following “Modes for Carrying Out the Invention” in conjunction with the drawings. Similar reference numbers refer to corresponding parts throughout those drawings. [Brief explanation of the drawing]
[0025] [Figure 1] This is a diagram of a computing system according to several embodiments.
[0026] [Figure 2]A block diagram showing a device having interconnected subsystems according to some embodiments.
[0027] [Figure 3] A swimlane diagram showing a process for communicating data according to some embodiments.
[0028] [Figure 4A] An exemplary user interface being displayed according to some embodiments is shown. [Figure 4B] An exemplary user interface being displayed according to some embodiments is shown. [Figure 4C] An exemplary user interface being displayed according to some embodiments is shown.
[0029] [Figure 5] A flowchart showing a method for transmitting communication information according to some embodiments.
[0030] [Figure 6] A flowchart showing a method for selectively transmitting a key according to some embodiments.
[0031] [Figure 7] A swimlane diagram showing a process for delaying communication according to some embodiments.
[0032] [Figure 8] A flowchart showing a method for selectively delaying communication according to some embodiments.
Best Mode for Carrying Out the Invention
[0033] The following description sets forth exemplary methods, parameters, and the like. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but rather as an illustration of exemplary embodiments.
[0034] The methods and / or processes described herein may include one or more steps that are conditional on one or more conditions being met. It should be understood that a method may be performed over multiple iterations of the same process, and different steps of the method may be met in different iterations. For example, if a method requires performing a first step in response to a determination that one or more criteria are met, and a second step in response to a determination that one or more criteria are not met, a person skilled in the art will understand that the steps of the method are repeated until both conditions are met, not in a specific order. Thus, a method described using conditional steps can be rewritten as a method repeated until each of the conditions described in the method is met. However, this is not required of a claim in a system or computer-readable medium if the claim includes instructions for performing one or more steps that are conditional on one or more conditions being met. Since instructions for a claim in a system or computer-readable medium are stored in one or more processors and / or one or more memory locations, a claim in a system or computer-readable medium includes logic that can determine whether one or more conditions have been met without explicitly repeating the steps of the method until all of the conditions on which the steps in the method are conditional are met. Those skilled in the art will also understand that, as with a method having conditional steps, a system or computer-readable storage medium may repeat the steps of the method as many times as necessary to ensure that all of the conditional steps have been performed.
[0035] In the following description, terms such as “first,” “second,” etc., are used to describe various elements, but these elements should not be limited by those terms. In some embodiments, these terms are used to distinguish one element from another. For example, without departing from the scope of the various described embodiments, a first subsystem may be called a second subsystem, and similarly, a second subsystem device or subsystem device may be called a first subsystem device. In some embodiments, the first subsystem and the second subsystem are two distinct references to the same subsystem. In some embodiments, the first subsystem and the second subsystem are both subsystems, but they are not identical subsystems or subsystems of the same type.
[0036] The terminology used in the descriptions of the various embodiments described herein is intended solely to describe specific embodiments and is not intended to be limiting. In the descriptions of the various embodiments and the accompanying claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless otherwise explicitly stated in the context. Furthermore, it should be understood that, as used herein, the term “and / or” refers to and includes any and all possible combinations of one or more of the enumerated items relating to the invention. It will be further understood that, as used herein, the terms “includes,” “comprises,” and / or “comprising,” specify the presence of the described features, integers, steps, actions, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, actions, elements, components, and / or groups thereof.
[0037] The phrase "if" can be interpreted, at will, depending on the context, as meaning "when," "upon," "in response to determining," "in response to detecting," or "in accordance with a determination that." Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" can be interpreted, at will, depending on the context, as meaning "upon determining," "in response to determining," "upon detecting [the stated condition or event]," "in response to detecting [the stated condition or event]," or "in accordance with the determination that [a stated condition or event] is."
[0038] Referring to Figure 1, a block diagram of the computing system 100 is shown. Computing system 100 is a non-limiting example of a computing system that can be used to perform the functions described herein. It should be noted that other computer architectures of computing systems can be used to perform the functions described herein.
[0039] In the illustrated example, the computing system 100 includes a processor subsystem 110 that communicates (e.g., wired or wirelessly) with memory 120 (e.g., system memory) and an I / O interface 130 via an interconnect 150 (e.g., a system bus, one or more memory locations, or other communication channels for connecting multiple components of the computing system 100). In addition, the I / O interface 130 communicates (e.g., wired or wirelessly) with an I / O device 140. In some embodiments, the I / O interface 130 is included together with the I / O device 140 so that the two constitute a single component. It should be noted that there may be one or more I / O interfaces, and each I / O interface communicates with one or more I / O devices. In some embodiments, multiple instances of the processor subsystem 110 can communicate via the interconnect 150.
[0040] The computing system 100 may be any of various types of devices, including but not limited to a system-on-a-chip, a server system, a personal computer system (e.g., a smartphone, smartwatch, wearable device, tablet, laptop computer, and / or desktop computer), and a sensor. In some embodiments, the computing system 100 is included in or communicates with a physical component for the purpose of modifying the physical component in response to an instruction. In some embodiments, the computing system 100 receives an instruction to modify a physical component and causes the physical component to be modified in response to the instruction. In some embodiments, the physical component is modified via an actuator, an electrical signal, and / or an algorithm. Examples of such physical components include acceleration control, brakes, gearboxes, hinges, motors, pumps, refrigeration systems, springs, suspension systems, steering control, vacuum systems, and / or valves. In some embodiments, a sensor includes one or more hardware components that detect information about the physical environment adjacent to (e.g., surrounding) the sensor. In some embodiments, the hardware components of a sensor include sensing components (e.g., image sensors or temperature sensors), transmitting components (e.g., laser or wireless transmitters), receiving components (e.g., laser or wireless receivers), or any combination thereof. Examples of sensors include angle sensors, chemical sensors, brake pressure sensors, contact sensors, non-contact sensors, electrical sensors, flow sensors, force sensors, gas sensors, humidity sensors, image sensors (e.g., camera sensors, radar sensors, and / or LiDAR sensors), inertial measurement units, leak sensors, level sensors, light detection and ranging systems, metal sensors, motion sensors, particle sensors, photoelectric sensors, position sensors (e.g., global positioning systems), precipitation sensors, pressure sensors, proximity sensors, radio wave detection and ranging systems, radiation sensors, speed sensors (e.g., measuring the velocity of an object), temperature sensors, time-of-flight sensors, torque sensors, and ultrasonic sensors. In some embodiments, the sensor includes a combination of multiple sensors.In some embodiments, sensor data is captured by fusing data from one sensor with data from one or more other sensors. Although a single computing system is shown in Figure 1, computing system 100 can also be implemented as two or more computing systems working together.
[0041] In some embodiments, the processor subsystem 110 includes one or more processors or processing units configured to execute program instructions for performing the functions described herein. For example, the processor subsystem 110 can run an operating system, a middleware system, one or more applications, or any combination thereof.
[0042] In some embodiments, the operating system manages the resources of the computing system 100. Examples of operating system types covered herein include batch operating systems (e.g., Multiple Virtual Storage (MVS)), time-sharing operating systems (e.g., Unix), distributed operating systems (e.g., Advanced Interactive eXecutive (AIX)), network operating systems (e.g., Microsoft Windows Server), and real-time operating systems (e.g., QNX). In some embodiments, the operating system may include procedures, sets of instructions, software components, and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) to facilitate communication between various hardware and software components. In some embodiments, the operating system uses a priority-based scheduler that assigns priorities to different tasks that the processor subsystem 110 can perform. In such embodiments, the priority assigned to a task is used to identify the next task to be performed. In some embodiments, the priority-based scheduler identifies the next task to be performed when the previous task has finished execution. In some embodiments, the highest-priority task is performed until completion unless another higher-priority task is ready.
[0043] In some embodiments, the middleware system provides one or more services or capabilities, or both, to external applications (e.g., one or more applications running on the processor subsystem 110) that are not provided by the operating system (e.g., data management, application services, messaging, authentication, API management, etc.). In some embodiments, the middleware system is designed so that heterogeneous computer clusters provide hardware abstraction, low-level device control, implementation of commonly used functions, inter-process message passing, package management, or any combination thereof. Examples of middleware systems include Lightweight Communications and Marshalling (LCM), PX4, Robot Operating System (ROS), and ZeroMQ. In some embodiments, the middleware system uses a graph architecture to represent processes and / or operations, with processing taking place in nodes that can receive, post, and multiplex sensor data messages, control messages, status messages, planning messages, actuator messages, and other messages. In such embodiments, the graph architecture can define applications (e.g., applications running on the processor subsystem 110 as described above) such that different operations of the application are contained in different nodes within the graph architecture.
[0044] In some embodiments, messages sent from a first node in a graph architecture to a second node in the graph architecture are performed using a publish-subscribe model, where the first node publishes data on a channel that the second node can subscribe to. In such embodiments, the first node can store the data in memory (e.g., memory 120 or some local memory of the processor subsystem 110) and notify the second node that the data has been stored in memory. In some embodiments, the first node notifies the second node that the data has been stored in memory by sending a pointer (e.g., a memory pointer such as identifying a memory location) to the second node so that the second node can access the data from where the first node stored the data. In some embodiments, the first node sends the data directly to the second node so that the second node does not need to access memory based on the data received from the first node.
[0045] The memory 120 may include computer-readable media (e.g., non-temporary or temporary computer-readable media) available for storing program instructions executable by the processor subsystem 110 in order to cause the computing system 100 to perform the various operations described herein. For example, the memory 120 may store program instructions for performing functions related to methods 500, 600, and 800 described below (e.g., Figures 5, 6, and 8).
[0046] Memory 120 can be implemented using a variety of physical, non-temporary storage media, such as hard disk storage devices, floppy disk storage devices, removable disk storage devices, flash memory, random access memory (RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, RAMBUS RAM, etc.), and read-only memory (PROM, EEPROM, etc.). The memory of the computing system 100 is not limited to primary storage devices such as memory 120. The computing system 100 may also include other forms of storage devices, such as cache memory in the processor subsystem 110 and secondary storage devices on I / O devices 140 (e.g., hard drives, storage arrays, etc.). In some embodiments, these other forms of storage devices may also store program instructions executable by the processor subsystem 110 and perform the operations described herein. In some embodiments, the processor subsystem 110 (or each processor in the processor subsystem 110) includes a cache or other form of onboard memory.
[0047] The I / O interface 130 can be any type of interface configured to communicate with other devices. In some embodiments, the I / O interface 130 includes a bridge chip (e.g., a southbridge) from a front bus to one or more rear buses. The I / O interface 130 can communicate with one or more I / O devices (e.g., I / O device 140) via one or more corresponding buses or other interfaces. Examples of I / O devices include storage devices (hard drives, optical drives, removable flash drives, storage arrays, SANs, or their associated controllers), network interface devices (e.g., to a local or wide area network), sensor devices (e.g., cameras, radar, LiDAR, ultrasonic sensors, GPS, inertial measurement devices, etc.), and auditory or visual output devices (e.g., speakers, lights, screens, projectors, etc.). In some embodiments, the computing system 100 communicates with a network via a network interface device (e.g., configured to communicate via Wi-Fi®, Bluetooth®, Ethernet, etc.). In some embodiments, the computing system 100 is wired directly to the network.
[0048] Figure 2 shows a block diagram of a device 200 having interconnected subsystems according to several embodiments. In the illustrated example, device 200 includes three distinct subsystems (i.e., a first subsystem 210, a second subsystem 220, and a third subsystem 230) that communicate with each other (e.g., wired or wirelessly) to form a network (e.g., a personal area network, a local area network, a wireless local area network, a metropolitan area network, a wide area network, a storage area network, a virtual private network, an enterprise internal private network, a campus area network, a system area network, and / or a controller area network). An example of a possible computer architecture of subsystems like those included in Figure 2 is shown in Figure 1 (i.e., computing system 100). Although three subsystems are shown in Figure 2, device 200 may include more or fewer subsystems.
[0049] In some embodiments, some subsystems are not connected to other subsystems (for example, the first subsystem 210 can be connected to the second subsystem 220 and the third subsystem 230, but the second subsystem 220 cannot be connected to the third subsystem 230). In some embodiments, some subsystems are connected via one or more wires, while others are connected wirelessly. In some embodiments, messages are set up between the first subsystem 210, the second subsystem 220, and the third subsystem 230 so that when an individual subsystem sends a message, other subsystems receive the message (for example, via wires and / or buses). In some embodiments, one or more subsystems are wirelessly connected to one or more computing systems outside of device 200, such as a server system. In such embodiments, subsystems may be configured to communicate wirelessly with one or more computing systems outside of device 200.
[0050] In some embodiments, device 200 includes a housing that completely or partially encloses subsystems 210-230. Examples of device 200 include home appliances (e.g., refrigerators or air conditioning systems), robots (e.g., robotic arms or robotic vacuum cleaners), and vehicles. In some embodiments, device 200 is configured to navigate within a physical environment (with or without user input).
[0051] In some embodiments, one or more subsystems of device 200 are used to control, manage, and / or receive data from one or more other subsystems of device 200 and / or from one or more remote computing systems from device 200. For example, a first subsystem 210 and a second subsystem 220 may each be cameras that capture images, and a third subsystem 230 may use the captured images for decision-making. In some embodiments, at least a portion of device 200 functions as a distributed computing system. For example, a task may be divided into different parts, with a first part performed by the first subsystem 210 and a second part performed by the second subsystem 220.
[0052] In this specification, “installed application” refers to a software application that has been downloaded to a computer system (e.g., computing system 100 and / or device 200) and is ready to be launched (e.g., opened) on the device. In some embodiments, a downloaded application becomes an installed application by an installation program that extracts the program portion from the downloaded package and integrates the extracted portion with the operating system of the computer system.
[0053] In this specification, the terms “open application” or “running application” refer to a software application that has retained state information (e.g., as part of the system / global internal state and / or application internal state). An open or running application is optionally one of the following types of applications: • The active application currently displayed on the display screen of the device on which the application is being used. • Background applications (or background processes) that are not currently displayed but whose processes are handled by one or more processors, as well as • An application that is not running but has state information stored in memory (volatile and non-volatile, respectively) that can be used to resume the execution of the application, either suspended or suspended.
[0054] In this specification, the term “closed application” refers to a software application that does not retain state information (for example, state information for a closed application is not stored in the device’s memory). Therefore, closing an application involves stopping and / or removing the application process for the application and removing the state information for the application from the device’s memory. Generally, opening a second application while a first application is running does not close the first application. When the second application is displayed and the first application is stopped from being displayed, the first application becomes a background application.
[0055] Currently, attention is focused on technologies for communicating data. Such technologies are described in the context of two smartphones communicating contact information and then photos. It should be recognized that other types of devices and other data may be used in conjunction with the technologies described herein. For example, a head-mounted display (HMD) device may be worn by a user and display the name of another user when another user approaches. Furthermore, technologies may optionally complement or replace other technologies for communicating data.
[0056] Figure 3 is a swimlane diagram showing a process for communicating data (e.g., process 300) according to several embodiments. As shown in Figure 3, process 300 includes a first device 302 and a second device 304. In some embodiments, the first device 302 and / or the second device 304 include one or more components described above with respect to device 200 and / or computing system 100.
[0057] In some embodiments, the first device 302 is a smartphone that includes one or more different components for communicating with another device. For example, the first device 302 may include an NFC reader and / or NFC tags for communication via NFC. In some embodiments, the first device 302 may include one or more wireless antennas for wireless communication via one or more different protocols (e.g., Wi-Fi and / or Bluetooth). In some embodiments, the second device 304 is also a smartphone that includes the same or different components as the first device 302. It should be noted that the first device 302 and / or the second device 304 may be other types of devices, such as a smartwatch or HMD device.
[0058] In 306, the first device 302 outputs polling messages. For example, as part of communicating via NFC, the first device 302 may output one or more polling messages to identify nearby NFC tags. In some embodiments, polling messages are output via an NFC component and are performed at a certain frequency. In some embodiments, the NFC component is in a lower power mode and outputs polling messages at a slower rate than when in a higher power mode, in order to reduce the impact on power and / or performance of outputting polling messages. In such embodiments, the first device 302 may always be in a lower power mode and / or may always be in a lower power mode, regardless of whether it detects another device and / or user. In some embodiments, the second device 304 also outputs polling messages via the NFC component of the second device 304. In other embodiments, the second device 304 does not output polling messages. In some embodiments, the first device 302 outputs a polling message in response to a determination to start a communication session with the second device 304 (e.g., NFC communication, Wi-Fi communication, and / or Bluetooth communication).For example, the first device 302 may output a polling message in response to detecting an input corresponding to a user interface element for sharing content, an input corresponding to a user interface containing shareable content (e.g., a contact card of contacts stored by the first device 302), an input corresponding to a digital wallet (e.g., a user interface for a digital wallet and / or an input for displaying the digital wallet path), an input corresponding to a user interface having account information (e.g., an application's account information and / or an input for displaying information for one or more games), and / or an event or signal indicating that the user of the first device 302 wants to start a communication session (e.g., a signal inferred from user actions such as displaying a specific user interface for sharing data and / or including data that can be shared between devices and / or being brought into the vicinity of the second device 304). In some embodiments, the first device 302 outputs a polling message before determining to start a communication session with the second device 304 (e.g., NFC communication, Wi-Fi communication and / or Bluetooth communication). For example, the first display 302 can continuously output polling messages at one or more speeds and / or in response to displaying a particular user interface, but will not decide to initiate NFC communication with the second device 304 (as described later with respect to 314, for example) until an input corresponding to a particular user interface element is detected. It should be noted that other inputs and / or signals can cause the first device 302 to send a polling message and / or decide to initiate a communication session with the second device 304.
[0059] In 308, the first device 302 sends a polling message to the second device 304. In particular, the polling message sent to the second device 304 indicates that the second device 304 is within range of the NFC component of the first device 302 (for example, the first device 302 is sending other polling messages, but the second device 302 is not within range, so the other polling messages are not sent to the second device 302). In some embodiments, the polling message includes a random number generated by the first device 302 (referred to herein as the random number of the first device 302).
[0060] In 310, the second device 304 generates a random number (hereinafter referred to as the random number of the second device 304). In some embodiments, the random number of the second device 304 is generated in response to the reception of a polling message in 308. In some embodiments, the random number of the second device 304 is generated before the polling message is received, such as when a portion of the second device 304 outputs a polling message.
[0061] In 312, the second device 304 transmits a random number from the second device 304 to the first device 302. In some embodiments, the random number from the second device 304 is transmitted after and / or in response to receiving a polling message in 308. In other embodiments, the random number from the second device 304 is transmitted in a polling message sent from the second device 304 to the first device 302 (for example, as part of the second device 302 outputting the polling message).
[0062] In 314, the first device 302 determines whether to initiate NFC communication with the second device 304 (for example, to act as an NFC reader and / or NFC initiator). In some embodiments, the determination is based on whether the random number of the first device 302 is smaller than the random number of the second device 304. For example, the first device 302 may decide to initiate NFC communication (for example, to act as an NFC reader) if it determines that the random number of the first device 302 is smaller than the random number of the second device 304. In such an example, the first device 302 may decide not to initiate NFC communication (for example, to act as an NFC tag) if it determines that the random number of the first device 302 is larger than the random number of the second device 304. It should be noted that in some embodiments, one or more of the above-described criteria with respect to 306 may be used in addition to and / or instead of determining that the random number of the first device 302 is smaller than the random number of the second device 304.
[0063] In 316, the second device 304 determines whether to initiate NFC communication with the first device 304 (for example, to decide to act as an NFC reader and / or NFC initiator). In some embodiments, the determination is based on whether the random number of the second device 304 is smaller than the random number of the first device 302. For example, the second device 304 may decide to initiate NFC communication (for example, to decide to act as an NFC reader) if it determines that the random number of the second device 304 is smaller than the random number of the first device 302. In such an example, the second device 304 may decide not to initiate NFC communication (for example, to act as an NFC tag) if it determines that the random number of the second device 304 is larger than the random number of the first device 302. In some embodiments, the first device 302 and the second device 304 may each decide whether to initiate NFC communication using the same two random numbers. In particular, the use of transmitted and received numbers allows devices to independently decide whether to initiate NFC communication, and in some embodiments, allows only one of the devices to initiate it at a time.
[0064] In 318, the first device 302 and the second device 304 communicate via NFC. When the first device 302 decides to initiate NFC communication, the first device 302 initiates NFC communication (for example, by reading data from the NFC tag of the second device 304). When the second device 304 decides to initiate NFC communication, the second device 304 initiates NFC communication (for example, by reading data from the NFC tag of the first device 302). In some embodiments, a device that does not initiate communication functions as an NFC tag for NFC communication. For example, a device that does not initiate communication can make information transmitted via NFC available. It should be recognized that NFC is just one example of the type of communication channel that may be used, and other types of communication channels may be used in other embodiments.
[0065] In some embodiments, the information transmitted via NFC includes data for establishing, initiating, connecting, and / or communicating over different communication channels (e.g., Bluetooth or Wi-Fi). For example, the information may include an identification of the type of communication channel (e.g., Bluetooth or Wi-Fi), an identification of the network used for the different communication channels, and / or any information necessary to establish, initiate, connect, and / or communicate over the different communication channels.
[0066] In some embodiments, the information transmitted via NFC includes authentication credentials used by other devices to determine whether they know the device. In some embodiments, the authentication credentials are private so that other devices can determine whether they know the device by comparing them with other authentication credentials stored by those other devices. Such other authentication credentials may have been previously received by the other devices. If the authentication credentials match, the other devices can determine that they know the device and initiate processes corresponding to a known device (e.g., displaying different content, establishing a different type of communication channel, and / or sending / requesting a different type of information from the device). In some embodiments, after matching credentials but before initiating processes corresponding to a known device, the other devices can validate the authentication credentials using a public key stored and / or received along with previously received authentication credentials. If the authentication credentials are not validated, the other devices can treat the device as unknown. If authentication credentials do not match, other devices may determine that they do not know the device and may initiate a process to accommodate the new device (e.g., displaying different content, establishing a different type of communication channel, and / or sending / requesting a different type of information from the device). The process to accommodate the new device may include communicating one or more keys (e.g., long-term keys) (e.g., via NFC or other communication channels) that should be used by other devices for subsequent communications (e.g., communications in 320, or communications after communications in 320).
[0067] In some embodiments, the information transmitted via NFC includes the capabilities of the device and / or the context of the device. For example, the information may indicate whether the device includes a particular type of output component (e.g., an external monitor, external keyboard, headphones, speakers, and / or a projector) and / or whether it is communicating with another device (e.g., an HMD device). Such information may be included in or separate from the authentication credentials described above.
[0068] In 320, the first device 302 and the second device 304 communicate via Wi-Fi. In some embodiments, the first device 302 and the second device 304 communicate via Wi-Fi using information exchanged in 318. In some embodiments, the first device 302 and the second device 304 communicate data selected, stored, and / or configured in each device and / or either device. For example, in 320, the first device 302 may detect an input corresponding to a request to send contact information (e.g., stored by the first device 302) to the second device 304, and accordingly may send the contact information and / or one or more fields of the contact information (e.g., contact name, number, and / or address) (e.g., fewer than all fields of the contact information) to the second device 304 via Wi-Fi. In another example, the first device 302 may transmit other associated and / or accessible data corresponding to the first device 302, including images, videos, web pages, URLs, widgets, documents (e.g., text-based and / or spreadsheet documents), data from applications (e.g., account and / or game center information (e.g., account statistics and / or game scores) that are at least partially executed on the first device 302), digital wallet paths, one or more fields of digital wallet paths (e.g., credit card number, coupons, event paths, name, date of birth, car keys, house keys, and / or credentials), and / or information necessary to establish an application session between the two devices (e.g., a collaboration session (e.g., a synchronous communication session such as a video call or an asynchronous collaboration session such as document sharing)). In particular, by switching from NFC to Wi-Fi, the devices no longer need to be close to each other. It should be recognized that Wi-Fi is just one example of the types of communication channels that may be used, and other types of communication channels may be used in other embodiments.In some embodiments, the first device 302 initiates communication over Wi-Fi (and / or another type of communication channel) in response to a determination that one or more of the above-described criteria are met with respect to 306. For example, the first device 302 may prepare to initiate communication over Wi-Fi before determining that one or more of the above-described criteria are met (for example, but not to initiate communication over Wi-Fi) by performing one or more of the above-described steps with respect to 308, 314, and / or 318.
[0069] Figures 4A to 4C show exemplary user interfaces displayed in several embodiments. These user interfaces are used to illustrate the processes described above and below, including the processes in Figures 3 and 5 to 6.
[0070] As shown in the figures, Figures 4A to 4C depict a situation where a first smartphone (e.g., first device 302) is approaching a second smartphone (e.g., second device 304) and exchanging data. In Figure 4A, the first device 302 (e.g., smartphone) is outside the range of the second device 304. While outside the range, the two devices are not communicating with each other and instead operate independently.
[0071] As shown in Figure 4A, the first device 302 displays a lock screen 406. In some embodiments, the lock screen 406 is displayed when the first device 302 is locked and / or not in use. In such embodiments, the user may have access to limited functions while the first device 302 is locked and may be prompted to close the lock screen 406 to gain access to further functions. As also shown in Figure 4A, the second device 304 displays a photo user interface 408 along with a photograph 410. In some embodiments, the photo user interface 408 is displayed by the second device 304 while it is unlocked. In such embodiments, the user of the second device 304 may be actively using the second device 304 while the photo user interface 408 is displayed. It should be recognized that the lock screen 406 and the photo user interface 408 are merely embodiments of what the device may display, and / or may not display other user interfaces.
[0072] In the context of Figure 4A, the first device 302 and / or the second device 304 may be outputting polling messages in an attempt to communicate with other devices (for example, as described above with respect to 306). In some embodiments, such polling messages may be output via NFC, for example, while the NFC component is in a lower power mode.
[0073] In some embodiments, the user of the first device 302 initiates NFC communication via a control while sending a polling message to attempt to communicate with another device. In some embodiments, such a control is associated with an application (e.g., a corresponding and / or displayed within it). For example, a user interface element on a document application, a digital wallet application, a media application (e.g., a photo sharing application, a photo viewing and / or video playback application, and / or a video streaming application), and / or a game application (e.g., an installed game, a game center, and / or a game center-compatible application). In some embodiments, such a control corresponds to a device function. For example, user interface elements for sharing contact information (e.g., contact fields (e.g., phone number, address, and / or any one or more additional fields) and / or contact photos), device information (e.g., identification information of a connected Wi-Fi network, identification information of a connected Bluetooth device, and / or a connected storage medium), and / or network information (e.g., identification information of a Wi-Fi network and / or password, identification information of another connected shareable device (e.g., speaker, smartwatch, head-mounted display (HMD) device, and / or laptop)). In some embodiments, such controls are associated with an event or signal (e.g., a signal inferred from user input and / or an event triggered by an application) indicating that the user intends to initiate communication via NFC. In some embodiments, the first device 302 and / or the second device 304 suppress the display of controls (e.g., control 412, first control 414, and / or second control 416) as shown below in Figure 4B (e.g., to complete the associated function without displaying the user interface and / or controls associated with the function).For example, the first device 302 suppresses control 412 when the user selects a control in the contract card to send one or more fields of contact information via NFC.
[0074] In Figure 4B, the first device 302 is in close proximity to the second device 304. For example, the user of the first device 302 has brought the first device 302 close to the second device 304. In some embodiments, depending on proximity (e.g., being within range of receiving polling messages), the first device 302 receives polling messages from the second device 304 (e.g., as described above with respect to 306) while the first device and / or the second device 304 continue to output polling messages. Upon receiving the polling message, the first device 302 determines, based on the polling message, whether to initiate NFC communication (e.g., as described above with respect to 314), and if so, initiates NFC communication. While communicating via NFC (e.g., as described above with respect to 318), the first device 302 and / or the second device 304 transmit information to establish another communication channel (e.g., Bluetooth or Wi-Fi). Based on such information, other communication channels may be established (for example, as described above with respect to 320), and the first device 302 and the second device 304 may communicate via these other communication channels.
[0075] As shown in Figure 4B, the first device 302 displays a control 412 on the lock screen 406. In some embodiments, the control 412 is displayed after receiving a polling message, in response to receiving a polling message, after communicating via NFC, while communicating via NFC, and / or while communicating via other communication channels. In some embodiments, the control 412 corresponds to and / or includes data stored and / or configured to be shared by the first device 302 (e.g., data from applications (e.g., media applications (e.g., photo, video, sharing, and / or streaming applications), document applications (e.g., presentation and / or spreadsheet applications), and / or game applications (e.g., arcade-enabled and / or non-arcade-enabled)), one or more fields of a contact card, data from one or more cards and / or passes in a digital wallet application, and / or connection information (e.g., network information, session information, and / or collaboration session information)). In some embodiments, the first device 302 detects an input directed to the control 412, and the information is transmitted to the second device 304 via another communication channel.
[0076] As also shown in Figure 4B, the second device 304 displays the first control 414 and the second control 416 on the photo user interface 408. In some embodiments, the first control 414 and / or the second control 416 correspond to and / or include data stored and / or configured to be shared by the second device 304 (e.g., applications, widgets, one or more fields of a contact card, data from one or more cards and / or paths in a digital wallet application, and / or connection information (e.g., network information, session information, and / or collaboration session information)). In some embodiments, the data corresponding to the first control 414 and / or the second control 416 is of the same and / or different types as the data corresponding to control 412. In some embodiments, the second device 304, upon detecting input directed to the first control 414, causes the data corresponding to the first control 414 to be transmitted to the first device 302 via another communication channel. In some embodiments, the second device 304 detects an input directed to the second control 416, and data corresponding to the second control 416 is transmitted to the first device 302 via another communication channel. It should be recognized that such data is used only as an example, and other data may be displayed and / or transmitted between devices.
[0077] After Figure 4B, the first device 302 and the second device 304 may stop communicating with each other (for example, by disconnecting and / or terminating one or more communication channels). For example, the first device 302 and the second device 304 may be moved out of proximity. After stopping communication, the first device 302 may return to the proximity of the second device 304 while outputting polling messages again as described above. In response to being returned to proximity, the first device 302 may send a polling message (for example, with a new random number) to the second device 304. As described above, the second device 304 may generate a new random number and send the new random number to the first device 304. Based on these new random numbers, the first device 302 and the second device 304 may determine which device will initiate NFC communication and communicate accordingly.
[0078] As described above, the NFC communication between the first device 302 and the second device 304 may include authentication credentials used to determine whether the devices have communicated before. In some embodiments, as a result of the devices having communicated before (e.g., in Figure 4B), the first device 302 and / or the second device 304 may decide to communicate differently than described with respect to Figure 4B. For example, one or more keys (e.g., the long-term keys described above) may not be communicated between the devices. In another example, the first device 302 and the second device 304 may communicate via Bluetooth with respect to Figure 4B (when the devices do not know each other) and via Wi-Fi with respect to Figure 4C (when the devices know each other), or vice versa. In some embodiments, as a result of the devices having communicated before (e.g., in Figure 4B), the first device 302 and / or the second device 304 may decide to display different information than described with respect to Figure 4B. For example, the first device 302 and the second device 304 may display controls for sending contact information with respect to Figure 4B (when the devices do not know each other), may choose not to display any controls (as shown by the first device 302 in Figure 4C, for example), or may display different controls (as shown by the second device 304 in Figure 4C, for example).
[0079] As shown in Figure 4C, the second device 304 displays a control 418 on top of the photo user interface 408. In some embodiments, the control 418 includes indications of information stored and / or configured to be shared by the second device 402. For example, as a result of the second device 304 currently viewing a photo, the second device 304 may display controls for sending a photo in response to and / or after connecting with the first device 304 using the techniques described herein. In some embodiments, the photo is sent to the first device 302 via other communication channels by the second device 304 detecting input directed to the control 418.
[0080] While several use cases have been described above, it should be recognized that the disclosures herein may be used in other use cases. For example, when two users are wearing augmented reality devices and approaching each other, the subject described herein can cause one or both augmented reality devices to display information about the other person. In some embodiments, the augmented reality device may include NFC components, and NFC communication may occur between NFC components. In other embodiments, a smartphone connected to the augmented reality device may be used. In such examples, the NFC components of the smartphone can be used to retrieve content displayed by the augmented reality device.
[0081] Figure 5 is a flowchart illustrating a method for transmitting communication information (e.g., Method 500) according to several embodiments. Some operations of Method 500 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0082] As will be described later, Method 500 provides an intuitive method for transmitting communication information. Method 500 creates a more efficient human-machine interface by reducing the cognitive burden on the user. In the case of battery-powered computing devices, power is saved and the intervals between battery charges are extended by enabling users to interact with such devices faster and more efficiently.
[0083] In some embodiments, Method 500 is performed on a first device (e.g., a user device and / or a personal device). In some embodiments, the first device is a smartphone, a smartwatch, a wearable device, a head-mounted display (HMD) device, a laptop, a tablet, and / or a desktop computer.
[0084] In 502, the first device receives polling messages (e.g., data, signals, packets, frames, and / or enhanced contactless polling (ECP) frames) from a second device different from the first device (e.g., a user device and / or personal device) (e.g., via a data channel, data pipe, near-field communication (NFC) channel, and / or NFC data pipe). In some embodiments, the polling messages include requests for specific information. In some embodiments, the second device is a smartphone, smartwatch, wearable device, head-mounted display (HMD) device, laptop, tablet, and / or desktop computer.
[0085] In 504, as a result of receiving a polling message (e.g., thereafter and / or in accordance thereafter), the first device initiates a first communication channel of the first type, according to a determination based on the polling message that the first device has been selected to initiate (and / or act as its initiator) a first type of communication channel (e.g., a data channel, a data pipe, a near-field communication (NFC) channel, and / or an NFC data pipe) (e.g., to establish a first type of communication channel and / or to establish a bidirectional communication channel). In some embodiments, the first device initiates a first communication channel of the first type, according to a determination that a random number is smaller (or, in some embodiments, larger) than another random number included in the polling message, according to a determination that the random number is smaller than (or, in some embodiments, larger than) the other random numbers included in the polling message. In some embodiments, upon receiving a polling message, the first device negotiates with a second device to determine which device should initiate the first type of communication channel. In some embodiments, upon receiving a polling message, the first device generates a random number and sends it to the second device. In some embodiments, upon receiving a polling message, the first device generates a random number and compares it with another random number included in the polling message.
[0086] In 506, as a result of receiving a polling message and in accordance with a determination based on the polling message that the first device has been selected to initiate a first type of communication channel, the first device transmits first communication information for a second type of communication channel (e.g., a data channel, data pipe, Wi-Fi and / or a wireless connection via Bluetooth, etc.) over the first communication channel of the first type. In some embodiments, the first communication information includes information to help establish a second type of communication channel.
[0087] In 508, as a result of receiving a polling message and in accordance with a determination based on the polling message that the first device has not been selected to initiate a first type of communication channel, the first device refrains from initiating a first type of first communication channel. In some embodiments, as a result of comparing a random number with another random number included in the polling message and in accordance with a determination that the random number is greater than (or, in some embodiments, smaller than) the other random numbers included in the polling message, the first device waits for and / or permits the second device to initiate a first type of communication channel. In some embodiments, as a result of receiving a polling message and in accordance with a determination based on the polling message that the first device should not initiate a first type of communication channel, the first device transitions to a mode for receiving requests to initiate a first type of communication channel (e.g., activating an NFC tag and / or card, and / or transitioning to a mode corresponding to an NFC tag and / or card).
[0088] In 510, as a result of receiving a polling message and in accordance with a determination based on the polling message that the first device has not been selected to initiate a first type of communication channel, the first device receives second communication information for a second type of communication channel via a second communication channel of the first type (e.g., without receiving first communication information). In some embodiments, the second device initiates a second communication channel of the first type (e.g., in accordance with a determination that the second device initiates a first type of communication channel). In some embodiments, the second communication information includes information to help establish a second type of communication channel. In some embodiments, when the first communication information is transmitted, the second communication is not received. In some embodiments, when the second communication information is received, the first communication information is not transmitted.
[0089] In some embodiments, after receiving a polling message, the first device communicates with the second device via a first communication channel of a second type, which is established based on the first or second communication information. In some embodiments, after transmitting the first communication information for the second type of communication channel, the first device establishes the first communication channel based on the first communication information. In some embodiments, after receiving the second communication information for the second type of communication channel, the first device establishes the first communication channel based on the second communication information. In some embodiments, after receiving the first communication information for the second type of communication channel, the second device establishes the first communication channel of a second type based on the first communication information. In some embodiments, after transmitting the second communication information for the second type of communication channel, the second device establishes the first communication channel of a second type based on the second communication information. In some embodiments, a second type of first communication channel is established by a first device or a second device based on first communication information and / or second communication information.
[0090] In some embodiments, after a second communication channel of a second type is established between the first device and the second device (and / or, in some embodiments, together with and / or accordingly), the first device transmits first content (e.g., a physical input mechanism (e.g., a hardware input mechanism, a rotatable input mechanism, a crown, a knob, a dial, a physical slider, and / or a hardware button), a camera, a touch-sensitive display, a microphone, and / or a button) via the second communication channel of a second type to the first device (and / or communicates with the first device). The system detects inputs (e.g., one or more non-tap inputs such as tap input, swipe input, rotation of a rotatable input mechanism, voice commands, manual input (e.g., air tap and / or air swipe), and / or air input (e.g., pointing air gesture, tapping air gesture, swipe air gesture, and / or move air gesture), gaze input, gaze input, mouse click, mouse click and drag, voice commands, selection input, and / or inputs that move the computer system in a particular direction) that correspond to a request to send contact information, images, videos, documents, applications, and / or media items. In some embodiments, the second communication channel of the second type is the first communication channel of the second type. In some embodiments, the second communication channel of the second type is different from the first communication channel of the second type. In some embodiments, a second communication channel of a second type is established using different communication information than that of a first communication channel of a second type (for example, the second communication channel of a second type uses second communication information, and the first communication channel of a second type uses first communication information). In some embodiments, upon detecting an input corresponding to a request to transmit content over a second communication channel of a second type, the first device transmits the first content to the second device over the second communication channel of a second type.
[0091] In some embodiments, after a second communication channel of a second type is established between the first and second devices (and / or, in some embodiments, together with and / or accordingly), and before the first content is transmitted to the second device via the second communication channel of the second type, the first device receives second content (e.g., contact information, images, videos, documents, applications, and / or media items) from the second device via the second communication channel of the second type. In some embodiments, the second content is different from the first content. In some embodiments, the second content is received by the first device before the first device transmits the content to the second device via the second communication channel of the second type.
[0092] In some embodiments, after a third communication channel of a second type is established between the first and second devices (and / or, in some embodiments, together with and / or accordingly), the first device transmits (e.g., shares, provides, and / or transmits) a key (e.g., an identity resolution key (IRK) and / or public key) of a third type communication channel different from the first type (e.g., a data channel, data pipe, wireless connection via Wi-Fi and / or Bluetooth, etc.) (e.g., a one-way communication channel) via the third communication channel of the second type. In some embodiments, the third type communication channel is distinct from the third communication channel of the second type. In some embodiments, the third type communication channel is the first communication channel of the second type or the second communication channel of the second type. In some embodiments, the third type communication channel is the second type communication channel. In some embodiments, the third type communication channel is different from the second type communication channel.
[0093] In some embodiments, polling messages are received via a Near Field Communication (NFC) component of the first device (e.g., in Low Power Card Detection (LPCD) mode) (e.g., using the NFC protocol). In some embodiments, the first type of communication channel includes an NFC channel. In some embodiments, the first communication channel of the first type is an NFC channel. In some embodiments, the second communication channel of the first type is an NFC channel. In some embodiments, the second type of communication channel includes a wireless communication channel (e.g., a near field communication channel such as Wi-Fi or Bluetooth).
[0094] In some embodiments, the first individual communication information (e.g., first communication information, second communication information, and / or other communication information different from the first and second communication information) includes an indication of a second type of communication channel. In some embodiments, a third type of communication channel is established between the first and second devices according to the determination that the first communication information corresponds to a third type of communication channel (e.g., Bluetooth). In some embodiments, a fourth type of communication channel is established between the first and second devices according to the determination that the first communication information corresponds to a fourth type of communication channel (e.g., Wi-Fi). In some embodiments, the fourth type of communication channel is different from the third type of communication channel.
[0095] In some embodiments, after receiving a polling message, the first device receives a second polling message from the second device, and as a result of the polling message (e.g., together with it, based on it, and / or accordingly), a fifth type of communication channel (e.g., Bluetooth) is established between the first device and the second device, and as a result of receiving the second polling message (e.g., thereafter, and / or accordingly), a sixth type of communication channel (e.g., Wi-Fi) is established between the first device and the second device, the sixth type of communication channel being different from the fifth type of communication channel.
[0096] In some embodiments, the second separate communication information (e.g., the first communication information, the second communication information, and / or other communication information different from the first and second communication information) includes the first public key (e.g., the first communication information includes a public key corresponding to the first device (e.g., not corresponding to the second device) (e.g., the second communication information includes a public key corresponding to the second device (e.g., not corresponding to the first device)).
[0097] In some embodiments, the second communication information includes a second public key corresponding to the second device. In some embodiments, the first device uses the second public key to verify communications received from the second device via a second type of communication channel (for example, communications include a signed and / or certificate that is signed and / or verified using the second public key). In some embodiments, the second public key is the first public key. In some embodiments, the second separate communication information is the second communication information.
[0098] In some embodiments, individual communication information (e.g., first communication information or second communication information) includes a unique identifier (e.g., a UUID) for identifying an instance of a second type of communication channel (e.g., a network Wi-Fi and / or broadcast name).
[0099] In some embodiments, the second communication information includes a second public key corresponding to the second device. In some embodiments, the first device uses the second public key to verify communications received from the second device via a second type of communication channel (for example, communications include a signed and / or certificate that is signed and / or verified using the second public key). In some embodiments, the second public key is the first public key. In some embodiments, the second separate communication information is the second communication information.
[0100] In some embodiments, the polling message-based determination includes comparing a first random number contained in the polling message with a second random number generated by a first device; determining, in response to the comparison of the first random number with the second random number, that the first device is selected to initiate a first type of communication channel (and / or the second device is not selected to initiate a first type of communication channel) according to the determination that the first random number satisfies one or more criteria with respect to the second random number (e.g., the first random number is less than or greater than the second random number); and determining, in response to the determination that the second random number satisfies one or more criteria with respect to the first random number (e.g., the second random number is less than or greater than the second random number), that the first device is not selected to initiate a first type of communication channel (and / or the second device is selected to initiate a first type of communication channel). In some embodiments, in response to receiving a polling message, the first device generates a second random number.
[0101] It should be noted that the details of the process described above in relation to Method 500 (for example, Figure 5) are also applicable to schemes similar to other methods described herein. For example, Method 600 optionally includes one or more characteristics of the various methods described above with reference to Method 500. For example, the authentication information of Method 600 may be included in the communication information transmitted in Method 500. For brevity, these details will not be repeated below.
[0102] Figure 6 is a flowchart illustrating a method for selectively transmitting keys according to one embodiment (e.g., Method 600). Some operations of Method 600 are arbitrarily combined, the order of some operations is arbitrarily changed, and some operations are arbitrarily omitted.
[0103] As will be described later, Method 600 provides an intuitive method for selectively transmitting keys. Method 600 creates a more efficient human-machine interface by reducing the cognitive burden on the user. In the case of battery-powered computing devices, power is saved and the intervals between battery charges are extended by enabling users to interact with such devices faster and more efficiently.
[0104] In some embodiments, Method 600 is performed on a first device (e.g., a user device and / or a personal device). In some embodiments, the first device is a smartphone, a smartwatch, a wearable device, a head-mounted display (HMD) device, a laptop, a tablet, and / or a desktop computer.
[0105] In 602, the first device receives authentication credentials (e.g., certificates, private credentials, cryptographic credentials, data used to authenticate the identity of the second device, and / or the user account of the second device) from a second device (e.g., a user device and / or personal device) different from the first device via a first communication channel (e.g., a wireless connection via a data channel, data pipe, Wi-Fi and / or Bluetooth, etc.) (e.g., a second device and / or a user account of the second device). In some embodiments, the second device is a smartphone, a smartwatch, a wearable device, a head-mounted display (HMD) device, a laptop, a tablet and / or a desktop computer. In some embodiments, the first communication channel is not a long-term connection.
[0106] In 604, upon receipt of authentication credentials, one or more of the first set of criteria are met, and one or more of the first set of criteria are met when the authentication credentials have not been previously received by the first device (e.g., and / or the first device cannot decrypt the authentication credentials and / or the first device cannot otherwise establish that the authentication credentials are known to the first device (e.g., the first device has lost and / or deleted another set of authentication credentials received from the second device) (e.g., another set of authentication credentials received from the second device has expired and In accordance with the determination that the criteria include (or have been invalidated), the first device transmits one or more sets of keys (e.g., public keys and / or identity resolution keys (IRKs) (e.g., corresponding to the first device)) to the second device via the first communication channel, the keys of which correspond to a second communication channel that is not currently established (e.g., a wireless connection via a data channel, data pipe, Wi-Fi and / or Bluetooth, etc.) (e.g., used to access, establish, verify, and / or initiate). In some embodiments, the first communication channel is stopped in response to transmitting or receiving content via the first communication channel. In some embodiments, the first communication channel is stopped in response to transmitting and / or after transmitting one or more sets of keys via the first communication channel. In some embodiments, the second communication channel is not stopped in response to transmitting or receiving content via the second communication channel. In some embodiments, one or more sets of keys correspond to the second communication channel. In some embodiments, the second communication channel is configured to be established one or more times (e.g., re-established multiple times). In some embodiments, the second communication channel is a long-term connection. In some embodiments, in response to receiving authentication credentials and according to a determination that a first set of one or more criteria is met, the first device initiates a first protocol which includes transmitting one or more sets of keys.
[0107] In 606, upon receiving authentication credentials, and in accordance with the determination that one or more second sets of criteria are met, the second set of criteria includes criteria that were met when the authentication credentials were previously received by the first device, and the first device refrains from transmitting one or more sets of keys to the second device over a first type of communication channel. In some embodiments, upon receiving authentication credentials and in accordance with the determination that one or more second sets of criteria are met, the first device initiates a second protocol different from the first protocol. In some embodiments, the second protocol does not involve transmitting one or more sets of keys. In some embodiments, the second protocol includes sharing content between the first device and the second device.
[0108] In some embodiments, the first type of communication channel includes an NFC channel. In some embodiments, the first communication channel of the first type is an NFC channel. In some embodiments, the second communication channel of the first type is an NFC channel. In some embodiments, the second type of communication channel includes a wireless communication channel (e.g., a short-range wireless communication channel such as Wi-Fi or Bluetooth).
[0109] In some embodiments, the authentication credentials indicate a second device (and, in some embodiments, do not indicate a first device). In some embodiments, the first key of one or more keys is a public key (for example, corresponding to a first device). In some embodiments, the public key corresponds to and / or is used in relation to a second communication channel. In some embodiments, the public key is configured (and / or used) to verify the identity of the first device (for example, by the second device using the public key to decrypt a portion of the communication received from the first device (e.g., the signature and / or certificate contained therein)). In some embodiments, the public key is configured (and / or used to encrypt communications sent to the first device).
[0110] In some embodiments, the second key among one or more keys is an address corresponding to the first device (e.g., an Identity Resolution Key (IRK)) (e.g., a private address). In some embodiments, the third key among one or more keys is a Long-Term Key (e.g., an LTK). In some embodiments, the fourth key among one or more keys is a Persistent Key (e.g., stored on the first and second devices and used to derive the cryptographic key each time the first and / or second devices communicate (e.g., in a session)). In some embodiments, the fifth key among one or more keys is a Connection Signature Resolution Key (CSRK).
[0111] In some embodiments, the authentication credentials are signed with a private key (e.g., corresponding to a second device). In some embodiments, the determination that a first set of one or more criteria is met includes a comparison of the authentication credentials with one or more authentication credentials stored on the first device (e.g., if the authentication credentials do not match any of the authentication credentials stored on the first device, the criteria of the first set of one or more criteria are met). In some embodiments, the determination that a second set of one or more criteria is met includes a comparison of the authentication credentials with one or more authentication credentials stored on the first device (e.g., if the authentication credentials match any of the authentication credentials stored on the first device, the criteria of the second set of one or more criteria are met).
[0112] In some embodiments, upon receiving authentication credentials and in accordance with the determination that a second set of one or more criteria is met, the first device verifies the signature of the authentication credentials via a public key stored in the first device (for example, by computing a first hash of the authentication credentials, using the public key to decrypt the signature and generate a second hash, and verifying the authentication credentials if the first hash matches the second hash). In some embodiments, the public key is stored together with, associated with, corresponding to, and / or included in, the second authentication credentials stored in the first device. In some embodiments, the second authentication credentials were received by the first device before the authentication credentials were received.
[0113] In some embodiments, upon receiving authentication credentials, the first device sends one or more sets of keys to the second device, and then receives third authentication credentials from the second device. In some embodiments, the third authentication credentials are the same as the authentication credentials. In some embodiments, upon receiving the third authentication credentials (for example, and according to the determination that a second set of one or more criteria is met (for example, as a result of the third authentication credentials matching the authentication credentials (for example, stored in the first device after receiving the authentication credentials))), the first device refrains from sending one or more sets of keys to the second device.
[0114] In some embodiments, after receiving authentication credentials (e.g., at some point thereafter, and / or in conjunction therewith) (and / or before detecting input corresponding to a user of the first device via one or more input devices of the first device), the first device displays a first user interface (e.g., in some embodiments, a graphical user interface including one or more user interface elements) via the display generation components of the first device, in accordance with the determination that a first set of one or more criteria is met. In some embodiments, after receiving authentication credentials, the first device displays a second user interface (e.g., in some embodiments, a graphical user interface including one or more user interface elements) different from the first user interface via the display generation components of the first device, in accordance with the determination that a second set of one or more criteria is met. In some embodiments, the second user interface includes user interface elements not included in the first user interface.
[0115] It should be noted that the process details described above in relation to Method 600 (for example, Figure 6) are also applicable to schemes similar to other methods described herein. For example, Method 500 optionally includes one or more characteristics of the various methods described above with reference to Method 600. For example, the first communication channel of Method 600 may be the first communication channel of a first type of Method 500. For brevity, these details are not repeated here.
[0116] Figure 7 is a swimlane diagram showing a process (e.g., process 700) for selectively delaying communication according to some embodiments. As shown in Figure 7, process 700 includes a first device 302 and a second device 304. In some embodiments, the first device 302 and / or the second device 304 include one or more of the components described above with respect to device 200 and / or computing system 100.
[0117] In 702, the first device 302 detects the second device 304. For the purposes of this description, the first device 302 and the second device 304 are smartphones that include one or more different components for communication with other devices (e.g., an NFC reader, an NFC tag for communication via NFC, and / or one or more radio antennas for wireless communication via one or more different protocols such as Wi-Fi and / or Bluetooth). It should be recognized that the first device 302 and / or the second device 304 may be other types of devices such as smartwatches and / or HMD devices.
[0118] In 704, the first device 302 outputs a polling message to establish a connection between the first device 302 and the second device 304. For example, the first device 302 may output one or more polling messages to identify a nearby NFC tag. In some embodiments, the NFC component of the first device 302 is in a lower power mode while outputting polling messages in 704. In particular, the NFC component of the first device 302 operating in a lower power mode can reduce the impact on power and / or performance of outputting polling messages by requiring less power and / or processing bandwidth. In some embodiments, when the first device 302 detects another device (e.g., the second device 304), the NFC component of the first device 302 transitions to a normal and / or higher power mode and outputs polling messages at a normal and / or higher rate (e.g., compared to the lower power mode and / or compared to the default output rate). In some embodiments, as described above, a device (e.g., a first device 302 and / or a second device 304) outputs a polling message (e.g., at one or more default rates) in response to detecting an input (e.g., an input corresponding to a user interface element for sharing content and / or an input corresponding to a confirmation for sharing content). While process 300 has been described above, it should be understood that process 700 may include one or more steps from process 300 (e.g., sending a polling message, generating a random number, and / or determining an NFC initiator).
[0119] In 706, the first device 302 and the second device 304 establish a connection. In some embodiments, the connection between the first device 302 and the second device 304 is an NFC connection, enabling NFC communication. For example, the first device 302 initiates NFC communication by reading data from the NFC tag of the second device 304. In some embodiments, communication between the first device 302 and the second device 304 does not involve initiating NFC communication, but rather involves making information to be transmitted via NFC available. For example, the first device 302 prepares information on an NFC tag for another device (e.g., the second device 304) to read. It should be recognized that NFC is just one example of the type of communication channel that may be used, and in other embodiments, other types of communication channels (e.g., Wi-Fi and / or Bluetooth) may be used.
[0120] In 708, while connected to the second device 304, the first device 302 sends an authentication request to the second device 304. In some embodiments, the authentication request includes one or more pieces of identification information corresponding to the first device 302. For example, the authentication request may include a timestamp, a unique identifier, a public key, and / or an authentication tag. In some embodiments, the authentication tag is the authentication credentials described above in process 300. In some embodiments, the authentication request sent by the first device 302 indicates that the first device 302 has established a connection with the second device 304.
[0121] In 710, while connected to the first device 302, the second device 304 sends an authentication response. In some embodiments, the authentication response includes one or more pieces of identification information corresponding to the second device 304. For example, the authentication response may include a timestamp, a unique identifier, a public key, and / or an authentication tag. In some embodiments, the authentication tag is the authentication credentials described above in process 300.
[0122] In some embodiments, the first device 302 determines whether the second device 304 is an unknown or known device by comparing the authentication response (e.g., one or more values in the authentication response and / or one or more values generated from the authentication response) with a list of one or more stored values. In some embodiments, the list of one or more stored values corresponds to data contained in previously received authentication responses. For example, the first device 302 stores a unique identifier for each device connected to the first device 302. In some embodiments, the first device 302 compares the authentication response with a list of one or more stored values corresponding to known devices. In some embodiments, the first device 302 generates a stored value for each known contact stored in the first device 302. In some embodiments, the first device 302 determines whether the second device 304 is an unknown or known device by comparing the authentication response (e.g., one or more values in the authentication response) with one or more values in the known contacts of the first device 302 (e.g., a unique identifier for each contact and / or one or more fields on the contact page). In some embodiments, the first device 302 generates an authentication value for each of the first device 302's known contacts and compares the generated authentication value with the authentication response and / or one or more values in the authentication response.
[0123] In 712, while connected to the second device 304, the first device 302 delays subsequent communication with the second device 304 due to determining that the second device 304 is an unknown device. For example, the first device 302 determines that the second device 304 is an unknown device if it does not recognize the authentication response sent from the second device 304, cannot verify the authentication response sent from the second device 304, and / or receives an invalid authentication response from the second device 304. In some embodiments, the delay in subsequent communication between the first device 302 and the second device 304 is part of one or more processes corresponding to the first device 302 determining that it has connected to an unknown device. As described above in process 300, processes corresponding to unknown devices and / or new devices may include displaying different content, establishing different types of communication channels, and / or sending / requesting different types of information from the device. In some embodiments, the first device 302 delays subsequent communication with the second device 304 by a predetermined amount of time. For example, the first device 302 delays by an amount of time set in the system settings of the first device 302. In some embodiments, the first device 302 delays subsequent communication with the second device 304 for an amount of time calculated based on the subsequent communication. For example, the first device 302 delays by an increased and / or decreased amount of time depending on the complexity of the subsequent communication and / or the privacy or security level associated with the subsequent communication.
[0124] In some embodiments, by delaying subsequent communication between the first device 302 and the second device 304, the user of the first device 302 can disconnect from unknown and / or unwanted connections before transmitting and / or displaying additional information (e.g., subsequent communication). For example, by delaying subsequent communication between the first device 302, the user of the first device 302 can have the opportunity to disconnect from the NFC connection to the second device 304 by pulling the first device 302 away from and / or moving it during the delay. In particular, by delaying subsequent communication between the first device 302, the user of the first device 302 can improve the security, privacy, and / or control over the information of the first device 302 through its ability to stop unknown and / or unwanted connections before the first device 302 displays and / or transmits any personal information (e.g., name, contact information, and / or content stored on the device). In some embodiments, before and / or during the delay of subsequent communication, the first device 302 outputs an indication of delay to an unknown device and / or an indication of connection (e.g., an audible indication, a visual indication, and / or a haptic indication). For example, if the first device 302 determines that the second device 304 is an unknown device, the first device 302 outputs a haptic indication to warn the user of the first device 302 of the connection.
[0125] In some embodiments, an interrupted and / or disconnected connection between the first device 302 and another device (e.g., a second device 304) returns the first device 302 to a state where it can establish and / or re-establish an NFC connection to the other device (e.g., the second device 304). For example, by returning the first device 302 to an initial state where it can establish an NFC connection, a user of the first device 302 can easily re-establish a connection to another device (e.g., the first device 302) that was accidentally and / or accidentally disconnected. In some embodiments, the first device 302 returns to outputting one or more polling messages from an NFC component in a lower power mode (e.g., outputting polling messages at a slower rate).
[0126] In some embodiments, the first device 302 refrains from delaying subsequent communication with the second device 304 because it has determined that the second device 304 is a known device. In some embodiments, as described above, when the first device 302 determines that the second device 304 is a known device, it initiates a process corresponding to a known device (e.g., displaying different content, establishing a different type of communication channel, and / or sending / requesting a different type of information from the device).
[0127] In 714, the first device 302 sends a verification request to the second device 304. In some embodiments, regardless of whether the first device 302 is delayed, the first device 302 sends a verification request to the second device 304 to determine whether the second device 304 knows the first device 302. For example, the first device 302 sends a verification request to ensure that both the first device 302 and the second device 304 have a common experience, as will be further described below. In particular, the first device 302 sending a verification request ensures that the second device 304 does not refrain from displaying the contact sharing user interface if the first device 302 does not have the contact information corresponding to the second device 304, and that even if the second device 304 knows the contact information of the first device 302, the user of the second device 304 can still share the contact information.
[0128] In step 716, the second device 304 sends a verification response to the first device 302. In this example, the verification response sent to the first device 302 includes one or more values indicating whether the second device 304 knows the first device 302. For example, by the first device 302 receiving a verification response to a verification request, the first device 302 can exhibit a common experience between the first device 302 and the second device 304, as described below.
[0129] In some embodiments, if the first device 302 determines that one or both of the set of communication devices (e.g., the first device 302 and / or the second device 304) are unaware of a corresponding device (e.g., a connected device (e.g., the first device 302 and / or the second device 304)), the set of communication devices initiate a process for dealing with the unknown device. In some embodiments, the process for dealing with the unknown device may include displaying a common user interface among the set of communication devices (e.g., a shared contacts user interface), refraining from displaying certain content (e.g., not displaying images, videos, and / or personal information stored on the device), and / or refraining from displaying a shared content user interface (e.g., an application and / or user interface that enables the sharing of stored content). For example, the first device 302 knows the second device 304, but the second device 304 does not know the first device 302, and both devices and / or the first device 302 display a contact information sharing user interface (see, for example, 412, 414, and / or 416 in Figure 4B). In some embodiments, when the first device 302 receives contact information from the second device 304, the first device 302 stores one or more values corresponding to the identification of the second device 304, enabling the first device 302 and the second device 304 to initiate a known device process (e.g., sharing content and / or subsequent communications without delay), as described below.
[0130] In some embodiments, when the first device 302 determines that both communication devices (e.g., the first device 302 and / or the second device 304) know the corresponding device (e.g., the connected device (e.g., the first device 302 and / or the second device 304)), the set of communication devices initiate a process corresponding to the known device. In some embodiments, the process corresponding to the known device may include displaying a specific user interface based on the current device state (e.g., displaying an image sharing user interface when an image viewing application is the active application (e.g., see 418 in Figure 4C)), a content sharing user interface (e.g., a user interface with recently accessed content that can be shared (e.g., see 418 in Figure 4C)), and / or a personal information sharing user interface (e.g., a user interface with personal information that can be shared (e.g., location information, address information, and / or other device-specific information)). For example, both the first device 302 and the second device 304 know each other (e.g., the first device 302 and the second device 304 send verification requests and / or responses corresponding to knowing other connected devices (e.g., the first device 302 and / or the second device 304)), and the first device 302 displays a shared content user interface corresponding to the image the first device 302 is displaying, enabling the user of the first device 302 to quickly share the relevant content with the user of the second device 304. In some embodiments, once the first device 302 verifies that both the first device 302 and the second device 304 know each other, it does not display an additional user interface. In some embodiments, the first device 302 stores the verification to enable the user of the first device 302 to share information and / or content without requiring the user of the second device 304 to confirm the sharing while remaining connected.For example, if both the first device 302 and the second device 304 know each other, and the first device 302 is displaying the first application, the user of the first device 302 can, while still connected, open the second application on the first device 302 and start sharing from the second application without confirming sharing.
[0131] Figure 8 is a flowchart illustrating a method for selectively delaying communication according to one embodiment (e.g., Method 800). Some operations of Method 800 are arbitrarily combined, the order of some operations is arbitrarily changed, and some operations are arbitrarily omitted.
[0132] As will be described later, Method 800 provides an intuitive way to selectively delay communications. Method 800 creates a more efficient human-machine interface by reducing the cognitive burden on the user. In the case of battery-powered computing devices, power is saved and the intervals between battery charges are extended by enabling users to interact with such devices faster and more efficiently.
[0133] In some embodiments, Method 800 is performed on a first device (e.g., a user device and / or a personal device). In some embodiments, the first device is a smartphone, a smartwatch, a wearable device, a head-mounted display (HMD) device, a laptop, a tablet, and / or a desktop computer. In some embodiments, the first device corresponds to a first user.
[0134] In 802, the first device connects to a second device (e.g., a user device and / or personal device) distinct from the first device via a first communication channel (e.g., a data channel, a data pipe, a near-field communication (NFC) channel, and / or an NFC data pipe) (e.g., as described above with respect to the communication channel of the second type of method 500). In some embodiments, the second device corresponds to a second user distinct from the first user. In some embodiments, the second device is a smartphone, a smartwatch, a wearable device, a head-mounted display (HMD) device, a laptop, a tablet, and / or a desktop computer. In some embodiments, the first communication channel is not a long-term connection.
[0135] In 806, while connected to the second device via the first communication channel, and after receiving an authentication response (e.g., a certificate, private credentials, cryptographic credentials, data used to authenticate the identity of the second device and / or the user account of the second device) from the second device (e.g., as described above with respect to the authentication credentials of Method 600) (e.g., a certificate, private credentials, cryptographic credentials, data used to authenticate the identity of the second device, and / or data indicating the identity of the second device and / or the user account of the second device used In some embodiments, the first device can send subsequent communications to the second device (e.g., additional authentication responses, connection verification responses, and / or responses corresponding to the first device) corresponding to stored authentication credentials (e.g., authentication responses corresponding to stored authentication credentials (e.g., stored locally and / or remotely) and / or generated authentication credentials (e.g., authentication credentials generated from data stored on the first device)).
[0136] In 808, while connected to the second device via the first communication channel and after receiving an authentication response from the second device, the second set of one or more criteria is satisfied (and / or the first device cannot match the authentication response with authentication credentials known to the first device (e.g., the first device has not previously contacted the second device, the first device has expired authentication credentials, and / or the authentication credentials known to the first device are invalid and / or corrupted), and / or the first device cannot decrypt the authentication response, and / or the authentication response is invalid), the second set of one or more criteria includes criteria that are satisfied when the second device corresponds to an unknown device (and / or the user corresponding to the second device is an unknown user), and the first device delays sending subsequent communications to the second device (e.g., for a predetermined amount of time). In some embodiments, the first device delays all data transfers to and / or from the second device according to a determination that a second set of one or more criteria is met. In some embodiments, the first device generates the subsequent communication before delaying its transmission. In some embodiments, the first device generates the subsequent communication while delaying its transmission. In some embodiments, the first device generates the subsequent communication after delaying its transmission. In some embodiments, the first device does not transmit the subsequent communication after losing connectivity to the second device before and / or during the delay. In some embodiments, a predetermined time amount is fixed and / or set within the settings of the first device. In some embodiments, the predetermined time amount depends on the subsequent communication (e.g., the first device increases and / or decreases the length of the delay depending on the complexity of the subsequent communication).
[0137] In some embodiments, after delaying the transmission of a subsequent communication to the second device, the first device transmits the subsequent communication via the first communication channel according to the determination that the second device remains connected to the first device (e.g., connected, still connected, and / or continues to be connected). In some embodiments, after delaying the transmission of a subsequent communication to the second device, the first device refrains from transmitting the subsequent communication via the first communication channel according to the determination that the second device is no longer connected to the first device. In some embodiments, the first device determines that the second device remains connected by maintaining proximity-based connectivity (e.g., the first and second devices remain close enough to each other that the NFC components and / or receivers remain connected and / or detected).
[0138] In some embodiments, after transmitting subsequent communications over a first communication channel, the first device establishes a second communication channel (e.g., Wi-Fi and / or Bluetooth) that is different from (and / or separate from) the first communication channel, based on (and / or using) the content contained in the authentication response (e.g., a communication type value (and / or corresponding to the desired type of communication channel for another communication channel (e.g., a second communication channel)) (e.g., Wi-Fi, Bluetooth, alternative proximity-based communication channel type, and / or alternative non-proximity-based communication channel type)). In some embodiments, the second communication channel is a different type of communication channel than the first communication channel. In some embodiments, the first communication channel is of a type that enables proximity-based communication only. In some embodiments, the first communication channel is automatically disconnected by moving the first device and / or the second device away from each other. In some embodiments, the second communication channel is of a type that enables proximity-based communication and / or non-proximity-based communication. In some embodiments, the second communication channel provides proximity-based communication and / or communication that continues over a greater distance than enabled by the first communication channel. In some embodiments, establishing the second communication channel terminates and / or disconnects the first communication channel and / or stops enabling communication through the first communication channel. In some embodiments, the first communication channel remains available while connected through the second communication channel. In some embodiments, the first communication channel remains available while the first and second devices remain close enough to each other to enable proximity-based communication. In some embodiments, the communication type value is a value corresponding to the type of communication channel to be established after subsequent communication has been transmitted. In some embodiments, the communication type value indicates that the communication channel is of type first and / or type second, as described above in Method 500.
[0139] In some embodiments, subsequent communication is (and / or includes) a verification request (e.g., a request for the second device to verify information, and / or a request to confirm that the first device is a known device of the second device). In some embodiments, the verification request includes an indication of whether the second device (and / or another device different from the first and second devices) is a known device (e.g., whether the first device and / or a device communicating with the first device (e.g., different from the first and second devices) knows the second device (and / or stores information corresponding to the second device, and / or has previously communicated with the second device)). In some embodiments, the indication of whether the second device (and / or other device) is a known device is a Boolean value corresponding to whether the first device succeeded in identifying the second device (and / or other device) or failed in identifying the second device (and / or other device). In some embodiments, the criterion that is met when the second device corresponds to a known device is met when the indication is a positive indication that the second device is a known device. In some embodiments, in response to determining that the second device is an unknown device, and / or thereafter, the first device sets the verification request indication as not being able to identify the second device (e.g., the second device is an unknown device). In some embodiments, while delaying the transmission of subsequent communications and / or thereafter, the first device sets the verification request indication as not being able to identify the second device (e.g., the second device is an unknown device).
[0140] In some embodiments, the first device communicates with a display generation component. In some embodiments, after sending subsequent communications over the first communication channel, the first device receives a verification response (e.g., a response to a verification request) from the second device. In some embodiments, the verification response includes an indication of whether the first device (and / or another device different from the first and second devices) is a known device (e.g., whether the second device and / or a device communicating with the second device (different from the first device) knows the first device (and / or stores information corresponding to the first device and / or has previously communicated with the first device)). In some embodiments, the indication of whether the first device is a known device is a Boolean value corresponding to whether the second device succeeded in identifying the first device or failed to identify the first device. In some embodiments, upon receiving a validation response, the first device displays a first user interface via a display generating component, according to a determination that one or more third sets of criteria are met, the first set of criteria being met when the validation response includes an indication that the second device has successfully identified (and / or knows) the first device. In some embodiments, the first user interface corresponds to additional functionality available when communicating with a known device (e.g., sharing content (e.g., photos, videos, and / or other stored content), and / or sharing additional information (e.g., addresses, information from a specific application, and / or device information)). In some embodiments, the first user interface corresponds to an active application (e.g., a shared image user interface when an image viewer is active, and / or a shared destination user interface when a navigation application is active).In some embodiments, upon receiving a verification response, a determination is made that one or more fourth sets of criteria are met, the fourth set of criteria being met when the verification response includes an indication that the second device did not successfully identify (and / or do not know) the first device, the first device displays a second user interface different from the first user interface via a display generation component, and the fourth set of criteria is different from the third set of criteria. In some embodiments, the second user interface corresponds to limited functionality available when communicating with an unknown device (e.g., sharing contact information). In some embodiments, the first user interface can be displayed after the second user interface has been displayed (e.g., additional information can be enabled after the first and second devices have shared contact information that they know of each other). In some embodiments, the second device remains unknown by canceling and / or terminating the second user interface while it is displayed and / or after it has been displayed.
[0141] In some embodiments, the verification response includes an indication of whether the first device is a known device (e.g., whether the second device and / or a device communicating with the second device (e.g., different from the first and second devices) know the first device (and / or has stored information corresponding to the first device and / or has previously communicated with the first device)). In some embodiments, the indication of whether the first device is a known device is a Boolean value corresponding to whether the second device succeeded in identifying the first device or failed to identify the first device.
[0142] In some embodiments, upon receiving a verification response, according to the determination that one or more fifth sets of criteria are met, one or more fifth sets of criteria include criteria that are met when either the first device or the second device (e.g., not both) is a known device (e.g., either the verification request or the verification response includes an indication that the device is a known device) and either the first device or the second device (e.g., not both) is an unknown device (e.g., either the verification request or the verification response includes an indication that the device is an unknown device), and the first device displays the third user interface via the display generating component. In some embodiments, one or more fifth sets of criteria are different from one or more third sets of criteria and / or one or more fourth sets of criteria. In some embodiments, upon receiving a verification response, according to a determination that one or more sets of sixth criteria are met, the set of sixth criteria includes criteria that are met when both the first and second devices are unknown devices (e.g., both the verification request and the verification response include an indication that the devices are unknown devices), the first device displays a third user interface via a display generation component, and the set of sixth criteria is different from one or more sets of fifth criteria. In some embodiments, the set of sixth criteria is different from one or more sets of third criteria and / or one or more sets of fourth criteria. In some embodiments, upon receiving a verification response, according to a determination that one or more sets of seven criteria are met, the set of seven criteria includes criteria that are met when both the first and second devices are known devices (e.g., both the verification request and the verification response include an indication that the devices are known devices), the first device displays a fourth user interface (e.g., a first user interface) different from the third user interface via a display generation component.In some embodiments, the third user interface includes one or more user interface elements that enable the sharing of device-based, user-based, and / or application-based information (e.g., including user interface elements for sharing contact information and / or unique identifiers of user accounts associated with devices (e.g., a first device and / or a second device)). In some embodiments, the third user interface corresponds to limited functionality associated with communication with unknown devices (e.g., not displaying personal information and / or enabling the sharing of personal information).
[0143] In some embodiments, the subsequent communication is a request to connect via a third communication channel (and / or wireless communication channel) (e.g., a near-field communication channel) (e.g., a second communication channel) (e.g., Wi-Fi or Bluetooth) different from the first communication channel.
[0144] In some embodiments, the authentication response is received via a first communication channel. In some embodiments, while connected to the second device via the first communication channel and before receiving the authentication response, the first device sends an authentication request to the second device via the first communication channel. In some embodiments, the authentication request includes a set of one or more values corresponding to the first device. In some embodiments, the authentication request is sent in response to the connection to the second device. In some embodiments, the authentication request and / or authentication response includes information required to establish another communication channel (e.g., one or more values required to establish a network-based connection between the first device and the second device).
[0145] In some embodiments, the authentication request includes a unique identifier for establishing a fourth communication channel. In some embodiments, the unique identifier corresponds to a first device. In some embodiments, the unique identifier is used to identify the first device for connection purposes (e.g., to identify the first device within a list of one or more devices within Bluetooth range, and / or to identify the first device within a list of one or more devices connected on the same wireless network).
[0146] In some embodiments, the authentication request includes a first identifier (e.g., an authentication tag and / or a cryptographic checksum) corresponding to the first device (and / or usable to identify the first device and / or the first device). In some embodiments, the first identifier is a different identifier from the unique identifier. In some embodiments, the first identifier is used for security purposes rather than communication purposes (e.g., to recognize another device (e.g., a second device) that is a member of the same organization and / or to recognize another device (e.g., a second device) connected to a specific contact stored on the first device).
[0147] In some embodiments, the authentication response includes a second identifier (e.g., an authentication tag and / or a cryptographic checksum) corresponding to the second device (and / or usable to identify the second device and / or the second device). In some embodiments, the second identifier is used to establish another communication channel. In some embodiments, the second identifier is used to identify the second device for connection purposes (e.g., to identify the second device within a list of one or more devices within Bluetooth range and / or to identify the second device within a list of one or more devices connected on the same wireless network).
[0148] In some embodiments, the criteria to be met when the second device corresponds to a known device include determining that the second identifier matches a third identifier (for example, stored by the first device). In some embodiments, the criteria to be met when the second device corresponds to an unknown device include determining that the second identifier does not match an identifier stored by the first device. In some embodiments, the third identifier is stored by the first device in a list of one or more identifiers. In some embodiments, the third identifier is a previously stored identifier indicating that the first and second devices have previously communicated and exchanged identifiers. In some embodiments, the first device uses one or more values stored on the first device as the third identifier. In some embodiments, the first device generates the third identifier while connected to the second device via a first communication channel and / or after receiving an authentication response. In some embodiments, a match between a second identifier and a third identifier indicates that the second device has previously shared an identifier with the first device (e.g., by initiating and / or completing a connection as illustrated, and / or by sharing an identifier with the first device and / or the second device through other sharing methods (e.g., by sending contact information, downloading a contact card, and / or downloading a list of identifiers as part of an organizational directory)). In some embodiments, a second identifier that does not match an identifier stored by the first device indicates that the first device has failed to identify the second device (e.g., the second identifier cannot be matched with an identifier stored in a list of one or more identifiers on the first device). In some embodiments, in conjunction with the first device's failure to match the second identifier with an identifier stored by the first device (e.g., accordingly and / or thereafter), the first device stores the second identifier.
[0149] In some embodiments, the authentication response includes a set of one or more values (and / or corresponding to a second device). In some embodiments, a third identifier is generated by the first device based on (and / or using) a set of one or more values. In some embodiments, the set of one or more values corresponds to a second device (e.g., a unique device identifier, a device name, connected user account information (e.g., a contact name associated with the device, the real name of the current user, and / or a unique account identifier), a public key and / or a private key, and / or a timestamp). In some embodiments, the first device generates a third identifier based on the device type, communication, and / or transaction (e.g., the currently open application, the location of the first device, and / or external conditions).
[0150] In some embodiments, the authentication response includes a unique identifier for establishing a fifth communication channel (e.g., Wi-Fi and / or Bluetooth). In some embodiments, the unique identifier corresponds to a second device. In some embodiments, the unique identifier is used to identify the second device for connection purposes (e.g., to identify the second device within a list of one or more devices within Bluetooth range, and / or to identify the second device within a list of one or more devices connected on the same wireless network).
[0151] In some embodiments, the first communication channel is an NFC channel established via a Near Field Communication (NFC) component (e.g., a data channel, a data pipe, a Near Field Communication (NFC) channel, and / or an NFC data pipe). In some embodiments, the NFC channel functions as described in Method 500 and / or Method 600.
[0152] In some embodiments, while the NFC component is operating in a lower power mode (e.g., Low Power Card Detection (LPCD) mode) and before transmitting an authentication request over the first communication channel, the first device detects a receiver (e.g., a second device, and / or a receiver corresponding to the second device and / or the second device) via the NFC component. In some embodiments, upon detection of a receiver, the first device changes the NFC component to a higher power mode before transmitting an authentication request to the second device. In some embodiments, the NFC component operating in the higher power mode includes an NFC component that outputs at a higher polling rate, intensity, and / or range. In some embodiments, upon detection of no longer detecting a receiver, the NFC component and / or the first device cause the NFC component to return to a lower power mode.
[0153] In some embodiments, detecting a receiver includes receiving a communication containing one or more random numbers and comparing the one or more random numbers received in the communication with one or more random numbers generated by the first device. In some embodiments, comparing the one or more random numbers makes it possible to determine whether the first device and / or the second device should initiate NFC-based communication (for example, as described above with respect to method 500).
[0154] It should be noted that the details of the process described above in relation to Method 800 (for example, Figure 8) are also applicable to methods similar to those described herein. For example, Method 800 optionally includes one or more characteristics of the various methods described herein with reference to Method 500. For example, the first communication channel of Method 800 may be the first communication channel of a first type of Method 500. For brevity, these details are not repeated here.
[0155] The above description is based on the purpose of explanation and is written with reference to specific examples. However, the above illustrative description is not intended to be exhaustive or to limit this disclosure to the exact form disclosed. Many modifications and variations are possible in light of the above teachings. These examples have been selected and written to best illustrate the principles of the art and their practical applications. Thereafter, those skilled in the art can best utilize the art and various examples with various modifications suitable for their specific intended use.
[0156] While the present disclosure and examples have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will be apparent to those skilled in the art. Such changes and modifications should be understood to fall within the scope of the present disclosure and examples as defined by the claims.
[0157] As described above, one aspect of the technology involves collecting and using data available from various sources to improve how a device interacts with a user. This disclosure intends that in some cases, this collected data may include personal information data that can be used to uniquely identify or contact or locate a particular individual. Such personal information data may include demographic data, location-based data, telephone numbers, email addresses, home addresses, or any other identifying information.
[0158] This disclosure acknowledges that such use of personal data in this technology may be in the user's best interest. For example, personal data may be used to authenticate another device before transmitting data. Thus, such use of personal data enables improved security, privacy, and / or control over the user's personal information. Furthermore, other uses of personal data that may benefit the user are also intended by this disclosure.
[0159] This disclosure further assumes that entities responsible for collecting, analyzing, disclosing, transferring, storing, or otherwise using such personal data will comply with appropriately defined privacy policies and / or privacy practices. Specifically, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements for keeping personal data confidential and secure. For example, personal information from users should be collected for the entity's lawful and legitimate use and should not be shared or sold for any other purpose. Furthermore, such collection should only be carried out after informing and obtaining the user's consent. In addition, such entities will take all necessary steps to protect and secure access to such personal data and to ensure that others who have access to that personal data comply with those privacy policies and procedures. Furthermore, such entities may undergo third-party evaluations to demonstrate their compliance with widely accepted privacy policies and practices.
[0160] Notwithstanding the foregoing, the Disclosure also intends embodiments that allow a user to selectively prevent the use of or access to personal data. That is, the Disclosure intends that hardware and / or software elements may be provided to prevent or prevent access to such personal data. For example, in the case of imaging, the Technology may be configured to allow a user to choose to “opt in” or “opt out” of participating in the collection of personal data while registering for the Service.
[0161] Therefore, while this disclosure broadly covers the use of personal data to implement one or more different disclosed embodiments, it is also intended that these embodiments can be implemented without requiring access to such personal data. In other words, the various embodiments of the Technology are not rendered inoperable by the absence of all or part of such personal data. For example, content may be displayed to a user by inferring the location based on minimal personal information, such as non-personal data or content requested by a device associated with the user or other non-personal information.
Claims
1. It is a method, In the first device, Receiving a polling message from a second device different from the first device, As a result of receiving the aforementioned polling message, In accordance with the determination, based on the polling message, that the first device is selected to initiate a first type of communication channel, Initiating a first communication channel of the first type described above, Transmitting first communication information for a second type of communication channel via the first type of first communication channel, In accordance with the determination, based on the polling message, that the first device has not been selected to initiate the first type of communication channel, Refraining from initiating the first communication channel of the first type, Receiving second communication information for the second type of communication channel via the second communication channel of the first type, Methods that include...
2. After receiving the polling message, the process further includes communicating with the second device via the second type of first communication channel, the second type of first communication channel being established based on the first communication information or the second communication information. The method according to claim 1.
3. After a second communication channel of the second type is established between the first device and the second device, the input corresponding to a request to transmit the first content via the second communication channel of the second type is detected via one or more input devices of the first device, In response to detecting the input corresponding to the request to transmit the content via the second type of second communication channel, the first content is transmitted to the second device via the second type of second communication channel. The method according to claim 1 or 2, further comprising:
4. After the second communication channel of the second type is established between the first device and the second device, and before transmitting the first content to the second device via the second communication channel of the second type, the second content is received from the second device via the second communication channel of the second type. The method according to claim 3, further comprising:
5. After a third communication channel of the second type is established between the first device and the second device, a key for a third type communication channel different from the first type is transmitted over the third communication channel of the second type. The method according to any one of claims 1 to 4, further comprising:
6. The method according to any one of claims 1 to 5, wherein the polling message is received via a short-range wireless communication component of the first device.
7. The method according to any one of claims 1 to 6, wherein the first type of communication channel includes an NFC channel.
8. The method according to any one of claims 1 to 7, wherein the second type of communication channel includes a wireless communication channel.
9. The method according to any one of claims 1 to 8, wherein the first individual communication information includes indication of the second type of communication channel.
10. The process further includes receiving a second polling message from the second device after receiving the polling message, thereby establishing a fifth type of communication channel between the first device and the second device as a result of the polling message, and establishing a sixth type of communication channel between the first device and the second device as a result of receiving the second polling message, wherein the sixth type of communication channel is different from the fifth type of communication channel. The method according to any one of claims 1 to 9.
11. The method according to any one of claims 1 to 10, wherein the second individual communication information includes a first public key.
12. The second communication information includes a second public key corresponding to the second device, and the method is The method according to any one of claims 1 to 11, further comprising using the second public key to verify a communication received from the second device via the second type of communication channel.
13. The method according to any one of claims 1 to 12, wherein individual communication information includes a unique identifier for identifying an instance of the second type of communication channel.
14. The determination based on the polling message is: The first random number included in the polling message is compared with the second random number generated by the first device. By comparing the first random number with the second random number, Determining that the first device is selected to initiate the first type of communication channel based on the determination that the first random number satisfies one or more criteria relating to the second random number, The method according to any one of claims 1 to 13, comprising determining that the first device is not selected to initiate the first type of communication channel, based on the determination that the second random number satisfies the set of one or more criteria relating to the first random number.
15. A non-temporary computer-readable medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions for performing the method according to any one of claims 1 to 14.
16. The first device, One or more processors, A first device comprising: a memory for storing one or more programs configured to be executed by the one or more processors, wherein the one or more programs include instructions for performing the method according to any one of claims 1 to 14.
17. The first device, A first device comprising means for performing the method described in any one of claims 1 to 14.
18. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs comprises instructions for performing the method according to any one of claims 1 to 14.
19. A non-temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs are A polling message is received from a second device different from the first device. As a result of receiving the aforementioned polling message, In accordance with the determination, based on the polling message, that the first device is selected to initiate a first type of communication channel, A first communication channel of the first type is initiated, Transmit first communication information for a second type of communication channel via the first type of first communication channel. In accordance with the determination, based on the polling message, that the first device has not been selected to initiate the first type of communication channel, Refraining from initiating the first communication channel of the first type, A non-temporary computer-readable storage medium including instructions for receiving second communication information for the second type of communication channel via the second communication channel of the first type.
20. The first device, One or more processors, The system comprises a memory that stores one or more programs configured to be executed by one or more processors, and the one or more programs are A polling message is received from a second device different from the first device. As a result of receiving the aforementioned polling message, In accordance with the determination, based on the polling message, that the first device is selected to initiate a first type of communication channel, A first communication channel of the first type is initiated, Transmit first communication information for a second type of communication channel via the first type of first communication channel. In accordance with the determination, based on the polling message, that the first device has not been selected to initiate the first type of communication channel, Refraining from initiating the first communication channel of the first type, A first device, including an instruction, that receives second communication information for the second type of communication channel via the second communication channel of the first type.
21. The first device, Means for receiving polling messages from a second device different from the first device, As a result of receiving the aforementioned polling message, In accordance with the determination, based on the polling message, that the first device is selected to initiate a first type of communication channel, Means for initiating a first communication channel of the first type, Means for transmitting first communication information for a second type of communication channel via the first type of first communication channel, In accordance with the determination, based on the polling message, that the first device has not been selected to initiate the first type of communication channel, Means for refraining from initiating the first type of the first communication channel, means for receiving second communication information for the second type of communication channel via the second communication channel of the first type, A first device comprising the following:
22. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions, A polling message is received from a second device different from the first device. As a result of receiving the aforementioned polling message, In accordance with the determination, based on the polling message, that the first device is selected to initiate a first type of communication channel, A first communication channel of the first type is initiated, Transmit first communication information for a second type of communication channel via the first type of first communication channel. In accordance with the determination, based on the polling message, that the first device has not been selected to initiate the first type of communication channel, Refraining from initiating the first communication channel of the first type, A computer program product comprising instructions for receiving second communication information for the second type of communication channel via the second communication channel of the first type.
23. It is a method, In the first device, Receiving authentication credentials from a second device different from the first device via a first communication channel, Upon receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device, and transmits to the second device via the first communication channel a set of one or more keys, wherein the keys in the set of one or more keys correspond to a second communication channel that is not currently established. In accordance with the determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that were met when the authentication credentials were previously received by the first device, and refrains from transmitting the set of one or more keys to the second device via the first type of communication channel. Methods that include...
24. The method according to claim 23, wherein the first type of communication channel includes an NFC channel.
25. The method according to claim 23 or 24, wherein the second type of communication channel includes a wireless communication channel.
26. The method according to any one of claims 23 to 25, wherein the authentication credentials indicate the second device.
27. The method according to any one of claims 23 to 26, wherein the first key among the one or more keys is a public key.
28. The method according to any one of claims 23 to 27, wherein the second key among the one or more keys is an address corresponding to the first device.
29. The method according to any one of claims 23 to 28, wherein the authentication credentials are signed with a private key.
30. The method according to any one of claims 23 to 29, wherein the determination that a first set of one or more criteria is met includes comparing the authentication credentials with one or more authentication credentials stored in the first device.
31. Upon receiving the authentication credentials and in accordance with the determination that a second set of one or more criteria is met, verify the signature of the authentication credentials via the public key stored in the first device. The method according to any one of claims 23 to 30, further comprising:
32. After receiving the aforementioned authentication credentials, the system transmits the set of one or more keys to the second device, and then receives the third authentication credentials from the second device. Upon receiving the third authentication credentials, the second device refrains from transmitting the set of one or more keys. The method according to any one of claims 23 to 31, further comprising:
33. After receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more of the aforementioned criteria is met, the first user interface is displayed via the display generation component of the first device, In accordance with the determination that a second set of one or more of the above criteria is met, a second user interface different from the first user interface is displayed via the display generation component of the first device, The method according to any one of claims 23 to 32, further comprising:
34. A non-temporary computer-readable medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions for performing the method according to any one of claims 23 to 33.
35. The first device, One or more processors, A first device comprising: a memory for storing one or more programs configured to be executed by one or more processors, wherein the one or more programs include instructions for performing the method according to any one of claims 23 to 33.
36. The first device, A first device comprising means for performing the method described in any one of claims 23 to 33.
37. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs comprises instructions for performing the method according to any one of claims 23 to 33.
38. A non-temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs are The authentication credentials are received from a second device, which is different from the first device, via a first communication channel. Upon receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device, and transmits to the second device via the first communication channel a set of one or more keys, wherein the keys in the set of one or more keys correspond to a second communication channel that is not currently established. A non-temporary computer-readable storage medium that includes instructions to refrain from transmitting the set of keys to the second device via the first type of communication channel, in accordance with a determination that a second set of one or more criteria is met, wherein the second set of one or more criteria includes criteria that were met when the authentication credentials were previously received by the first device.
39. The first device, One or more processors, The system comprises a memory that stores one or more programs configured to be executed by one or more processors, and the one or more programs are The authentication credentials are received from a second device, which is different from the first device, via a first communication channel. Upon receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device, and transmits to the second device via the first communication channel a set of one or more keys, wherein the keys in the set of one or more keys correspond to a second communication channel that is not currently established. A first device, in accordance with a determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that were met when the authentication credentials were previously received by the first device, and includes an instruction to refrain from transmitting the set of one or more keys to the second device via the first type of communication channel.
40. The first device, Means for receiving authentication credentials from a second device different from the first device via a first communication channel, Upon receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device, and means for transmitting a set of one or more keys, of which a key corresponds to a second communication channel that is not currently established, to the second device via the first communication channel. In accordance with the determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that were met when the authentication credentials were previously received by the first device, and means for refraining from transmitting the set of one or more keys to the second device via the first type of communication channel, A first device comprising the following:
41. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions, The authentication credentials are received from a second device, which is different from the first device, via a first communication channel. Upon receiving the aforementioned authentication credentials, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the authentication credentials have not been previously received by the first device, and transmits to the second device via the first communication channel a set of one or more keys, wherein the keys in the set of one or more keys correspond to a second communication channel that is not currently established. A computer program product that includes instructions to refrain from transmitting the set of keys to the second device via the first type of communication channel, in accordance with a determination that a second set of one or more criteria is met, wherein the second set of one or more criteria includes criteria that were met when the authentication credentials were previously received by the first device.
42. It is a method, In the first device, Connecting to a second device different from the first device via a first communication channel, While connected to the second device via the first communication channel, and after receiving an authentication response from the second device, In accordance with the determination that a first set of one or more criteria is satisfied, the first set of one or more criteria includes criteria that are satisfied when the second device corresponds to a known device, and the second device is instructed to transmit subsequent communications. In accordance with the determination that a second set of one or more criteria is met, the second set of one or more criteria includes criteria that are met when the second device corresponds to an unknown device, causing the second device to delay transmitting the subsequent communication, Methods that include...
43. After delaying the transmission of the subsequent communication to the second device, the subsequent communication is transmitted via the first communication channel in accordance with the determination that the second device remains connected to the first device. The method according to claim 42, further comprising:
44. After transmitting the subsequent communication via the first communication channel, a second communication channel different from the first communication channel is established based on the content included in the authentication response. The method according to claim 43, further comprising:
45. The method according to any one of claims 42 to 44, wherein the subsequent communication is a verification request, and the verification request includes an indication of whether the second device is a known device.
46. The first device communicates with the display generation component, and the method is After transmitting the subsequent communication via the first communication channel, a verification response is received from the second device. Upon receiving the aforementioned verification response, In accordance with the determination that one or more third sets of criteria are met, the third set of one or more criteria includes criteria that are met when the verification response includes an indication that the second device has successfully identified the first device, and displays the first user interface via the display generation component, The method according to claim 45, wherein, in accordance with the determination that a fourth set of one or more criteria is satisfied, the fourth set of one or more criteria includes criteria that are satisfied when the verification response includes an indication that the second device failed to successfully identify the first device, and further includes displaying a second user interface different from the first user interface via the display generating component, wherein the fourth set of one or more criteria is different from the third set of one or more criteria.
47. The method according to claim 46, wherein the verification response includes an indication of whether the first device is a known device.
48. Upon receiving the aforementioned verification response, In accordance with the determination that one or more fifth sets of criteria are met, the fifth set of one or more criteria includes criteria that are met when either the first device or the second device is a known device and either the first device or the second device is an unknown device, and the display generation component displays a third user interface. In accordance with the determination that one or more sixth sets of criteria are met, the sixth set of criteria includes criteria that are met when both the first device and the second device are unknown devices, and unlike the fifth set of criteria, the sixth set of criteria includes displaying the third user interface via the display generation component. In accordance with the determination that one or more seventh sets of criteria are met, the seventh set of one or more criteria includes criteria that are met when both the first device and the second device are known devices, and that a fourth user interface different from the third user interface is displayed via the display generation component, The method according to claim 46 or 47, further comprising:
49. The method according to any one of claims 42 to 48, wherein the subsequent communication is a request to connect via a third communication channel different from the first communication channel.
50. The authentication response is received via the first communication channel, and the method is The method according to any one of claims 42 to 49, further comprising sending an authentication request to the second device via the first communication channel while connected to the second device via the first communication channel and before receiving the authentication response.
51. The method according to claim 50, wherein the authentication request includes a unique identifier for establishing a fourth communication channel.
52. The method according to claim 50 or 51, wherein the authentication request includes a first identifier corresponding to the first device.
53. The method according to any one of claims 42 to 52, wherein the authentication response includes a second identifier corresponding to the second device.
54. The method according to claim 53, wherein the criterion to be satisfied when the second device corresponds to a known device includes a determination that the second identifier matches a third identifier, and the criterion to be satisfied when the second device corresponds to an unknown device includes a determination that the second identifier does not match an identifier stored by the first device.
55. The method according to claim 54, wherein the authentication response comprises a set of one or more values, and the third identifier is generated by the first device based on the set of one or more values.
56. The method according to claim 53 or 54, wherein the authentication response includes a unique identifier for establishing a fifth communication channel.
57. The method according to any one of claims 42 to 56, wherein the first communication channel is an NFC channel established via a short-range wireless communication component.
58. While the NFC component is operating in a lower power mode and before transmitting the authentication request via the first communication channel, the receiver is detected via the NFC component. Upon detecting the receiver, the NFC component is changed to a higher power mode before transmitting the authentication request to the second device. The method according to claim 57, further comprising:
59. Detecting the aforementioned receiver means Receiving a communication containing one or more random numbers, The method according to claim 58, comprising comparing one or more random numbers received in the communication with one or more random numbers generated by the first device.
60. A non-temporary computer-readable medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions for performing the method according to any one of claims 42 to 59.
61. The first device, One or more processors, A first device comprising: a memory for storing one or more programs configured to be executed by the one or more processors, wherein the one or more programs include instructions for performing the method according to any one of claims 42 to 59.
62. The first device, A first device comprising means for performing the method described in any one of claims 42 to 59.
63. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs comprises instructions for performing the method according to any one of claims 42 to 59.
64. A non-temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs are Connect to a second device different from the first device via a first communication channel. While connected to the second device via the first communication channel, and after receiving an authentication response from the second device, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the second device corresponds to a known device, and the second device transmits a subsequent communication. A non-temporary computer-readable storage medium, which includes a second set of one or more criteria, wherein the second set of one or more criteria includes criteria that are met when the second device corresponds to an unknown device, and includes instructions that cause the second device to delay transmitting the subsequent communication.
65. The first device, One or more processors, The system comprises a memory that stores one or more programs configured to be executed by one or more processors, and the one or more programs are Connect to a second device different from the first device via a first communication channel. While connected to the second device via the first communication channel, and after receiving an authentication response from the second device, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the second device corresponds to a known device, and the second device transmits a subsequent communication. A first device, in accordance with a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes criteria that are satisfied when the second device corresponds to an unknown device, and includes an instruction to the second device that delays transmitting the subsequent communication.
66. The first device, Means for connecting to a second device different from the first device via a first communication channel, While connected to the second device via the first communication channel, and after receiving an authentication response from the second device, In accordance with the determination that a first set of one or more criteria is satisfied, the first set of one or more criteria includes criteria that are satisfied when the second device corresponds to a known device, and the second device has means for transmitting subsequent communications. A first device comprising, in accordance with a determination that a second set of one or more criteria is satisfied, the second set of one or more criteria includes criteria that are satisfied when the second device corresponds to an unknown device, and means for causing the second device to delay transmitting the subsequent communication.
67. A computer program product comprising one or more programs configured to be executed by one or more processors of a first device, wherein the one or more programs include instructions, Connect to a second device different from the first device via a first communication channel. While connected to the second device via the first communication channel, and after receiving an authentication response from the second device, In accordance with the determination that a first set of one or more criteria is met, the first set of one or more criteria includes criteria that are met when the second device corresponds to a known device, and the second device transmits a subsequent communication. A computer program product comprising instructions to delay the transmission of the subsequent communication to the second device, according to a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes criteria that are satisfied when the second device corresponds to an unknown device.