SlideShare a Scribd company logo
1 of 47
Download to read offline
Windows 8 Platform
NFC Development
Andreas Jakl, Mopius

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
NFC Forum and the NFC Forum logo are trademarks of the Near Field Communication Forum.

1
Andreas Jakl
Twitter: @mopius
Email: andreas.jakl@mopius.com
Trainer & app developer
– mopius.com
– nfcinteractor.com

Nokia: Technology Wizard
FH Hagenberg, Mobile Computing: Assistant Professor
Siemens / BenQ Mobile: Augmented Reality-Apps
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

2
We’re covering
Windows (Phone) 8 Proximity APIs
Based on MSDN documentation
bit.ly/ProximityAPI
bit.ly/ProximityAPIwp8
bit.ly/ProximitySpec

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

3
Tap and Do
A gesture that is a natural interaction between people in close proximity used
to trigger doing something together between the devices they are holding.

System: Near Field Proximity
(e.g., NFC)

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
Documentation: bit.ly/ProximitySpec

4
NFC Scenarios

Connect Devices

Exchange Digital Objects

Acquire Content

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

5
From Tags and Peers

ACQUIRE CONTENT
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

6
Acquire Content Scenarios
Website link (e.g., company)

Laulujoutsen
Whooper Swan
National bird of Finland,
on €1 coin

More information (e.g., museum, concert)

Custom app extensions (e.g., bonus item for a game)
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
Angry Birds © Rovio

7
Get Started: Read URIs via NFC
ProximityDevice
Connect to HW
Detect devices in range
Publish & subscribe to messages

ProximityMessage
Contents of received message

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

8
Proximity Capability

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

9
URI Subscriptions
1 Activate proximity device
_device = ProximityDevice.GetDefault();

2 Subscribe to URI messages
_subscribedMessageId = _device.SubscribeForMessage(
"WindowsUri", MessageReceivedHandler);

3 Handle messages
private void MessageReceivedHandler(ProximityDevice sender,
ProximityMessage message) {
var msgArray = message.Data.ToArray();
var url = Encoding.Unicode.GetString(msgArray, 0, msgArray.Length);
Debug.WriteLine("URI: " + url);
}
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
API documentation: bit.ly/ProximityAPI

10
URI Subscriptions
Smart Poster
WindowsUri
URI

4 Cancel subscriptions
_subscribedMessageId = _device.SubscribeForMessage(…);
_device.StopSubscribingForMessage(_subscribedMessageId);
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
API documentation: bit.ly/ProximityAPI

11
Publish & Write

SPREAD THE WORD
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

12
Publish Messages
1 Start publishing
_publishingMessageId = _device.PublishUriMessage(
new Uri("nfcinteractor:compose"));

Proximity devices only
– (doesn’t write tags)

Contains
scheme,
platform &
App ID

Windows Protocol + URI record
– Encapsulated in NDEF

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

13
Write Tags
1 Prepare & convert data
var dataWriter = 
new Windows.Storage.Streams.DataWriter { 
UnicodeEncoding = Windows.Storage.Streams.
UnicodeEncoding.Utf16LE};
dataWriter.WriteString("nfcinteractor:compose");
var dataBuffer = dataWriter.DetachBuffer();

Mandatory
encoding

2 Write tag (no device publication)
_device.PublishBinaryMessage("WindowsUri:WriteTag", dataBuffer);

bit.ly/PublishTypes
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

14
Tag Size?
1 Subscribe for writable tag info
_device.SubscribeForMessage("WriteableTag", 
MessageReceivedHandler);

2 Check maximum writable tag size in handler
var tagSize = BitConverter.ToInt32(message.Data.ToArray(), 0);
Debug.WriteLine("Writeable tag size: " + tagSize);

3 Device HW capabilities
var bps = _device.BitsPerSecond;
var mmb = _device.MaxMessageBytes;

// >= 16kB/s
// >= 10kB

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
API documentation: bit.ly/ProximityAPI

15
Standardized NFC Tag Contents

NDEF HANDLING
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

16
Data on an NFC Tag
LaunchApp
Arguments
[speech text]
WindowsPhone app ID
{0450eab3-92…}

Data
NDEF Record(s)

Encapsulated in
NDEF Message

Encoded through
NFC Forum
Tag Type Platform

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
NDEF = NFC Data Exchange Format, Container image adapted from s_volenszki (Flickr), released under Creative Commons BY-NC 2.0

Stored on
NFC Forum Tag

17
Reading NDEF
1 Subscribe to all NDEF messages
_subscribedMessageId = _device.SubscribeForMessage(
"NDEF", MessageReceivedHandler);

2 Parse raw byte array in handler 

http://www.nfc-forum.org/specs/

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

18
Reading NDEF
// Convert the language code to a byte array

Simple example:
assembling payload of Text record

1 Subscribe to all NDEF messages= Encoding.UTF8;
var languageEncoding

var encodedLanguage = languageEncoding.GetBytes(languageCode);
// Encode and convert the text to a byte array
var encoding = (textEncoding == TextEncodingType.Utf8) ? Encoding.UTF8 : Encoding.BigEndianUnicode;
var encodedText = encoding.GetBytes(text);
// Calculate the length of the payload & create the array
var payloadLength = 1 + encodedLanguage.Length + encodedText.Length;
Payload = new byte[payloadLength];

