windows (phone) 8 nfc app scenarios
DESCRIPTION
The three most important NFC (Near Field Communication) scenarios for Windows 8 / Windows Phone 8 (WP8) app developers: - Discover Your App - Share to Others - Seamless Multi-User Games & Collaboration This presentation describes these three scenarios, and shows you how to implement them in C# from a technical perspective. It contains examples for both Windows 8 and Windows Phone 8 development, based on the new Windows Proximity APIs. In addition, this presentation contains a quick overview of NFC as a technology, as well as pointers towards tools and documentation, including the open source NDEF library for more powerful and sophisticated NFC tag writing and reading tasks.TRANSCRIPT
![Page 1: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/1.jpg)
Windows (Phone) 8NFC App Scenarios
Andreas Jakl, Mopius
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 1NFC Forum and the NFC Forum logo are trademarks of the Near Field Communication Forum.
![Page 2: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/2.jpg)
Andreas JaklTwitter: @mopius
Email: [email protected]
Trainer & app developer– mopius.com
– nfcinteractor.com
Nokia: Technology Wizard
FH Hagenberg, Mobile Computing: Assistant Professor
Siemens / BenQ Mobile: Augmented Reality-Apps
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 2
![Page 3: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/3.jpg)
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 3
Seamless Multi-User Games & CollaborationShare to OthersDiscover Your App
Near Field Communication Nfc InteractorNDEF Library
![Page 4: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/4.jpg)
PROXIMITY & TAPPING
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 4
![Page 5: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/5.jpg)
NFC Scenarios
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
Connect Devices Exchange Digital Objects Acquire Content
5
![Page 6: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/6.jpg)
Tap and Do
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 6
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)
Documentation: bit.ly/ProximitySpec
![Page 7: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/7.jpg)
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
Prox
imit
y A
PIs
Win
dow
s Ph
one
8 +
Win
dow
s 8
DocumentationWin8: bit.ly/ProximityAPI
WP8: bit.ly/ProximityAPIwp8
7
![Page 8: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/8.jpg)
APP SCENARIOS
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 8
![Page 9: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/9.jpg)
Seamless Multi-User Games & CollaborationDiscover Your App Share to OthersShare to Others
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 9
Seamless Multi-User Games & Collaboration
![Page 10: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/10.jpg)
General Project Setup
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 10
1 Add Proximity Capability
2 Initialize ProximityDevice_device = ProximityDevice.GetDefault();
Connect to HWDetect devices in rangePublish & subscribe to messages
![Page 11: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/11.jpg)
How to Launch Apps
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
Custom URI schemelaunches app.App needs to register.
Tag directly containsapp name andcustom data.No registration necessary.
eith
er o
r
Win8 + WP8
11
![Page 12: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/12.jpg)
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 12
Directly launch App
parameters app name 1platform 1 platform 2 app name 2 …
* 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
Encoded into NDEF message*
![Page 13: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/13.jpg)
Write LaunchApp Tags
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 13
// Arguments to pass to app, valid for all platformsvar launchArgs = "user=default";
// WP8: app's product id from the app manifest, wrapped in {}var wp8App = "{5e506af4‐4586‐4c90‐bc5f‐428b12cf48bc}";
// Win8: app ID: Package.appxmanifest ‐> source ‐> <Application Id="...">var win8AppId = "Proximity.App";var win8App = Windows.ApplicationModel.Package.Current.Id.FamilyName +
"!" + win8AppId;
// Combine to LaunchApp Messagevar launchAppMessage = launchArgs +
"\tWindowsPhone\t" + wp8App + "\tWindows\t" + win8App;
1 Launch parameters, platforms + app IDs
![Page 14: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/14.jpg)
Write LaunchApp Tags
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 14
3 Write to tags_device.PublishBinaryMessage("LaunchApp:WriteTag",
dataWriter.DetachBuffer());
var dataWriter = new Windows.Storage.Streams.DataWriter{UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE};
dataWriter.WriteString(launchAppMessage);
2 Convert to byte array
![Page 15: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/15.jpg)
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 15
nearspeak: Good+morning.
Custom dataProtocol name
Encoded Launch URI
Examples*skype:mopius?call
spotify:search:17th%20boulevard
* Definition & examples: http://en.wikipedia.org/wiki/URI_scheme
![Page 16: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/16.jpg)
User Experience
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 16
No app installed 1 app installed 2+ apps installed
![Page 17: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/17.jpg)
WP Protocol Association
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 17
1 Specify protocol name in WMAppManifest.xml
...</Tokens><Extensions><Protocol Name="nearspeak"
NavUriFragment="encodedLaunchUri=%s"TaskID="_default" />
</Extensions>
Protocol name
Fixed
Note: different in Win8 / WP8
![Page 18: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/18.jpg)
WP Protocol Association
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 18
2 Create UriMapper class to parse parametersclass 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 parametersreturn new Uri("/MainPage.xaml?ms_nfp_launchargs=" + launchContents, UriKind.Relative);
}
// Include the original URI with the mapping to the main pagereturn uri;
}} Argument already handled in step 9 of LaunchApp tags (MainPage.OnNavigatedTo)
Note: different in Win8 / WP8
![Page 19: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/19.jpg)
WP Protocol Association
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 19
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."));
![Page 20: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/20.jpg)
Register for URI Schemes
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
Win 8
Specify URI scheme, display name + optional im
20
![Page 21: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/21.jpg)
Tag Data After Launch
Activtion arguments in App.xaml.cs
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
protected override async void OnActivated(IActivatedEventArgs args){
if (args.Kind == ActivationKind.Protocol){
ProtocolActivatedEventArgs protocolArgs = args asProtocolActivatedEventArgs;
}}
Win 8
21
![Page 22: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/22.jpg)
User Experience
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
Win 8
22
![Page 23: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/23.jpg)
Seamless Multi-User Games & CollaborationDiscover Your App Share to OthersDiscover Your App
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 23
Seamless Multi-User Games & Collaboration
![Page 24: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/24.jpg)
Publish Messages
Proximity devices only
– (doesn’t write tags)
Windows Protocol + URI record
– Encapsulated in NDEF
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 24
_publishingMessageId = _device.PublishUriMessage(new Uri("nfcinteractor:compose"));
1 Start publishing
Contains scheme,
platform & App ID
![Page 25: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/25.jpg)
Write Tags
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 25
1 Prepare & convert datavar dataWriter =
new Windows.Storage.Streams.DataWriter { UnicodeEncoding = Windows.Storage.Streams.
UnicodeEncoding.Utf16LE};
dataWriter.WriteString("nfcinteractor:compose");var dataBuffer = dataWriter.DetachBuffer();
2 Write tag (no device publication)_device.PublishBinaryMessage("WindowsUri:WriteTag", dataBuffer);
Mandatory encoding
bit.ly/PublishTypes
![Page 26: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/26.jpg)
Seamless Multi-User Games & CollaborationDiscover Your App Share to OthersDiscover Your App
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 26
Share to Others
![Page 27: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/27.jpg)
Tap for
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 27
Quick Data Exchange
ProximityDeviceExchange Windows /
NDEF messages,SNEP protocol
Long Term Connection
PeerFinderAutomatically builds
Bt / WiFi Directsocket connection
Seamless Multi-User Games & Collaboration
![Page 28: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/28.jpg)
Establishing
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 28
Long Term Connection
Trigger
Interact with TapNFC
Browse
Start SearchBt, WiFi, etc.
![Page 29: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/29.jpg)
Tap to Trigger
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 29
App not installed
App installed
![Page 30: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/30.jpg)
Connection State
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 30
PeerFound
1Proximity gesture completeDevices can be pulled away
Connecting /Listening
2Which device initiated tap gesture?→ Connecting, other device Listening
Completed
3Access socket of persistent transport
(e.g., TCP/IP, Bt)
![Page 31: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/31.jpg)
Find Peers
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 31
PeerFinder.TriggeredConnectionStateChanged +=TriggeredConnectionStateChanged;
PeerFinder.Start();
1 Start waiting for triggered connections
2 Peer found & connection established? Send message over socket
* For URI records + simple Smart Poster (w/o title), use the WindowsUri type.
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();
}}Completed
3
![Page 32: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/32.jpg)
TOOLS & RESOURCES
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 32
![Page 33: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/33.jpg)
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 (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 33* bit.ly/ProximityUX
![Page 34: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/34.jpg)
NFC ToolsProximity 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 (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 34
![Page 35: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/35.jpg)
nfcinteractor.com
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 35
![Page 36: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/36.jpg)
NFC Resources NFC News: nfcworld.com
NFC developer comparison
(WP, Android, BlackBerry):
bit.ly/NfcDevCompare
Specifications: nfc-forum.org
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 36
![Page 37: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/37.jpg)
NDEF HANDLINGStandardized NFC Tag Contents
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 37
![Page 38: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/38.jpg)
NDEF Message
NFC Data
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
NDEF Record(e.g., URL) …
NDEF = NFC Data Exchange Format
38
![Page 39: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/39.jpg)
SNEP = Simple NDEF Exchange Protocol
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl
NDEF Message
NDEF Record(e.g., URL) …
39
![Page 40: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/40.jpg)
Reading NDEF
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 40
_subscribedMessageId = _device.SubscribeForMessage("NDEF", MessageReceivedHandler);
1 Subscribe to all NDEF messages
2 Parse raw byte array in handler
http://www.nfc-forum.org/specs/
![Page 41: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/41.jpg)
_subscribedMessageId = _device.SubscribeForMessage("NDEF", MessageReceivedHandler);
Subscribe to all NDEF messages
Parse raw byte array in handler
http://www.nfc-forum.org/specs/
// Convert the language code to a byte arrayvar languageEncoding = Encoding.UTF8;var encodedLanguage = languageEncoding.GetBytes(languageCode);// Encode and convert the text to a byte arrayvar encoding = (textEncoding == TextEncodingType.Utf8) ? Encoding.UTF8 : Encoding.BigEndianUnicode;var encodedText = encoding.GetBytes(text);// Calculate the length of the payload & create the arrayvar payloadLength = 1 + encodedLanguage.Length + encodedText.Length;Payload = new byte[payloadLength];
// Assemble the status bytePayload[0] = 0; // Make sure also the RFU bit is set to 0// Text encodingif (textEncoding == TextEncodingType.Utf8)
Payload[0] &= 0x7F; // ~0x80else
Payload[0] |= 0x80;
// Language code lengthPayload[0] |= (byte)(0x3f & (byte)encodedLanguage.Length);
// Language codeArray.Copy(encodedLanguage, 0, Payload, 1, encodedLanguage.Length);
// TextArray.Copy(encodedText, 0, Payload, 1 + encodedLanguage.Length, encodedText.Length);Si
mpl
e ex
ampl
e:as
sem
blin
g pa
yloa
d of
Text
reco
rd
Reading NDEF
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 41
1
2
![Page 42: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/42.jpg)
NDEF.codeplex.com
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 42
Reusable NDEF classes
Create NDEFmessages & records
(standard compliant)
Parse informationfrom raw byte arrays
Fully documentedOpen Source LGPL license
(based on Qt Mobility)
![Page 43: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/43.jpg)
NDEF Subscriptions
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 43
_subscribedMessageId = _device.SubscribeForMessage("NDEF",MessageReceivedHandler);
1 Subscribe to all NDEF formatted tags
private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message){
var msgArray = message.Data.ToArray();NdefMessage ndefMessage = NdefMessage.FromByteArray(msgArray);[...]
}
2 Parse NDEF message
![Page 44: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/44.jpg)
NDEF Subscriptions
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 44
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 exampleif (record.CheckSpecializedType(false) == typeof(NdefSpRecord)) {
// Convert and extract Smart Poster infovar 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());
}}
3 Analyze all contained NDEF records with specialized classes
![Page 45: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/45.jpg)
Write NDEF
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 45
1 Prepare & convert data// Initialize Smart Poster record with URI, Action + 1 Titlevar spRecord = new NdefSpRecord
{ Uri = "http://www.nfcinteractor.com" };spRecord.AddTitle(new NdefTextRecord
{ Text = "Nfc Interactor", LanguageCode = "en" });
// Add record to NDEF messagevar 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());
![Page 46: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/46.jpg)
Supported Record Types
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 46
Smart Poster URI
Text LaunchApp
Android Application Record (AAR)Windows Phone SettingsNokia Accessories Record
NearSpeak Voice Messages
Geo tagsSocial tagsSMS tagsTelephone callMailto tags
ndef.mopius.com
![Page 47: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/47.jpg)
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 47
Seamless Multi-User Games & CollaborationShare to OthersDiscover Your App
Near Field Communication Nfc InteractorNDEF Library
![Page 48: Windows (Phone) 8 NFC App Scenarios](https://reader030.vdocuments.site/reader030/viewer/2022020105/554fafa2b4c905ad218b5189/html5/thumbnails/48.jpg)
Thank You.
Andreas Jakl@mopius
mopius.comnfcinteractor.com
Windows (Phone) 8 NFC App Scenarios v3.0.0 © 2014 Andreas Jakl 48