0

I'm working on an application for a kiosk where I want to add NFC pairing capabilities with smartphones for 'quick identification'.

The kiosk has an NFC reader attached. Here's what I want to do:

  1. As soon as an NFC enabled smartphone is touching the NFC reader, I want to get the name of the that device. Any other identifying information would do, doesn't have to be the name.

  2. I need to assume that there is no proprietary app installed on the device so it has to be something built-in. Something that the smartphones operating system supports maybe?

  3. If I can make it work even only for android devices - its good enough.

Is such a thing even possible or is smartphone NFC used only for reading information from tags? Thanks!

Uri Abramson
  • 6,005
  • 6
  • 40
  • 62

2 Answers2

0

You can't do this without a propietary app installed in the smartphone. When an nfc smartphone device touches an NFC reader, first, it has to be unlocked, and second, it acts as an emulated tag (each chip/phone acts as different ones, I don't remember quite well but I think nexus s emulates a Felica, nexus 5 emulates Mifare, and so on). So yes, when they touch a reader, they transmit an UID which in physical tags can be used as an identifier but not for smartphones because they are generated randomly on each transaction.

So, as the answer, you need a third party application in order to transmit some identifier for the user/phone.

argaen
  • 4,145
  • 24
  • 28
0

What you are trying to do is not possible without having an app on the phone that supplies such identifying information. By default, the NFC protocol is designed not to reveal any identifying information.

Depending on the type of NFC reader (i.e. what communication modes it supports), your app could do the following:

  • Operate the phone (and the NFC reader) in peer to peer mode and send an NDEF message containing your application-specific (unique) identifier.

  • Operate the phone in reader/writer mode (the NFC reader would operate in card emulation mode in that case acting as either a contactless smartcard or an NFC tag) and send your application-specific (unique) identifier to that emulated card/tag.

  • Operate the phone in host card emulation mode (and the NFC reader in reader/writer mode) and send your application-specific (unique) identifier in response to smartcard commands that you receive by your NFC reader. Note that this mode is currently only available on some Android 4.4+ devices and on BlackBerry NFC devices.

Michael Roland
  • 39,663
  • 10
  • 99
  • 206
  • Thanks for the answer. We don't have an app so that would not be possible though. How about coding bluetooth credentials into an NFC tag and then using a bluetooth interface on the host machine (the kiosk) identify the device? Do you have any idea? – Uri Abramson Apr 24 '14 at 15:04
  • This seems to be a completely different question. Thus, please start a new question for this. – Michael Roland Apr 24 '14 at 15:06