_subscribedMessageId = _device.SubscribeForMessage(
"NDEF", MessageReceivedHandler);

2 Parse raw byte array in handler 

// Assemble the status byte
Payload[0] = 0; // Make sure also the RFU bit is set to 0
// Text encoding
if (textEncoding == TextEncodingType.Utf8)
Payload[0] &= 0x7F; // ~0x80
else
Payload[0] |= 0x80;

http://www.nfc-forum.org/specs/

// Language code length
Payload[0] |= (byte)(0x3f & (byte)encodedLanguage.Length);
// Language code
Array.Copy(encodedLanguage, 0, Payload, 1, encodedLanguage.Length);
// Text
Array.Copy(encodedText, 0, Payload, 1 + encodedLanguage.Length, encodedText.Length);

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

19
Windows 8 & Windows Phone 8

NFC / NDEF LIBRARY FOR PROXIMITY APIS
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

20
NDEF.codeplex.com
Create NDEF
messages & records
(standard compliant)

Reusable
NDEF classes

Parse information
from raw byte arrays

Fully documented
Open Source LGPL license
(based on Qt Mobility)

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

21
NDEF Subscriptions
1 Subscribe to all NDEF formatted tags
_subscribedMessageId = _device.SubscribeForMessage("NDEF",
MessageReceivedHandler);

2 Parse NDEF message
private void MessageReceivedHandler(ProximityDevice sender, 
ProximityMessage message)
{
var msgArray = message.Data.ToArray();
NdefMessage ndefMessage = NdefMessage.FromByteArray(msgArray);
[...]
}
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

22
NDEF Subscriptions
3 Analyze all contained NDEF records with specialized classes
foreach (NdefRecord record in ndefMessage) 
{
Debug.WriteLine("Record type: " + 
Encoding.UTF8.GetString(record.Type, 0, record.Type.Length));
// Check the type of each record ‐ handling a Smart Poster in this example
if (record.CheckSpecializedType(false) == typeof(NdefSpRecord)) 
{
// Convert and extract Smart Poster info
var spRecord = new NdefSpRecord(record);
Debug.WriteLine("URI: " + spRecord.Uri);
Debug.WriteLine("Titles: " + spRecord.TitleCount());
Debug.WriteLine("1. Title: " + spRecord.Titles[0].Text);
Debug.WriteLine("Action set: " + spRecord.ActionInUse());
}
}
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

23
Write NDEF
1 Prepare & convert data
// Initialize Smart Poster record with URI, Action + 1 Title
var spRecord = new NdefSpRecord
{ Uri = "http://www.nfcinteractor.com" };
spRecord.AddTitle(new NdefTextRecord
{ Text = "Nfc Interactor", LanguageCode = "en" });
// Add record to NDEF message
var msg = new NdefMessage { spRecord };

2a Write tag
// Publish NDEF message to a tag
_device.PublishBinaryMessage("NDEF:WriteTag", msg.ToByteArray().AsBuffer());

2b Publish to devices
// Alternative: send NDEF message to another NFC device
_device.PublishBinaryMessage("NDEF", msg.ToByteArray().AsBuffer());
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

24
APP LAUNCHING
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

25
App Launch Scenarios
Discover your app

Share app to other users

Create seamless multi-user experience
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

26
App Launching Summary
Register for

Files

URI protocol

LaunchApp
Tag

Peer to Peer

User opens
particular file

Tag launches app
through custom
URI scheme

Tag directly contains
app name and
parameters

App requests peer
device to start
the same app

Not so relevant for NFC

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

27
How to Launch Apps

either or

Win8 + WP8

Tag directly contains
app name and
custom data.
No registration necessary.

Custom URI scheme
launches app.
App needs to register.

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

28
nearspeak: Good+morning.
Protocol
name

Custom
data
Encoded Launch URI
Examples*
skype:mopius?call
spotify:search:17th%20boulevard

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
* Definition & examples: http://en.wikipedia.org/wiki/URI_scheme

29
User Experience

No app installed

1 app installed

2+ apps installed

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

30
WP Protocol Association

Note: different
in Win8 / WP8

1 Specify protocol name in WMAppManifest.xml
...</Tokens>
Protocol
<Extensions>
name
<Protocol Name="nearspeak"
NavUriFragment="encodedLaunchUri=%s"
TaskID="_default" />
Fixed
</Extensions>

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

31
WP Protocol Association

Note: different
in Win8 / WP8

2 Create UriMapper class to parse parameters
class NearSpeakUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
// Example: "Protocol?encodedLaunchUri=nearspeak:Good+morning."
var tempUri = HttpUtility.UrlDecode(uri.ToString());
var launchContents = Regex.Match(tempUri, @"nearspeak:(.*)$").Groups[1].Value;
if (!String.IsNullOrEmpty(launchContents))
{
// Launched from associated "nearspeak:" protocol
// Call MainPage.xaml with parameters
return new Uri("/MainPage.xaml?ms_nfp_launchargs=" + launchContents, UriKind.Relative);
}
// Include the original URI with the mapping to the main page
return uri;
}}

Argument already handled in step 9 of LaunchApp
tags (MainPage.OnNavigatedTo)

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

32
WP Protocol Association
3 Use UriMapper in App.xaml.cs
(region:

)

private void InitializePhoneApplication() {
RootFrame = new PhoneApplicationFrame();
RootFrame.UriMapper = new NearSpeakUriMapper();
}

