What is an NFC Tag?

In most cases, NFC tags are stickers – they can be visible to you, or also be placed for example on the back side of a poster.

The NFC tag contains a little chip and an antenna. The chip stores the data and takes care of communicating with the reader device – e.g., your NFC smartphone. Your smartphone also contains an extra antenna used for NFC.

If you tap a tag, your phone and the tag communicate with each other. The antenna is used to transmit data and energy between the rader and the tag. It allows your phone to read the tag; if it’s a re-writeable tag, the device can also store data to the tag.

The tag doesn’t contain a battery; it’s powered by the electromagnetic field of your phone.

Which business card format is supported?

NFC interactor writes business cards according to the vCard standard, which is universally used and supported in all mobile devices.

Windows Phone: NFC interactor can read and parse vCard 2.1 and 3.0 business cards. When writing, it defaults to version 2.1, as Windows Phone APIs would add additional encoding information to version 3.0 cards, which further increases the necessary tag size; version 2.1 already supports all necessary details. If needed, NFC interactor allows you to change the vCard version to 3.0, though.

Symbian / MeeGo: NFC interactor can read and parse vCard 2.1 and 3.0 business cards. When writing, it uses version 3.0, as Qt APIs do not add encoding information and therefore there is no size difference between the different standard versions.

Business cards: importing from address book

NFC interactor for Windows Phone automatically converts contacts from the address book to the vCard standard.

Note that there is not always a 1:1 mapping between the way Windows Phone stores contacts in the address book and the vCard standard – NFC interactor will create the best possible match, but it might not be possible to directly store all the data from the phone contact. Please check the composed record after importing the contact from the address book!

Specifically, Windows Phone vCard APIs do not include Yomi names into generated vCards; therefore, NFC interactor does not include them in the editor.

Other potential issues are only theoretical: e.g., Windows Phone contacts would support 2 street address lines, whereas vCards only support a single line – NFC interactor would automatically combine those two street address lines into one. However, the Windows Phone UI currently only allows entering a single street address line; making this a hypothetical thought.

How can I view the raw tag contents?

In NFC interactor for Windows Phone, go to the “tag reader” page and tag a tag to read its NDEF message.

Now, tap and hold the parsed message on the screen. After a moment, the context menu will appear, which allows viewing the raw message contents. Tap this option and the NDEF message will be shown as a hex string.

Windows Phone only supports reading the NDEF message; it does not allow apps to read outside of the message area (= the rest of the tag memory area).

How can I store / import / export tag contents for later use?

1. Live tile

In the tag composer, choose the appbar button to pin the composed message to a new live tile. After giving the tile a title and an action (write to tag or send to device), the message will be stored together with the live tile on your phone. Whenever you tap the live tile, NFC interactor starts, loads the message into the composer, and instantly activates publish mode.

Note that you can also pin tags you read to live tiles. Tap and hold the message contents in the “nfc info” view and choose to “edit” the contents. This will load the message into the composer, from where you can pin it to a live tile.

2. Share per email

After you read a tag, tap and hold the message in the “nfc info” view to open the context menu. Now, choose “send via email”. This will open your email client, with all the available information about the tag already present in the email text: the parsed & human-readable information, the raw NDEF contents as a hex string, as well as in a hex-editor-like view for easier reading.

3. Clipboard

After you read a tag, tap and hold the message in the “nfc info” view to open the context menu. Now, choose “copy to clipboard”. This will copy the tag summary to the clipboard, so that you can paste it into your messaging or note taking app.

4. Hex Strings

In case you have the whole NDEF message as a hex string (e.g., through the shared email from option (2)), you can import the message into the composer. Go to the “tag composer” page and add the “NDEF Importer Tool”. Now paste the whole NDEF message hex string into the text box and tap the “Import” button. NFC interactor will parse the hex contents and create the editor interface for your message contents.

5. “.ndef” / “.nfc” Files

