# US 10,122,417 B2 · Communicating via near field communications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,122,417 B2
- Document ID: US10122417B2
- Status: Granted
- Kind: B2
- Application number: 15/807,548
- Filed: 2017-11-08
- Published: 2018-03-08
- Granted: 2018-11-06
- Earliest claimed: 2014-10-06
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Tommy Poon; Mun-Wei Low
- Web page: https://patentgrep.com/patent/US10122417B2

## CPC

- H04B 5/77: for interrogation
- H04B 5/20: characterised by the transmission technique; characterised by the transmission medium
- H04B 5/70: specially adapted for specific purposes
- H04B: TRANSMISSION

## Abstract

Communicating via near field communication (NFC) between a reader and an application on an NFC-enabled device. The device receives, from a reader, a selection of an application identifier (AID) proxy of the device. The proxy receives, from the reader, a query (including domain name) directed to the availability of an application on the device. The proxy determines whether the domain name corresponds to an AID of an application on the device by reference to a data store relating each domain name of each application to a corresponding AID. When the domain determined to correspond to an AID of an application on the device, the device transmits a response to the reader indicating the AID corresponding to the domain name. The device receives, from the reader, selection of the transmitted AID. The application corresponding to selected AID communicates with the reader in an NFC application protocol data unit communication session.

## Claims

### Claim 1

A computer-implemented method to communicate via near field communication (NFC) between NFC readers and NFC-enabled applications available on NFC-enabled user computing devices, comprising:
receiving, from an NFC reader by an NFC-enabled user computing device, a first selection of an NFC application identifier (AID) proxy of the user computing device;
receiving, from the NFC reader by the selected proxy, a query directed to an availability of an NFC-enabled application on the user computing device, the query comprising an argument identifying the application by a domain name;
determining, by the proxy, whether the received domain name corresponds to an AID of an application available on the user computing device;
for a received domain name determined to correspond to an AID of an application available on the user computing device, transmitting, to the NFC reader by the user computing device a response indicating the AID of the application corresponding to the received domain name;
receiving, from the NFC reader by the user computing device via an NFC channel, a selection of the transmitted AID; and
in response to the received selection of the transmitted AID, communicating, by the application corresponding to the selected AID via the channel, via an NFC application protocol data unit (APDU) communication session with the NFC reader.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, by the user computing device, a revision to at least one AID in the data store relating each domain name of each application available on the user computing device to a corresponding AID; and
revising, by the user computing device, the data store with the received at least one AID.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
prior to receiving the first selection of the proxy:
receiving, from the reader by the user computing device via the channel, a prior selection of the proxy;
receiving, from the reader by the prior selected proxy via the channel, at least one query directed to the identity of each application within a category of applications on the user computing device, the query comprising an argument identifying the queried category of applications;
determining, by the proxy, the domain name of each application on the user computing device in the queried category; and
transmitting, by the user computing device to the reader via the channel, a set of one or more determined domain names;
wherein the at least one query directed to the availability of an NFC-enabled application on the user computing device comprises an argument identifying a domain name from among the transmitted set of one or more domain names.

### Claim 4 (depends on 3)

The method of claim 3, wherein the category of applications is one of payments, transit, access, and identification.

### Claim 5 (depends on 3)

The method of claim 3, wherein the method further comprises, after transmitting each determined domain name by the user computing device to the reader, and prior to receiving the selection of an available domain name by the user computing device from the reader, determining, by the reader, according to a policy of the reader, one domain name from among the set of one or more determined domain names to be communicated.

### Claim 6 (depends on 1)

The method of claim 1:
wherein the AID comprises embedded routing information; and
wherein communicating comprises routing, by the user computing device, each APDU received by the user computing device in accordance with the embedded routing information contained in the AID of each APDU.

### Claim 7 (depends on 6)

The method of claim 6, wherein the embedded AID routing information comprises one of: a bit pattern in the last byte of the AID, and a 16-byte AID comprising an last bit quartet indicating AID routing information and a next-to-last bit quartet indicating the length of a base AID.

### Claim 8

A computer program product, comprising:
a non-transitory computer-readable storage device having computer-executable
program instructions embodied thereon that when executed by a computer cause the computer to communicate via near field communication (NFC) between NFC readers and NFC-enabled applications available on NFC-enabled user computing devices, the computer-executable program instructions comprising:
computer-executable program instructions to receive, from an NFC reader by an NFC-enabled user computing device, a first selection command for an NFC application identifier (AID) proxy of the user computing device;
computer-executable program instructions to receive, from the reader by the selected proxy, a query directed to an availability of an NFC-enabled application on the user computing device, the query comprising an argument identifying the application by a domain name;
computer-executable program instructions to determine, by the proxy, whether the received domain name corresponds to an AID of an application available on the user computing device;
computer-executable program instructions, for a received domain name determined to correspond to an AID of an application available on the user computing device, to transmit, to the NFC reader by the user computing device, a response indicating the AID of the application corresponding to the received domain name;
computer-executable program instructions to receive, from the reader by the user computing device via an NFC channel, a selection command for the transmitted AID; and
computer-executable program instructions to communicate, by the application corresponding to the selected AID via the channel, in an NFC application protocol data unit (APDU) communication session with the reader.