– If needed: launch protocol from app (for app2app comm)
await Windows.System.Launcher.LaunchUriAsync(
new Uri("nearspeak:Good+morning."));

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

33
bit.ly/AppLaunching

Windows 8 Protocol Association

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

34
parameters

platform 1

app name 1

platform 2

app name 2

…

Encoded into NDEF message*

Directly launch App
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
* For your low-level interest: type: Absolute URI, type name format: windows.com/LaunchApp. Contents re-formatted, e.g., with string lengths before each value

35
Write LaunchApp Tags

Note: different
in Win8 / WP8

1 Launch parameters, platforms + app IDs (note: Win8/WP8 ID format differences)
var launchArgs = "user=default";   // Can be empty
// The app's product id from the app manifest, wrapped in {}
var productId = "{xxx}"; 
var launchAppMessage = launchArgs + "tWindowsPhonet" + productId;

2 Convert to byte array
var dataWriter = new Windows.Storage.Streams.DataWriter
{UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE};   
dataWriter.WriteString(launchAppMessage); 

3 Write to tags
_device.PublishBinaryMessage("LaunchApp:WriteTag",
dataWriter.DetachBuffer());
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

36
PEER TO PEER
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

37
Seamless MultiUser Games &
Collaboration

Tap for

Quick Data
Exchange

Long Term
Connection

ProximityDevice

PeerFinder

Exchange Windows /
NDEF messages,
SNEP protocol

Automatically builds
Bt / WiFi Direct
socket connection

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

38
Establishing

Trigger

Long Term
Connection
Browse

Interact with Tap

Start Search

NFC

Bt, WiFi, etc.

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

39
Tap to Trigger

App not installed

App installed
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

40
Connection State
Proximity gesture complete
Devices can be pulled away

Which device initiated tap gesture?
→ Connecting, other device Listening

1
PeerFound

2
Connecting /
Listening

Access socket of persistent transport
(e.g., TCP/IP, Bt)

3
Completed

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

41
Find Peers
1 Start waiting for triggered connections
PeerFinder.TriggeredConnectionStateChanged +=
TriggeredConnectionStateChanged;
PeerFinder.Start();

2 Peer found & connection established? Send message over socket
private async void TriggeredConnectionStateChanged(object sender, 
TriggeredConnectionStateChangedEventArgs eventArgs) {
if (eventArgs.State == TriggeredConnectState.Completed) {
// Socket connection established!
var dataWriter = new DataWriter(eventArgs.Socket.OutputStream);
dataWriter.WriteString("Hello Peer!");
var numBytesWritten = await dataWriter.StoreAsync();
3
}}
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
* For URI records + simple Smart Poster (w/o title), use the WindowsUri type.

42
Completed
UX Recommendations*
User initiated peer
search only

Ask for consent

Show connection
state

Failed
connection?
Inform & revert to
single-user mode

Let user get out of
proximity
experience

Proximity: only if
connection details
not relevant

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl
* bit.ly/ProximityUX

43
NFC Tools
Proximity Tapper for WP emulator
– http://proximitytapper.codeplex.com/

Open NFC Simulator
– http://open-nfc.org/wp/editions/android/

NFC plugin for Eclipse: NDEF Editor
– https://code.google.com/p/nfc-eclipse-plugin/
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

44
nfcinteractor.com

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

45
NFC Resources
 NFC News: nfcworld.com
 NFC developer comparison
(WP, Android, BlackBerry):
bit.ly/NfcDevCompare
 Specifications: nfc-forum.org
Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

46
Thank You.
Andreas Jakl
@mopius
mopius.com
nfcinteractor.com

Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl

47

More Related Content

What's hot

NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)Andreas Jakl
 
Ultrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab BerlinUltrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab BerlinIntel Developer Zone Community
 
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...Identive Group | Press Release | Identive Group's RFID and Near Field Communi...
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...Identive
 
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside NXP MIFARE Team
 
Near Field Communication (NFC)
Near Field Communication (NFC)Near Field Communication (NFC)
Near Field Communication (NFC)Seminar Links
 
Wireless Patents for Standards & Applications 1Q 2015
Wireless Patents for Standards & Applications 1Q 2015Wireless Patents for Standards & Applications 1Q 2015
Wireless Patents for Standards & Applications 1Q 2015Alex G. Lee, Ph.D. Esq. CLP
 
NFC & RFID on Android
NFC & RFID on AndroidNFC & RFID on Android
NFC & RFID on Androidtodbotdotcom
 
VISIONFC Automotive Summit
VISIONFC Automotive SummitVISIONFC Automotive Summit
VISIONFC Automotive SummitNFC Forum
 
Smart Phone in 2013
Smart Phone in 2013Smart Phone in 2013
Smart Phone in 2013JJ Wu
 
Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)RAHUL TRIPATHI
 
Automating Your Life: A look at NFC
Automating Your Life: A look at NFC Automating Your Life: A look at NFC
Automating Your Life: A look at NFC Mitchell Muenster
 
Nfc forum 14_feb07_press_and_analyst_briefing_slides
Nfc forum 14_feb07_press_and_analyst_briefing_slidesNfc forum 14_feb07_press_and_analyst_briefing_slides
Nfc forum 14_feb07_press_and_analyst_briefing_slidesBabu Kumar
 