NFC interactor associates itself with files of ending “.ndef” and “.nfc”. If you receive such a file (e.g., per email), it will open through NFC interactor and import the data into the “tag composer” view.

These files can either contain the direct NDEF binary data, or the tag contents as a hex string (with and without spaced between the individual items – e.g., “D1 01 12” or “D10112”). NFC interactor will automatically recognize the right format to use and import the message.

It is currently not possible for NFC interactor to directly export such files from the app. Windows Phone does not allow apps to write new files to user-readable storage, or to attach a file to the email sending task described in option (2). However, you can share the hex string via email as described in option (2), and then copy the hex string into a new “.nfc” file.To test such “.nfc” files, you can download two samples here:

Symbian

MeeGo Harmattan / Nokia N9

How to disable the phone’s NFC prompts?

When tapping tags that contain certain standardized / well-known contents, Windows Phone always shows the dialog for the user to choose what to do with – e.g., to visit the URL or to launch the app.

When you launch the same app through NFC for the second time, the Windows Phone will ask you: “I trust this app. Don’t show this message again.” – If you activate the checkbox and open the app, it will launch without a prompt in the future.

You can always manage the list of trusted launch apps if you go to Settings -> NFC.

Note that this behavior has been introduced in Windows Phone 8.1. The 8.0 version of the operating system always asked whether to launch the app, and there was nothing you could do to stop the prompts.

Does NFC reduce my phone’s battery life?

To enable Near Field Communication, your phone needs to power an electromagnetic field, which is required to communicate with the passive (= battery-less) NFC tags.

This does have an impact on the battery life of your device. However, as NFC only works for very short distances, the field needs to be very small. Typically, the maximum feasible distance between the tag and the phone is half a centimeter. Compare that to possibly several kilometers between your tag and the nearest cell tower.

Additionally, NFC is usually only active when you’re actively using your phone, and deactivated as soon as the screen is locked (also for security purposes).

In addition, many phones support Mifare Classic tags – but this depends on the specific NFC chipset used by the manufacturers. The reason is that Mifare Classic tags are proprietary and are therefore not supported anymore by several phones on the market, including the Samsung Galaxy S4.

Tags like present in RFID passports are not supported Symbian or MeeGo. Windows Phones with the new NFC hardware generation (starting with the Lumia 730 / 830) can read passports and bank cards, but as these do not follow the standardized NDEF protocol, they can not currently be read with NFC interactor.

How much data can I store on a tag?

The exact amount of data you can store on an NFC tag depends on the tag type and its configuration. In general, we’re talking about very small amounts of data – enough to store a link to a web page or to an app, but usually too small to store an image or a video.

The data size of a tag would usually start at around 48 bytes, the maximum is currently around 8 kB. There are also less common smaller or larger tags. Typical NFC Forum Type 2 tags are 192 bytes, Mifare tags 1 kB.

Note that not the full tag size is available to you – some of the memory size is used for headers and control data (e.g., to store the write protection status of the tag). NFC interactor for Windows Phone will show you the writable tag size when you touch a tag (the Symbian version can do so for selected tag types). For example, on an 192 bytes Type 2 tag, you might have 137 bytes available for writing.

Also, the header of the NDEF protocol will take a few bytes – depending on the record type you chose to write, and if you add optional information to the record like a record ID. For example, the header size of a single URI record (without an ID) is 5 bytes; but this specific record type can also shorten common URI beginnings like “http://” or “http://www.” into a single byte, which is already part of the header. Therefore, the complete NDEF message for the URI “http://www.nfcinteractor.com” only requires 22 bytes of writable memory on the tag.

How to delete existing contents of tags?

Most NFC apps will simply write the so-called “Empty NDEF Record” to the tag when you choose to delete the tag. This writes the smallest possible standardized contents to the tag (only 3 bytes), and essentially makes the previous tag contents invisible as it tells the reader that the tag doesn’t have any further contents after those 3 bytes. This can also be done with NFC interactor, if you choose to write the “Empty record (delete tag)” from the “tag composer”.

