WiFi access with NFC Ring

  • NFC Ring Team

    Android L is due to introduce functionality that will allow a "sender"(usually the home owner) to write Wifi configuration to NFC Tags. When a recipient reads this tag (let's say it's the public portion of your NFC Ring) they will be automatically authenticated and connected to your Wireless network.

    We probably wont get early access to introduce this to the NFC Ring Control app but users will be able to do this themselves by long pressing on a WiFi network(under WiFi settings) and selecting "Write to NFC tag".

  • It would be simple enough to add this to the NFC Ring Control App. The problem is that I believe that only Android L devices would be able to make sense of it.

    I am currently running the Android L Preview on my Nexus 5.

    It looks like it writes it as type application/vnd.wfa.wsc and the data includes both binary data and the SSID and password in ASCII. I guess that the binary data might be something like security protocol.

    I will post the whole thing when I get home, and maybe see if I can find out more about it.

  • NFC Ring Team

    @foopod Okay cool and also take a look through the NFC Ring Control app source code, it might be we need to extend the PhoneGap NFC Plugin functionality to include this..

  • Here is a dump of what is on the tag after writing the Wifi Config to it in Android L.

    We are using chariotsolutions nfc-tag plugin for PhoneGap which does have support for writing tags with different MIME types, so it should be easy enough to include this in the Control App. The problem is going to be the limited initial support for this feature in Android until more devices are upgraded to L.

    Now just curious what this other data is that is being written to the tag. Having a look at the source code for the Android L Preview now.

    Will update when I know more.

  • NFC Ring Team

    @foopod RE "chariotsolutions nfc-tag plugin for PhoneGap" -- We use exactly the same thing, we help maintain that plugin so we should be good to introduce it with very little head ache :) Good job!

    PS you can probably easily fork/contribute this functionality if you could that would be amazing!

  • just FYI, the relevant source code can be found at: https://android.googlesource.com/platform/packages/apps/Nfc/+/android-5.0.2_r1/src/com/android/nfc/NfcWifiProtectedSetup.java

    If you put your payload through http://www.string-functions.com/hex-string.aspx you can decode the information.

    The source code says:

     * ID into configuration record for SSID and Network Key in hex.
     * Obtained from WFA Wifi Simple Configuration Technical Specification v2.0.2.1.

    Unfortunately the relevant document is only downloadable if you pay 99$ to the wifi alliance, but I guess you can just take the google code and develop your app accordingly.