Embedded systems security news mar 2011
Embedded systems security news mar 2011Embedded systems security news mar 2011
Embedded systems security news mar 2011AurMiana
 
RFID2015_NFC-WISP_public(delete Disney research)
RFID2015_NFC-WISP_public(delete Disney research)RFID2015_NFC-WISP_public(delete Disney research)
RFID2015_NFC-WISP_public(delete Disney research)Yi (Eve) Zhao
 
NFC: Shaping the Future of the Connected Customer Experience
NFC: Shaping the Future of the Connected Customer ExperienceNFC: Shaping the Future of the Connected Customer Experience
NFC: Shaping the Future of the Connected Customer ExperienceNFC Forum
 
Near field communication
Near field communicationNear field communication
Near field communicationNishank Magoo
 

What's hot (20)

Electronic Access Control Security
Electronic Access Control SecurityElectronic Access Control Security
Electronic Access Control Security
 
NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)
 
Ultrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab BerlinUltrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab Berlin
 
Civintec introduction 2015
Civintec introduction 2015Civintec introduction 2015
Civintec introduction 2015
 
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...Identive Group | Press Release | Identive Group's RFID and Near Field Communi...
Identive Group | Press Release | Identive Group's RFID and Near Field Communi...
 
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside
NXP MIFARE Webinar: Innovation Road Map: Present Improved- Future Inside
 
NFC Basic Concepts
NFC Basic ConceptsNFC Basic Concepts
NFC Basic Concepts
 
Near Field Communication (NFC)
Near Field Communication (NFC)Near Field Communication (NFC)
Near Field Communication (NFC)
 
Wireless Patents for Standards & Applications 1Q 2015
Wireless Patents for Standards & Applications 1Q 2015Wireless Patents for Standards & Applications 1Q 2015
Wireless Patents for Standards & Applications 1Q 2015
 
NFC & RFID on Android
NFC & RFID on AndroidNFC & RFID on Android
NFC & RFID on Android
 
VISIONFC Automotive Summit
VISIONFC Automotive SummitVISIONFC Automotive Summit
VISIONFC Automotive Summit
 
Smart Phone in 2013
Smart Phone in 2013Smart Phone in 2013
Smart Phone in 2013
 
Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)
 
Automating Your Life: A look at NFC
Automating Your Life: A look at NFC Automating Your Life: A look at NFC
Automating Your Life: A look at NFC
 
Nfc forum 14_feb07_press_and_analyst_briefing_slides
Nfc forum 14_feb07_press_and_analyst_briefing_slidesNfc forum 14_feb07_press_and_analyst_briefing_slides
Nfc forum 14_feb07_press_and_analyst_briefing_slides
 
Embedded systems security news mar 2011
Embedded systems security news mar 2011Embedded systems security news mar 2011
Embedded systems security news mar 2011
 
RFID2015_NFC-WISP_public(delete Disney research)
RFID2015_NFC-WISP_public(delete Disney research)RFID2015_NFC-WISP_public(delete Disney research)
RFID2015_NFC-WISP_public(delete Disney research)
 
NFC: Shaping the Future of the Connected Customer Experience
NFC: Shaping the Future of the Connected Customer ExperienceNFC: Shaping the Future of the Connected Customer Experience
NFC: Shaping the Future of the Connected Customer Experience
 
Near field communication
Near field communicationNear field communication
Near field communication
 
Nfc power point
Nfc power pointNfc power point
Nfc power point
 

Viewers also liked

NFC Forum Tap Into NFC Developer Event
NFC Forum Tap Into NFC Developer EventNFC Forum Tap Into NFC Developer Event
NFC Forum Tap Into NFC Developer EventNFC Forum
 
Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011AurMiana
 
EE Reports Metering 101 Guide: Benefits and Applications of Submetering
EE Reports Metering 101 Guide: Benefits and Applications of SubmeteringEE Reports Metering 101 Guide: Benefits and Applications of Submetering
EE Reports Metering 101 Guide: Benefits and Applications of SubmeteringEEReports.com
 
Contextually Relevant Retail APIs for Dynamic Insights & Experiences
Contextually Relevant Retail APIs for Dynamic Insights & ExperiencesContextually Relevant Retail APIs for Dynamic Insights & Experiences
Contextually Relevant Retail APIs for Dynamic Insights & ExperiencesJason Lobel
 
Is there such a thing as smart retail
Is there such a thing as smart retailIs there such a thing as smart retail
Is there such a thing as smart retailPierre Metivier
 
NFC for the Internet of Things
NFC for the Internet of ThingsNFC for the Internet of Things
NFC for the Internet of ThingsNFC Forum
 
NFC Bootcamp Seattle Day 2
NFC Bootcamp Seattle Day 2 NFC Bootcamp Seattle Day 2
NFC Bootcamp Seattle Day 2 traceebeebe
 
Global tag portfolio_2015
Global tag portfolio_2015Global tag portfolio_2015
Global tag portfolio_2015Global Tag Srl
 
System Label Company Overview
System Label Company Overview System Label Company Overview
System Label Company Overview System Label
 
Product catalogue europe en_2016
Product catalogue europe en_2016Product catalogue europe en_2016
Product catalogue europe en_2016Ignacio Gonzalez
 
Nokia NFC Presentation
Nokia NFC PresentationNokia NFC Presentation
Nokia NFC Presentationmomobeijing
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Ajin Abraham
 