However, all the data that was not overwritten by the short 3 byte empty record will still remain in the writable NFC tag memory. With a low level NFC tag reading tool, you can scan the whole tag memory area and with that recover the previous tag contents.

This is comparable to deleting a file on your computer – the reference will be removed, but the actual data is still there and can be recovered – until it is overwritten with new data.

Secure Tag Erasing

NFC interactor is the first app for Windows Phone that securely erases tags by overwriting the complete writable memory area. Instead of writing the minimum-sized 3 bytes message, NFC interactor will wait until the phone has discovered the real tag size.

The app then creates the contents on the fly, filling the payload of the record with completely random data – with the exact size of the writable tag memory. With this approach, it will not be possible anymore to recover the previous tag contents.

To activate this unique feature, go to the “tag composer” and choose the “Empty record (delete tag)”. Now tick the optional checkbox to “Erase free tag space” and tap the button to write the tag.

Technical Details

Some details for NFC professionals: when erasing the tag, NFC interactor will write a record of type “Unknown” – by definition, an “Empty” record can’t contain any kind of payload and therefore can’t reach the size of the writable tag memory. “Unknown” records are usually also ignored by NFC devices, and can have an arbitrary size payload, which is random data in our case.

And of course, you’re free to overwrite the random tag contents with anything else afterwards – including the plain and simple “Empty” record.

Multiple Records on Tags – Why?

Most NFC apps only write a single record to a tag. The powerful dynamic tag composer of Nfc Interactor supports writing a message that contains multiple records.

To create such a tag, simply activate the “multi-record” mode in the app settings and add more than one record to the composer by repeatedly tapping the ‘+’ symbol in the app bar. The records are written to the tag in the order they appear on the composer screen.

What is the use of multi-record tags? This depends on the platform:

Windows 8 / Windows Phone 8: the OS only reads and acts upon the first record of the message. All the other records stored on the tag are ignored. If the first record in the message is not understood by the OS, the tag is ignored.
If a 3rd party app (like NFC interactor) is running in the foreground, it can read and parse the whole NDEF message, though. Therefore, on Windows (Phone), multi-record-tags are mostly relevant for developers.

Symbian / MeeGo: the OS starts reading the message until it finds a record it can act upon. If for example the first record is an app-specific record, the phone will read the next record. If that would be a standardized URL record, the phone would open the URL.
Multi-record tags are therefore frequently used on these platforms to launch apps – these can register to be launched for custom records; a second, standardized URL record would then redirect the phone to the store to download the app in case it’s not yet installed.

Android: the phones usually read all records on a tag and give the user the choice of which action to execute. Special records like the Android Application Record (AAR) are recommended to be present in a later position of the message. If the phone finds an AAR record in the complete message, it will launch the corresponding app in any case, no matter where the AAR is found. This allows using a standardized URL record as the first record in the message, for better cross-platform compatibility.

Which devices are compatible with the peer-to-peer mode?

NFC interactor uses the standardized SNEP protocol for sending a message with peer-to-peer mode (from one device to another). The following operating systems include support for receiving SNEP out of the box:

Windows 8

Windows Phone 8

Android 4.0+

MeeGo Harmattan PR 1.2+

Blackberry

Earlier versions of Android use a Google proprietary protocol (NDEF Push Protocol – NPP), which is not supported by other devices.

Symbian is also using a proprietary protocol. NFC interactor for Symbian has experimental support for SNEP though, which means that you can send and receive SNEP messages with NFC interactor on that platform (while the app is running and in the foreground).

NFC interactor for Symbian / MeeGo can also send NDEF messages using a custom port / URN, which can be useful to test low-level LLCP connections, especially with custom hardware.