### Claim 9 (depends on 8)

The computer program product of claim 8, further comprising:
receiving, by the user computing device, a revision to at least one AID in the data store relating each domain name of each application available on the user computing device to a corresponding AID; and
revising, by the user computing device, the data store with the received at least one AID.

### Claim 10 (depends on 8)

The computer program product of claim 8, further comprising:
prior to receiving the first selection of the proxy:
receiving, from the reader by the user computing device via the channel, a prior selection of the proxy;
receiving, from the reader by the prior selected proxy via the channel, at least one query directed to the identity of each application within a category of applications on the user computing device, the query comprising an argument identifying the queried category of applications;
determining, by the proxy, the domain name of each application on the user computing device in the queried category; and
communicating, by the user computing device to the reader via the channel, a set of one or more determined domain names;
wherein the at least one query directed to the availability of an NFC-enabled application on the user computing device comprises an argument identifying a domain name from among the communicated set of one or more domain names.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the category of applications is one of payments, transit, access, and identification.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein the method further comprises, after communicating each determined domain name by the user computing device to the reader, and prior to receiving the selection of an available domain name by the user computing device from the reader, determining, by the reader, according to a policy of the reader, one domain name from among the set of one or more determined domain names to be communicated.

### Claim 13 (depends on 8)

The computer program product of claim 8:
wherein the AID comprises embedded routing information; and
wherein communicating comprises routing, by the user computing device, each APDU received by the user computing device in accordance with the embedded routing information contained in the AID of each APDU.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the embedded AID routing information comprises one of: a bit pattern in the last byte of the AID, and a 16-byte AID comprising an last bit quartet indicating AID routing information and a next-to-last bit quartet indicating the length of a base AID.

### Claim 15

A system to communicate via near field communication (NFC) between NFC readers and NFC-enabled applications available on NFC-enabled user computing devices, comprising:
a storage device; and
a processor communicatively coupled to the storage device, wherein the processor executes application code instructions that are stored in the storage device to cause the system to:
receive, from an NFC reader by an NFC-enabled user computing device, a first selection of an NFC application identifier (AID) proxy of the user computing device;
receive, from the reader by the selected proxy, a query directed to the availability of an NFC-enabled application on the user computing device, the query comprising an argument identifying the application by a domain name;
determine, by the proxy, whether the received domain name corresponds to an AID of an application available on the user computing device;
for a received domain name determined to correspond to an AID of an application available on the user computing device, transmit, to the NFC reader by the user computing device, a response indicating the AID of the application corresponding to the received domain name;
receive, from the reader by the user computing device via an NFC channel, a selection of the transmitted AID; and
communicate, by the application corresponding to the selected AID via the channel, in an NFC application protocol data unit (APDU) communication session with the reader in response to the received selection of the transmitted AID.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to:
receive, by the user computing device, a revision to at least one AID in the data store relating each domain name of each application available on the user computing device to a corresponding AID; and
revise, by the user computing device, the data store with the received at least one AID.

### Claim 17 (depends on 15)

The system of claim 15:
wherein the processor further executes application code instructions that are stored in the storage device to cause the system to, prior to receiving the first selection of the proxy:
receive, from the reader by the user computing device via the channel, a prior selection of the proxy;
receive, from the reader by the prior selected proxy via the channel, at least one query directed to the identity of each application within a category of applications on the user computing device, the query comprising an argument identifying the queried category of applications;
determine, by the proxy, the domain name of each application on the user computing device in the queried category; and
communicate, by the user computing device to the reader via the channel, a set of one or more determined domain names;
wherein the at least one query directed to the availability of an NFC-enabled application on the user computing device comprises an argument identifying a domain name from among the communicated set of one or more domain names.

### Claim 18 (depends on 17)

The system of claim 17, wherein the category of applications is one of payments, transit, access, and identification.

### Claim 19 (depends on 17)

The system of claim 17, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to, after communicating each determined domain name by the user computing device to the reader, and prior to receiving the selection of an available domain name by the user computing device from the reader, determine, by the reader, according to a policy of the reader, one domain name from among the set of one or more determined domain names to be communicated.

### Claim 20 (depends on 15)

The system of claim 15:
wherein the AID comprises embedded routing information; and
wherein communicating comprises routing, by the user computing device, each APDU received by the user computing device in accordance with the embedded routing information contained in the AID of each APDU.
