Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.
NFC Handover working principle
By NFC enabled devices, we can communicate with each other very quickly. But the technology has also draw backs. Couple of those drawbacks are: it must be located within very short distance (around 0 ~4 cm) and the data transfer rate is very slow ( < 424 kbits/second). When we need to transfer big files between two NFC enabled devices then we need to keep attached two devices for long time and this does not sound very clever way specially if we have better carriers (Bluetooth and Wi-Fi) for data transfer in the same devices. Though Bluetooth and Wi-Fi are faster than NFC technology but they have also some other drawback as well. For example if we want to transfer data over Bluetooth then we need to do some preliminary work such as searching the devices nearby, pairing it by inserting PIN code (for security reason) and finally we are able to transfer the file. These preliminary work can be eliminated by using the NFC touch technology. Basic idea here is we touch the device and it is paired with Bluetooth. This is more cleaver way than our conventional way of using Bluetooth. To use all these technology in optimum way, NFC forum has introduce the concept of handover. As the terms handover is self-explanatory, we start the communication with NFC but later the actual transmission is done by some other technology.
NFC forum has introduced handover specification for this purposes. All device manufacturers or software vendors follow the specification to be compliant with NFC enabled device. This make sure that all the devices are interoperable. For example if we touch a Nokia C7 with Google NFC enabled phone we should be able to transfer data by using alternating carrier provided they are NFC handover complaint.
There are two different handover mechanisms specified by NFC forum. First one is negotiated handover. In this case the initiator device (Handover Requester) sends a NDEF message to other device (Handover selector). Handover selector device sends response to the requester. There could be several situation arises in this case. Handover selector might support multiple carriers (Bluetooth and Wi-Fi) and when the message arrives to the NFC requester device then it can pick the best possible carrier that match for both devices. These type of negotiation happens before the setup with secondary carrier. And the negotiation is communicated over an LLCP data link connection between a handover requester and a handover selector application.
Second hand over mechanism is called static handover when the Handover Selector device does not constitute an NFC Forum Device but has a (cheaper) NFC Forum Tag attached. NFC Forum Tags provide storage space that can be read or written but might not have an internal connection with the Host processor. It is not possible for an NFC Forum Tag to receive and interpret a Handover Request Message and to dynamically construct a corresponding Handover Select Message. In this case, the Tag contains a Handover Select Record plus additional information records that are referenced as described in NFC specification. Because this is static information, it cannot be adapted to any possible requirements that a Handover Requester might provide with Negotiated Handover.
How handover work
When application need to use alternative carrier by using NFC Hanover, underlying platform code construct handover message that is transferred to handover selector device. This handover message are constructed by using NDEF message. Handover selector device construct reply message where it describes the properties of it alternative carrier. This alternative carrier information is used by handover requester device to connect to handover selector device.
The handover message is composed of either a Handover Request Record (NFC Forum Global Type “Hr”) or a Handover Select Record (NFC Forum Global Type “Hs”), followed by an arbitrary number of other NDEF records. Within a Handover Request or Handover Select Record, a sequence of Alternative Carrier Records (NFC Forum Local Type “ac”) defines the alternative carriers that are requested or selected, respectively.
- Negotiated handover example can be found from the following link. Nokia implementation supports only Bluetooth, Wi-Fi is not supported: File sharing over Bluetooth initiated by NFC
- Static handover example can be found from the following link. In this example, handover requestor device get static information about alternating carrier (Bluetooth) and connect to it: NFC enabling a Bluetooth Headset using Qt