Category:Near Field Communication (NFC)
- NFC is being introduced to Symbian devices, initially to the Nokia C7-Astound and (through the Symbian Anna firmware update) the Nokia C7-00 device.
- Initial operating mode support is for read/write and peer-to-peer (partial).
- Development is undertaken using Qt Mobility, Java™ ME, and Symbian C++ APIs (with the ability to use Symbian C++ APIs in Qt applications).
- Development is supported in:
- Qt SDK 1.1, with the Qt Mobility 1.2 beta for Symbian add on for the Qt SDK 1.1 installed
- NetBeans, Eclipse, and Carbide.c++, with the Symbian^3 SDK 1.0 (available shortly) and NFC plug-in for the Nokia Symbian^3 SDK 1.0 (available shortly) installed.
- For testing, the Symbian^3 SDK 1.0 and Series 40 NFC SDKs provide tag and reader emulation (with test features planned for a later version of Qt SDK). An NFC enabled device is also essential.
- Special attention is required to UI design, to allow for NFC not being available on all devices and some devices requiring a firmware upgrade to activate their NFC features.
Near Field Communication, more commonly referred to by its acronym of NFC, is a very short-range radio technology. It enables communication between an NFC reader and NFC tag when they are typically closer than 4cm from one another.
A complete introduction, more details about the technology and its support by Nokia are available in the Introduction to NFC document available from the Forum Nokia website.
Nokia device and platform support for NFC
Nokia originally introduced NFC in the Series 40 Nokia 6212 classic and Nokia 6131 NFC devices. Nokia is introducing the technology to the Nokia C7-00 device (through the forthcoming Symbian Anna firmware update) and Nokia C7-Astound available from T-Mobile USA. Check the Devices section of the Forum Nokia website for a full list of devices with NFC technology and their availability.
NFC modes and use cases
NFC implemented on Symbian devices provides support for the following NFC modes:
- read/write — a Symbian device can read from or write to a NFC tag (fully supported).
- peer-to-peer (P2P) — a Symbian device and another NFC device can exchange data (partially supported through Qt Mobility and Symbian C++ APIs only).
Card emulation mode is not supported.
This mode support can be used to implement the following use cases:
- Service Initiation — a Symbian device can read data, such as a URL, from an NFC tag and initiate a service, such as browsing a website.
- Connecting devices — a Symbian device can read Bluetooth configuration details from another device or tag.
- Sharing — a Symbian device can share data with another NFC enabled device using an NFC data channel (for small amounts of data) or by creating and using a Bluetooth connection (for larger data items).
In this video, Stephane Doutriaux and Scott Tavelli of Poken discuss some of the use cases NFC on Symbian devices is enabling in the Poken application.
While this video provides a broader insight into the possibilities offered by NFC technology on Nokia devices. Recorded at WIMA 2011 in Monaco it features Mark Selby, VP sales and industry collaboration, and Evren Kozcu, NFC implementation manager, from Nokia along with developers from Proxama, Digia, NOW! Innovations, iMPak Health, and Poken.
Developing NFC applications
You can create applications that leverage NFC technology using APIs provided in Qt, Java™ ME, and Symbian C++. Of these options, using Qt is the recommended approach as it’s the core development framework for Symbian and is available for MeeGo powered devices as well.
Qt based development
You create NFC enabled applications using the Qt Mobility 1.2 Connectivity API. The advantage of this approach is that you are working with the productive Qt cross-platform API, so you can code once for an app that will run on Symbian and MeeGo devices.
- Qt Mobility 1.2 beta for Symbian add on for the Qt SDK 1.1: Installation instructions are provided in the package.
- Connectivity API documentation.
You can find example apps and code in the Qt Mobility 1.2 beta for Symbian add on package. The package enables development with the Symbian C++ NFC API also.
Java ME based development
You can make use of the NFC features in Symbian devices using the Contactless Communication API (JSR-257) and Nokia Extensions to JSR-257. This may be the most convenient approach if you have developed NFC applications for Series 40 devices (such as the Nokia 6131 NFC and Nokia 6212 classic). To get started you will need an NFC enabled device plus:
- NetBeans or Eclipse IDE
- Symbian^3 SDK 1.0 (available shortly)
- NFC plug-in for the Nokia Symbian^3 SDK 1.0 (available shortly)
You can use the NFC device SDKs for the Series 40 devices also, if you wish. In particular, these SDKs currently offer better features for testing.
Symbian C++ based development
If you’re familiar with Symbian C++ you can use the Symbian C++ APIs in a pure Symbian C++ app. To do this, you need an NFC enabled device plus:
- Symbian^3 SDK 1.0 (available shortly)
- NFC plug-in for the Nokia Symbian^3 SDK (available shortly)
- API documentation (available shortly)
UI design considerations
As NFC is supported in a small (but set to grow) number of devices, it’s important to take this into account when creating your application. There are two approaches you can take:
- If your application offers functionality that relies entirely on NFC, you can restrict it to install on devices known to offer NFC hardware only.
- Where your application offers functionality that is useful without the use of NFC technology, then the UI should hide or disable the NFC features when running on a device without NFC hardware.
However, in both cases when running on the Nokia C7-00 your application should test to see if NFC functionality is available. If it’s not available the application should request the user to perform a firmware update (either using the SW Update application on their device or by running software update in Ovi Suite).
To determine if a device offers NFC:
- In a Qt or Symbian C++ application use the IsFeatureSupported method of the TFeatureSet class and test for KFeatureIdNfc (ID = 117).
- In a Java application query the javax.microedition.contactless.version system property value for the supported JSR-257 version. If the API is supported on the device, the property returns 1.0.
If you choose to develop with the device SDKs for the Series 40 devices or make use of the Symbian^3 SDK with the NFC plug-in, these tools provide some emulation of NFC tags and devices suitable for application testing.
Features to emulate NFC tags and devices are planned for Qt SDK.
An NFC device is recommended also to complete testing prior to distributing your application.
Obtaining an NFC enabled device
As part of the Discounted Devices Program Nokia plans to provide an NFC Device Kit that will include an NFC mobile device and sample NFC tags. Advice of the kit’s availability will be made through the Launchpad and PRO newsletters; however you may wish to periodically check the Discounted Devices Program page for the kit’s availability.
If you’re not a member of Launchpad or PRO, you can find details on how to join Launchpad here.
There are currently 28 articles tagged NFC in this Wiki.
Recently Edited NFC Articles
Most Viewed NFC Articles
Other NFC resources
- Discuss NFC in the Forum Nokia NFC Discussion Board
- Find more information on the NFC Forum website
- Find the NFC Forum Specifications, including NDEF and RTD specifications
- Get a good overview of NFC technology and some code examples from the NFC J2ME Tutorial. This is a sound starting point for beginners.
- Discover NFC Java Code Examples
This category has the following 2 subcategories, out of 2 total.
Pages in category "Near Field Communication (NFC)"
The following 29 pages are in this category, out of 29 total.
Media in category "Near Field Communication (NFC)"
The following 31 files are in this category, out of 31 total.
- NFC backgrounder.pdf
- Nokia 6131 NFC Data Sh...
- Nokia China NFC Casest...
- Nokia mobilkom NFC Cas...
- Nokia NFC white paper.pdf
- WIMA 2007 04 Mikko Saa...
- Wp ss 20121205 0001.png
- Wp ss 20121205 0002.png
- Wp ss 20121205 0005.png
- Wp ss 20121205 0006.png