IP Library Granted Patent US 9,843,361
Granted Patent B2
US 9,843,361 · App. 14/875,684 · Granted Dec 12, 2017

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 9,843,361
App. No.
14/875,684
Granted
Dec 12, 2017
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 (71)

1. A computer-implemented method to communicate via near field communication (NFC) between an NFC reader and an NFC-enabled application available on an NFC-enabled user computing device, comprising:

receiving, from an NFC reader by an NFC-enabled user computing device via an NFC channel, a first selection of an NFC application identifier (AID) proxy of the user computing device, the first selection addressed to an AID identifying the proxy;

receiving, from the NFC reader by the selected proxy via the channel, 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 different than an AID of the application;

determining, by the proxy, whether the received domain name corresponds to an AID of an application available on the user computing device by reference to a data store relating each domain name of each application available on the user computing device to a corresponding AID;

when the received domain name is 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 via the channel, a response to the received query, the response indicating the AID of the application corresponding to the received domain name;

receiving, from the NFC reader by the user computing device via the 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 an NFC reader and an NFC-enabled application available on a NFC-enabled user computing device, the computer-executable program instructions comprising:

computer-executable program instructions to receive, from an NFC reader by an NFC-enabled user computing device via an NFC channel, a first selection command for an NFC application identifier (AID) proxy of the user computing device, the first selection addressed to an AID identifying the proxy;

computer-executable program instructions to receive, from the reader by the selected proxy via the channel, 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 different than an AID of the application;

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 by reference to a data store relating each domain name of each application available on the user computing device to a corresponding AID;

computer-executable program instructions, when the received domain name is 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 via the channel, a response to the received query, the 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 the 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 an NFC reader and an NFC-enabled application available on a NFC-enabled user computing device, 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 via an NFC channel, a first selection of an NFC application identifier (AID) proxy of the user computing device, the first selection addressed to an AID identifying the proxy;

receive, from the reader by the selected proxy via the channel, 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 different than an AID of the application 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 by reference to a data store relating each domain name of each application available on the user computing device to a corresponding AID;

computer-executable program instructions, when the received domain name is 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 via the channel, a response to the received query, the 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 the channel, a selection of 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 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 (1)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →