SlideShare a Scribd company logo
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

Electronic Access Control Security
Electronic Access Control SecurityElectronic Access Control Security
Electronic Access Control Security
Opposing Force S.r.l.
 
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 Berlin
Intel Developer Zone Community
 
Civintec introduction 2015
Civintec introduction 2015Civintec introduction 2015
Civintec introduction 2015
CIVINTEC GLOBAL CO.,LTD
 
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
 
NFC Basic Concepts
NFC Basic ConceptsNFC Basic Concepts
NFC Basic Concepts
Ade Okuboyejo
 
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 2015
Alex G. Lee, Ph.D. Esq. CLP
 
NFC & RFID on Android
NFC & RFID on AndroidNFC & RFID on Android
NFC & RFID on Android
todbotdotcom
 
VISIONFC Automotive Summit
VISIONFC Automotive SummitVISIONFC Automotive Summit
VISIONFC Automotive Summit
NFC Forum
 
Smart Phone in 2013
Smart Phone in 2013Smart Phone in 2013
Smart Phone in 2013
JJ 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_slides
Babu Kumar
 
Embedded systems security news mar 2011
Embedded systems security news mar 2011Embedded systems security news mar 2011
Embedded systems security news mar 2011
AurMiana
 
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 Experience
NFC Forum
 
Near field communication
Near field communicationNear field communication
Near field communication
Nishank Magoo
 
Nfc power point
Nfc power pointNfc power point
Nfc power point
Rajeev Verma
 

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 Event
NFC Forum
 
Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011Embedded Systems Security News Feb 2011
Embedded Systems Security News Feb 2011
AurMiana
 
Thinaire deck redux
Thinaire deck reduxThinaire deck redux
Thinaire deck redux
MIT Enterprise Forum Cambridge
 
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
EEReports.com
 
Making Waves with NFC 2011
Making Waves with NFC 2011Making Waves with NFC 2011
Making Waves with NFC 2011
Near Field Connects
 
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
Jason 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 retail
Pierre Metivier
 
NFC for the Internet of Things
NFC for the Internet of ThingsNFC for the Internet of Things
NFC for the Internet of Things
NFC 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_2015
Global 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_2016
Ignacio Gonzalez
 
Nokia NFC Presentation
Nokia NFC PresentationNokia NFC Presentation
Nokia NFC Presentation
momobeijing
 
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
Ajin 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 badge
ST_World
 
RFID/NFC for the Masses
RFID/NFC for the MassesRFID/NFC for the Masses
RFID/NFC for the Masses
Positive Hack Days
 
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

Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App Scenarios
Andreas Jakl
 
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
Microsoft Mobile Developer
 
Nfc on Android
Nfc on AndroidNfc on Android
Nfc on Android
Fernando Cejas
 
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
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Academy PRO: .NET Core intro
Academy PRO: .NET Core introAcademy PRO: .NET Core intro
Academy PRO: .NET Core intro
Binary Studio
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
Jehad2012
 
1 introduction of android
1 introduction of android1 introduction of android
1 introduction of android
akila_mano
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
zeelpatel0504
 
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
Mirco Vanini
 
Android os
Android osAndroid os
Android os
Uma Shanker Gupta
 
Droidcon2013 key2 share_dmitrienko_fraunhofer
Droidcon2013 key2 share_dmitrienko_fraunhoferDroidcon2013 key2 share_dmitrienko_fraunhofer
Droidcon2013 key2 share_dmitrienko_fraunhofer
Droidcon Berlin
 
Android technology
Android technologyAndroid technology
Android technology
Dhruv Modh
 
Windows Mobile
Windows MobileWindows Mobile
Windows Mobile
Mahmood Ahmed
 
Fm3610071011
Fm3610071011Fm3610071011
Fm3610071011
IJERA Editor
 
Windows mobile
Windows mobileWindows mobile
Windows mobile
Shehrevar Davierwala
 
Pc03
Pc03Pc03
Android containerization in brief
Android containerization in briefAndroid containerization in brief
Android containerization in brief
Po-wen Cheng
 
Android
Android Android
Android
Anand Buddarapu
 
Asp net
Asp netAsp net
Software training report
Software training reportSoftware training report
Software training report
Natasha Bains
 

Similar to Windows 8 Platform NFC Development (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 Reality
Andreas Jakl
 
AR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAR / VR Interaction Development with Unity
AR / VR Interaction Development with Unity
Andreas 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 Management
Andreas 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 JSON
Andreas 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 - Introduction
Andreas 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 Technologies
Andreas 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 & More
Andreas Jakl
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
Andreas 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 Phone
Andreas Jakl
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
Andreas Jakl
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt Communication
Andreas Jakl
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics
Andreas Jakl
 
04 - Qt Data
04 - Qt Data04 - Qt Data
04 - Qt Data
Andreas Jakl
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI Development
Andreas Jakl
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
Andreas 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 - Introduction
Andreas Jakl
 
Intro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceIntro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User Experience
Andreas 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

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 

Recently uploaded (20)

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 

Windows 8 Platform NFC Development

  • 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