NFC and consumers - Success factors and limitations in retail business - Flor...
NFC and consumers - Success factors and limitations in retail business - Flor...NFC and consumers - Success factors and limitations in retail business - Flor...
NFC and consumers - Success factors and limitations in retail business - Flor...Florian Resatsch
 
NEAR FIELD COMMUNICATION (NFC)
NEAR FIELD COMMUNICATION (NFC) NEAR FIELD COMMUNICATION (NFC)
NEAR FIELD COMMUNICATION (NFC) ADITYA GUPTA
 
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...servicesmobiles.fr
 
Track 1 session 6 - st dev con 2016 - smart badge
Track 1   session 6 - st dev con 2016 - smart badgeTrack 1   session 6 - st dev con 2016 - smart badge
Track 1 session 6 - st dev con 2016 - smart badgeST_World
 
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...Pierre Metivier
 

Viewers also liked (20)

NFC Forum Tap Into NFC Developer Event
NFC Forum Tap Into NFC Developer EventNFC Forum Tap Into NFC Developer Event
NFC Forum Tap Into NFC Developer Event
 
Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011
 
Thinaire deck redux
Thinaire deck reduxThinaire deck redux
Thinaire deck redux
 
EE Reports Metering 101 Guide: Benefits and Applications of Submetering
EE Reports Metering 101 Guide: Benefits and Applications of SubmeteringEE Reports Metering 101 Guide: Benefits and Applications of Submetering
EE Reports Metering 101 Guide: Benefits and Applications of Submetering
 
Making Waves with NFC 2011
Making Waves with NFC 2011Making Waves with NFC 2011
Making Waves with NFC 2011
 
Contextually Relevant Retail APIs for Dynamic Insights & Experiences
Contextually Relevant Retail APIs for Dynamic Insights & ExperiencesContextually Relevant Retail APIs for Dynamic Insights & Experiences
Contextually Relevant Retail APIs for Dynamic Insights & Experiences
 
Is there such a thing as smart retail
Is there such a thing as smart retailIs there such a thing as smart retail
Is there such a thing as smart retail
 
NFC for the Internet of Things
NFC for the Internet of ThingsNFC for the Internet of Things
NFC for the Internet of Things
 
NFC Bootcamp Seattle Day 2
NFC Bootcamp Seattle Day 2 NFC Bootcamp Seattle Day 2
NFC Bootcamp Seattle Day 2
 
Global tag portfolio_2015
Global tag portfolio_2015Global tag portfolio_2015
Global tag portfolio_2015
 
System Label Company Overview
System Label Company Overview System Label Company Overview
System Label Company Overview
 
Product catalogue europe en_2016
Product catalogue europe en_2016Product catalogue europe en_2016
Product catalogue europe en_2016
 
Nokia NFC Presentation
Nokia NFC PresentationNokia NFC Presentation
Nokia NFC Presentation
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
 
NFC and consumers - Success factors and limitations in retail business - Flor...
NFC and consumers - Success factors and limitations in retail business - Flor...NFC and consumers - Success factors and limitations in retail business - Flor...
NFC and consumers - Success factors and limitations in retail business - Flor...
 
NEAR FIELD COMMUNICATION (NFC)
NEAR FIELD COMMUNICATION (NFC) NEAR FIELD COMMUNICATION (NFC)
NEAR FIELD COMMUNICATION (NFC)
 
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...
Recruter, Fidéliser dans vos magasins avec les technologies disruptives, iBea...
 
Track 1 session 6 - st dev con 2016 - smart badge
Track 1   session 6 - st dev con 2016 - smart badgeTrack 1   session 6 - st dev con 2016 - smart badge
Track 1 session 6 - st dev con 2016 - smart badge
 
RFID/NFC for the Masses
RFID/NFC for the MassesRFID/NFC for the Masses
RFID/NFC for the Masses
 
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...
CONNECTED OBJECTS - how NFC technology enables a more environmentally-friendl...
 

Similar to Windows 8 Platform NFC Development Guide

Similar to Windows 8 Platform NFC Development Guide (20)

Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App Scenarios
 
LUMIA APP LABS: DEVELOPING NFC APPS IN WINDOWS PHONE 8
LUMIA APP LABS: DEVELOPING NFC APPS IN WINDOWS PHONE 8LUMIA APP LABS: DEVELOPING NFC APPS IN WINDOWS PHONE 8
LUMIA APP LABS: DEVELOPING NFC APPS IN WINDOWS PHONE 8
 
Nfc on Android
Nfc on AndroidNfc on Android
Nfc on Android
 
02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT
02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT
02 dev room6__tapand_go_jeffprosise_9Tap and Go: Proximity Networking in WinRT
 
Academy PRO: .NET Core intro
Academy PRO: .NET Core introAcademy PRO: .NET Core intro
Academy PRO: .NET Core intro
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
 
1 introduction of android
1 introduction of android1 introduction of android
1 introduction of android
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Windows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sampleWindows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sample
 
Android os
Android osAndroid os
Android os
 
Droidcon2013 key2 share_dmitrienko_fraunhofer
Droidcon2013 key2 share_dmitrienko_fraunhoferDroidcon2013 key2 share_dmitrienko_fraunhofer
Droidcon2013 key2 share_dmitrienko_fraunhofer
 
Android technology
Android technologyAndroid technology
Android technology
 