Note: sharing a picture or video via NFC is usually only initiated via NFC – the devices exchange Bluetooth or WiFi Direct data, and then use that channel to actually transfer the data. The reason is that NFC would be too slow; sending a picture from your phone’s camera could take a few minutes with NFC.
Unfortunately, exchanging Bluetooth / WiFi settings in this scenario is currently often not compatible between different platforms – e.g., triggering a picture share via an NFC tap does not currently work between Android and Windows Phone 8.

How can I launch apps through NFC tags?

The use case of launching apps through tapping NFC tags has not been standardized by the NFC Forum. As such, every platform currently available uses a different approach:

Windows Phone 8 offers three ways of launching apps:

LaunchApp tags: you can directly launch any kind of app if you know its ID. NFC interactor integrates an automated Windows Phone store search so that you do not have to find out the ID yourself.Instructions: Add a “LaunchApp (3rd Party)” record, type the name / publisher / keyword and tap “search”. You can now directly select the app you want to launch from the tag. Note that some exclusive or country-restricted apps might not be visible.

In case you need to find the app ID yourself, the process is very easy as well: search for an app in the web-based Windows Phone store with your PC browser. The URL will contain the app ID – e.g., for NFC interactor: http://www.windowsphone.com/s?appid=4e1598fe-4885-4e2b-9c69-8d3f882c545b
In NFC interactor, specify this ID for the platform “WindowsPhone”. This will directly launch the app, or ask the user to download the app from the store if it is not already installed.

This tag type also allows passing custom parameters to the app; but you need to know what kind of parameters the app supports in order to write the right text into this field of NFC interactor. Contact the app authors to ask them if they support parameters through LaunchApp tags.

System apps / settings: most of the pre-installed apps and other important apps provided by Microsoft, as well as the settings pages, can be directly selected if you choose the “Launch WP8 System App” / “Launch WP8 Settings” option when creating an NFC tag. Simply select the app you want to launch, and NFC interactor will take care of the rest. Note that actually modifying system settings through NFC tags is not possible on Windows Phone, you can only open the according settings page.

Custom URI schemes: apps can register for a custom URI scheme, which then launches the app to handle this scheme. In case the user has not yet installed an app that understands this scheme, the user will be asked to search for an app in the store.
For example, NFC interactor will launch when it encounters a tag with the URL “nfcinteractor:”. Spotify launches through the “spotify:” protocol (note that NFC interactor features a separate type for writing Spotify tags, including an online album search).

Android: uses Android Application Records (AAR) to launch apps. Specify the app to launch through its package name. You can find out the package name of the app through the URL in the web-based Google Play Store.

Symbian / MeeGo: apps can register themselves to be launched through a specific custom record (external record type). E.g., NFC interactor launches when you tap a tag that contains a record with the External RTD and type name “nokia.com:nfcinteractor”.
Note that you can only launch apps that have registered for being launched; you can not launch any kind of app through that mechanism.

NFC interactor can write custom tags (choose the “Custom” type) to launch an app on Symbian, as well as LaunchApp tags (choose the “LaunchApp” type), custom URI schemes (choose the “URI” type) and Android Application Records (choose the respective type).

How can I launch tasks on the phone through NFC tags?

The NFC Forum has not standardized the use case of adjusting phone settings based on NFC tags (e.g., to turn on Wifi, to adjust the volume, etc). Therefore, there is no tag that could do tasks on all phones.

Some apps on Android offer functionality to enable this behavior; these are always based on custom, app-specific tag formats, which launch the app, which in turn adjusts the phone settings.

Settings & Windows Phone

Unfortunately, the strong security model of Windows Phone 8 also does not allow tags or any 3rd party app to modify phone settings – so there is currently no way to offer this functionality on Windows Phone 8.

NFC interactor allows writing tags that directly open a specific settings page; but the actual settings change (e.g., activating flight mode) always has to be performed by the user. You still save navigating through the menus, though.

