IP Library Granted Patent US 10,122,417
Granted Patent B2
US 10,122,417 · App. 15/807,548 · Granted Nov 6, 2018

Communicating via near field communications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,122,417
App. No.
15/807,548
Granted
Nov 6, 2018
Kind
B2
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 (72)

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.

2. 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.

3. 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.

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

5. 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.

6. 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.

7. 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.

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.

9. 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.

10. 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.

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

12. 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.

13. 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.

14. 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.

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.

16. 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.

17. 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.

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

19. 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.

20. 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.

Assignments (2)
CHANGE OF NAME Recorded Jan 8, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 045024/0102 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2018
From: POON, TOMMY; LOW, MUN-WEI
To: GOOGLE INC.
Reel/Frame 044540/0704 →