Windows Mobile
Windows MobileWindows Mobile
Windows Mobile
 
Fm3610071011
Fm3610071011Fm3610071011
Fm3610071011
 
Windows mobile
Windows mobileWindows mobile
Windows mobile
 
Pc03
Pc03Pc03
Pc03
 
Android containerization in brief
Android containerization in briefAndroid containerization in brief
Android containerization in brief
 
Android
Android Android
Android
 
Asp net
Asp netAsp net
Asp net
 
Software training report
Software training reportSoftware training report
Software training report
 

More from Andreas Jakl

Create Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityCreate Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityAndreas Jakl
 
AR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAndreas Jakl
 
Android Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndroid Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndreas Jakl
 
Android Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndroid Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndreas Jakl
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndreas Jakl
 
Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Andreas Jakl
 
Basics of Web Technologies
Basics of Web TechnologiesBasics of Web Technologies
Basics of Web TechnologiesAndreas Jakl
 
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreBluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreAndreas Jakl
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test AutomationAndreas Jakl
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingAndreas Jakl
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt CommunicationAndreas Jakl
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and GraphicsAndreas Jakl
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI DevelopmentAndreas Jakl
 
Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Andreas Jakl
 
Java ME - Introduction
Java ME - IntroductionJava ME - Introduction
Java ME - IntroductionAndreas Jakl
 
Intro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceIntro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceAndreas Jakl
 

More from Andreas Jakl (20)

Create Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityCreate Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented Reality
 
AR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAR / VR Interaction Development with Unity
AR / VR Interaction Development with Unity
 
Android Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndroid Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App Management
 
Android Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndroid Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSON
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
 
Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)
 
Basics of Web Technologies
Basics of Web TechnologiesBasics of Web Technologies
Basics of Web Technologies
 
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreBluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt Communication
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics
 
04 - Qt Data
04 - Qt Data04 - Qt Data
04 - Qt Data
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI Development
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)
 
Java ME - Introduction
Java ME - IntroductionJava ME - Introduction
Java ME - Introduction
 