As Windows Phone only reacts on a single (= the first) record on the NFC tag, you can only specify one action (= opening one settings page) per tag. The advantage is that this functionality is built into the operating system, and you don’t need to have NFC interactor installed for those tags to work.

How can I NDEF format a tag?

When you buy a tag, it might be completely empty (= not NDEF formatted). This means that the control structure for handling NDEF messages (e.g., to indicate the writable size) is not yet present on the tag.

Windows Phone 8.1 added support for auto-formatting NFC tags. If you write a message to an unformatted tag, the phone automatically formats the tag before writing the message. No further interaction is required, as this is happening automatically.

Windows Phone 8.0 did not support formatting tags and could only write to pre-formatted NFC tags.

Nfc Interactor for Symbian and MeeGo can NDEF format a tag if you write an empty message to the tag. After you have written an empty message, you can write any other kind of message to the tag. In the app settings, you can also activate that the app automatically writes an empty message first to format tags. This is useful if you need to write large quantities of tags.

What is the use of the record’s ID?

Several record types in NFC interactor allow adding an ‘Id’. The record ID is not used / visible when you tap the tag with your phone – therefore, you would usually not need to add the ID to a record.

Therefore, the record ID is hidden by default in the composer. If you need to specify the record ID, you can activate it in the app settings.

IDs can be read by 3rd party apps, and can therefore be helpful for developers in some cases. E.g., a developer can add the ID to a record to add some ‘hidden’ information to a URL tag, which shouldn’t be visible in the URL itself. If the user taps the tag with his phone and the app is not running, the phone would only open the URL. If the tag is tapped while the app is running, it could also retrieve the record ID and therefore for example identify the specific tag.

How can I lock / write protect NFC Tags?

Thanks to a new NFC hardware controller, the latest Windows Phone devices gained the ability to lock / write-protect NFC tags. This feature is supported starting with the Lumia 730 / 830 – but not the Lumia 930 or 1520, which still belong to the previous hardware generation.

When starting NFC interactor for Windows Phone, the app automatically checks if your device supports locking tags. If it does, a checkbox appears on the publish page where you can activate locking the tag after the message has been written. This checkbox is only visible if you are writing to a tag and if you did not choose to erase the empty memory area.

After a tag has been locked, its contents can not be changed anymore – the tag is now read-only. Note that this process cannot be undone – you can never change the tag contents again, so be careful with locking tags and test if the message you are about to write is indeed working as intended before locking the tag.

Checking for Tag Locking Support

If you are unsure whether your device supports locking tags, go to the app settings in NFC interactor. If the setting to lock tags by default is disabled with an explanation text about device incompatibility, your phone unfortunately does not support locking tags due to the lack of the new NFC hardware – operating system upgrades will not change the situation.

The app can’t write to a tag

If you tap a tag, NFC interactor for Windows Phone will show a help message if reading / writing was not successful after a certain amount of time. Unfortunately, Windows Phone does not report the reason why the operation failed. In general, the three following causes are most likely:

The tag is not writable: you can only write to tags that are re-writable and have not yet been locked. For example an NFC Forum Tag Type 2 tag can never be unlocked again to change its contents after it has been locked once.Windows Phone and Qt only support open tags; the platforms do not allow writing to tags with an activated security system (e.g., type 4 tags or Mifare tags that require a key for reading and/or writing).

Tag is not NDEF formatted: for some tag types, Windows Phone 8.1 will automatically attempt to format the tag when you first write a message. Windows Phone 8.0 did not provide this functionality.On Symbian or MeeGo, the phone can format the tag if you write an empty message to the tag first; afterwards, you can write any kind of message. In the app settings, you can also configure NFC interactor to always automatically write an empty message before writing the intended message, which can be helpful if you need to format & write a large quantity of empty tags.

Please make sure to get NDEF formatted tags when you order them – you can order compatible tags right through NFC interactor for Windows Phone.
On MeeGo / Symbian, try to write an empty message to format the tag, or use similar tools on Android.