Intro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceIntro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User Experience
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Windows 8 Platform NFC Development Guide

  • 1. Windows 8 Platform NFC Development Andreas Jakl, Mopius Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl NFC Forum and the NFC Forum logo are trademarks of the Near Field Communication Forum. 1
  • 2. Andreas Jakl Twitter: @mopius Email: andreas.jakl@mopius.com Trainer & app developer – mopius.com – nfcinteractor.com Nokia: Technology Wizard FH Hagenberg, Mobile Computing: Assistant Professor Siemens / BenQ Mobile: Augmented Reality-Apps Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 2
  • 3. We’re covering Windows (Phone) 8 Proximity APIs Based on MSDN documentation bit.ly/ProximityAPI bit.ly/ProximityAPIwp8 bit.ly/ProximitySpec Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 3
  • 4. Tap and Do A gesture that is a natural interaction between people in close proximity used to trigger doing something together between the devices they are holding. System: Near Field Proximity (e.g., NFC) Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl Documentation: bit.ly/ProximitySpec 4
  • 5. NFC Scenarios Connect Devices Exchange Digital Objects Acquire Content Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 5
  • 6. From Tags and Peers ACQUIRE CONTENT Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 6
  • 7. Acquire Content Scenarios Website link (e.g., company) Laulujoutsen Whooper Swan National bird of Finland, on €1 coin More information (e.g., museum, concert) Custom app extensions (e.g., bonus item for a game) Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl Angry Birds © Rovio 7
  • 8. Get Started: Read URIs via NFC ProximityDevice Connect to HW Detect devices in range Publish & subscribe to messages ProximityMessage Contents of received message Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 8
  • 9. Proximity Capability Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 9
  • 10. URI Subscriptions 1 Activate proximity device _device = ProximityDevice.GetDefault(); 2 Subscribe to URI messages _subscribedMessageId = _device.SubscribeForMessage( "WindowsUri", MessageReceivedHandler); 3 Handle messages private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { var msgArray = message.Data.ToArray(); var url = Encoding.Unicode.GetString(msgArray, 0, msgArray.Length); Debug.WriteLine("URI: " + url); } Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl API documentation: bit.ly/ProximityAPI 10
  • 11. URI Subscriptions Smart Poster WindowsUri URI 4 Cancel subscriptions _subscribedMessageId = _device.SubscribeForMessage(…); _device.StopSubscribingForMessage(_subscribedMessageId); Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl API documentation: bit.ly/ProximityAPI 11
  • 12. Publish & Write SPREAD THE WORD Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 12
  • 13. Publish Messages 1 Start publishing _publishingMessageId = _device.PublishUriMessage( new Uri("nfcinteractor:compose")); Proximity devices only – (doesn’t write tags) Contains scheme, platform & App ID Windows Protocol + URI record – Encapsulated in NDEF Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 13
  • 14. Write Tags 1 Prepare & convert data var dataWriter =  new Windows.Storage.Streams.DataWriter {  UnicodeEncoding = Windows.Storage.Streams. UnicodeEncoding.Utf16LE}; dataWriter.WriteString("nfcinteractor:compose"); var dataBuffer = dataWriter.DetachBuffer(); Mandatory encoding 2 Write tag (no device publication) _device.PublishBinaryMessage("WindowsUri:WriteTag", dataBuffer); bit.ly/PublishTypes Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 14
  • 15. Tag Size? 1 Subscribe for writable tag info _device.SubscribeForMessage("WriteableTag",  MessageReceivedHandler); 2 Check maximum writable tag size in handler var tagSize = BitConverter.ToInt32(message.Data.ToArray(), 0); Debug.WriteLine("Writeable tag size: " + tagSize); 3 Device HW capabilities var bps = _device.BitsPerSecond; var mmb = _device.MaxMessageBytes; // >= 16kB/s // >= 10kB Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl API documentation: bit.ly/ProximityAPI 15
  • 16. Standardized NFC Tag Contents NDEF HANDLING Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 16
  • 17. Data on an NFC Tag LaunchApp Arguments [speech text] WindowsPhone app ID {0450eab3-92…} Data NDEF Record(s) Encapsulated in NDEF Message Encoded through NFC Forum Tag Type Platform Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl NDEF = NFC Data Exchange Format, Container image adapted from s_volenszki (Flickr), released under Creative Commons BY-NC 2.0 Stored on NFC Forum Tag 17
  • 18. Reading NDEF 1 Subscribe to all NDEF messages _subscribedMessageId = _device.SubscribeForMessage( "NDEF", MessageReceivedHandler); 2 Parse raw byte array in handler  http://www.nfc-forum.org/specs/ Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 18
  • 19. Reading NDEF // Convert the language code to a byte array Simple example: assembling payload of Text record 1 Subscribe to all NDEF messages= Encoding.UTF8; var languageEncoding var encodedLanguage = languageEncoding.GetBytes(languageCode); // Encode and convert the text to a byte array var encoding = (textEncoding == TextEncodingType.Utf8) ? Encoding.UTF8 : Encoding.BigEndianUnicode; var encodedText = encoding.GetBytes(text); // Calculate the length of the payload & create the array var payloadLength = 1 + encodedLanguage.Length + encodedText.Length; Payload = new byte[payloadLength]; _subscribedMessageId = _device.SubscribeForMessage( "NDEF", MessageReceivedHandler); 2 Parse raw byte array in handler  // Assemble the status byte Payload[0] = 0; // Make sure also the RFU bit is set to 0 // Text encoding if (textEncoding == TextEncodingType.Utf8) Payload[0] &= 0x7F; // ~0x80 else Payload[0] |= 0x80; http://www.nfc-forum.org/specs/ // Language code length Payload[0] |= (byte)(0x3f & (byte)encodedLanguage.Length); // Language code Array.Copy(encodedLanguage, 0, Payload, 1, encodedLanguage.Length); // Text Array.Copy(encodedText, 0, Payload, 1 + encodedLanguage.Length, encodedText.Length); Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 19
  • 20. Windows 8 & Windows Phone 8 NFC / NDEF LIBRARY FOR PROXIMITY APIS Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 20
  • 21. NDEF.codeplex.com Create NDEF messages & records (standard compliant) Reusable NDEF classes Parse information from raw byte arrays Fully documented Open Source LGPL license (based on Qt Mobility) Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 21
  • 22. NDEF Subscriptions 1 Subscribe to all NDEF formatted tags _subscribedMessageId = _device.SubscribeForMessage("NDEF", MessageReceivedHandler); 2 Parse NDEF message private void MessageReceivedHandler(ProximityDevice sender,  ProximityMessage message) { var msgArray = message.Data.ToArray(); NdefMessage ndefMessage = NdefMessage.FromByteArray(msgArray); [...] } Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 22
  • 23. NDEF Subscriptions 3 Analyze all contained NDEF records with specialized classes foreach (NdefRecord record in ndefMessage)  { Debug.WriteLine("Record type: " +  Encoding.UTF8.GetString(record.Type, 0, record.Type.Length)); // Check the type of each record ‐ handling a Smart Poster in this example if (record.CheckSpecializedType(false) == typeof(NdefSpRecord))  { // Convert and extract Smart Poster info var spRecord = new NdefSpRecord(record); Debug.WriteLine("URI: " + spRecord.Uri); Debug.WriteLine("Titles: " + spRecord.TitleCount()); Debug.WriteLine("1. Title: " + spRecord.Titles[0].Text); Debug.WriteLine("Action set: " + spRecord.ActionInUse()); } } Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 23
  • 24. Write NDEF 1 Prepare & convert data // Initialize Smart Poster record with URI, Action + 1 Title var spRecord = new NdefSpRecord { Uri = "http://www.nfcinteractor.com" }; spRecord.AddTitle(new NdefTextRecord { Text = "Nfc Interactor", LanguageCode = "en" }); // Add record to NDEF message var msg = new NdefMessage { spRecord }; 2a Write tag // Publish NDEF message to a tag _device.PublishBinaryMessage("NDEF:WriteTag", msg.ToByteArray().AsBuffer()); 2b Publish to devices // Alternative: send NDEF message to another NFC device _device.PublishBinaryMessage("NDEF", msg.ToByteArray().AsBuffer()); Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 24
  • 25. APP LAUNCHING Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 25
  • 26. App Launch Scenarios Discover your app Share app to other users Create seamless multi-user experience Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 26
  • 27. App Launching Summary Register for Files URI protocol LaunchApp Tag Peer to Peer User opens particular file Tag launches app through custom URI scheme Tag directly contains app name and parameters App requests peer device to start the same app Not so relevant for NFC Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 27
  • 28. How to Launch Apps either or Win8 + WP8 Tag directly contains app name and custom data. No registration necessary. Custom URI scheme launches app. App needs to register. Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 28
  • 29. nearspeak: Good+morning. Protocol name Custom data Encoded Launch URI Examples* skype:mopius?call spotify:search:17th%20boulevard Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl * Definition & examples: http://en.wikipedia.org/wiki/URI_scheme 29
  • 30. User Experience No app installed 1 app installed 2+ apps installed Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 30
  • 31. WP Protocol Association Note: different in Win8 / WP8 1 Specify protocol name in WMAppManifest.xml ...</Tokens> Protocol <Extensions> name <Protocol Name="nearspeak" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" /> Fixed </Extensions> Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 31
  • 32. WP Protocol Association Note: different in Win8 / WP8 2 Create UriMapper class to parse parameters class NearSpeakUriMapper : UriMapperBase { public override Uri MapUri(Uri uri) { // Example: "Protocol?encodedLaunchUri=nearspeak:Good+morning." var tempUri = HttpUtility.UrlDecode(uri.ToString()); var launchContents = Regex.Match(tempUri, @"nearspeak:(.*)$").Groups[1].Value; if (!String.IsNullOrEmpty(launchContents)) { // Launched from associated "nearspeak:" protocol // Call MainPage.xaml with parameters return new Uri("/MainPage.xaml?ms_nfp_launchargs=" + launchContents, UriKind.Relative); } // Include the original URI with the mapping to the main page return uri; }} Argument already handled in step 9 of LaunchApp tags (MainPage.OnNavigatedTo) Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 32
  • 33. WP Protocol Association 3 Use UriMapper in App.xaml.cs (region: ) private void InitializePhoneApplication() { RootFrame = new PhoneApplicationFrame(); RootFrame.UriMapper = new NearSpeakUriMapper(); } – If needed: launch protocol from app (for app2app comm) await Windows.System.Launcher.LaunchUriAsync( new Uri("nearspeak:Good+morning.")); Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 33
  • 34. bit.ly/AppLaunching Windows 8 Protocol Association Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 34
  • 35. parameters platform 1 app name 1 platform 2 app name 2 … Encoded into NDEF message* Directly launch App Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl * For your low-level interest: type: Absolute URI, type name format: windows.com/LaunchApp. Contents re-formatted, e.g., with string lengths before each value 35
  • 36. Write LaunchApp Tags Note: different in Win8 / WP8 1 Launch parameters, platforms + app IDs (note: Win8/WP8 ID format differences) var launchArgs = "user=default";   // Can be empty // The app's product id from the app manifest, wrapped in {} var productId = "{xxx}";  var launchAppMessage = launchArgs + "tWindowsPhonet" + productId; 2 Convert to byte array var dataWriter = new Windows.Storage.Streams.DataWriter {UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE};    dataWriter.WriteString(launchAppMessage);  3 Write to tags _device.PublishBinaryMessage("LaunchApp:WriteTag", dataWriter.DetachBuffer()); Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 36
  • 37. PEER TO PEER Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 37
  • 38. Seamless MultiUser Games & Collaboration Tap for Quick Data Exchange Long Term Connection ProximityDevice PeerFinder Exchange Windows / NDEF messages, SNEP protocol Automatically builds Bt / WiFi Direct socket connection Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 38
  • 39. Establishing Trigger Long Term Connection Browse Interact with Tap Start Search NFC Bt, WiFi, etc. Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 39
  • 40. Tap to Trigger App not installed App installed Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 40
  • 41. Connection State Proximity gesture complete Devices can be pulled away Which device initiated tap gesture? → Connecting, other device Listening 1 PeerFound 2 Connecting / Listening Access socket of persistent transport (e.g., TCP/IP, Bt) 3 Completed Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 41
  • 42. Find Peers 1 Start waiting for triggered connections PeerFinder.TriggeredConnectionStateChanged += TriggeredConnectionStateChanged; PeerFinder.Start(); 2 Peer found & connection established? Send message over socket private async void TriggeredConnectionStateChanged(object sender,  TriggeredConnectionStateChangedEventArgs eventArgs) { if (eventArgs.State == TriggeredConnectState.Completed) { // Socket connection established! var dataWriter = new DataWriter(eventArgs.Socket.OutputStream); dataWriter.WriteString("Hello Peer!"); var numBytesWritten = await dataWriter.StoreAsync(); 3 }} Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl * For URI records + simple Smart Poster (w/o title), use the WindowsUri type. 42 Completed
  • 43. UX Recommendations* User initiated peer search only Ask for consent Show connection state Failed connection? Inform & revert to single-user mode Let user get out of proximity experience Proximity: only if connection details not relevant Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl * bit.ly/ProximityUX 43
  • 44. NFC Tools Proximity Tapper for WP emulator – http://proximitytapper.codeplex.com/ Open NFC Simulator – http://open-nfc.org/wp/editions/android/ NFC plugin for Eclipse: NDEF Editor – https://code.google.com/p/nfc-eclipse-plugin/ Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 44
  • 45. nfcinteractor.com Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 45
  • 46. NFC Resources  NFC News: nfcworld.com  NFC developer comparison (WP, Android, BlackBerry): bit.ly/NfcDevCompare  Specifications: nfc-forum.org Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 46
  • 47. Thank You. Andreas Jakl @mopius mopius.com nfcinteractor.com Windows 8 Platform NFC Development v2.0.0 © 2014 Andreas Jakl 47