private void OnWriteableTagArrived(ProximityDevice sender, ProximityMessage message) { var dataWriter = new DataWriter(); dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE; string appLauncher = string.Format(@"mywaiter:MainPage?source=3"); dataWriter.WriteString(appLauncher); pubId = sender.PublishBinaryMessage("WindowsUri:WriteTag", dataWriter.DetachBuffer()); }
private void OnWriteableTagArrived(ProximityDevice sender, ProximityMessage message) { Deployment.Current.Dispatcher.BeginInvoke(() => { try { if ( MessageBox.Show("Are you sure you want to write to this NFC Tag?", "Confirmation", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { var dataWriter = new DataWriter(); dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE; string appLauncher = string.Format(@"zVirtualScenes:MainPage?action=scene&id={0}", SelectedScene.id); dataWriter.WriteString(appLauncher); pubId = sender.PublishBinaryMessage("WindowsUri:WriteTag", dataWriter.DetachBuffer()); MessageBox.Show("Completed writing to the tag."); } } catch (Exception e) { MessageBox.Show("Could not write to the tag. Reason:" + e.Message); } finally { _proximityDevice.StopSubscribingForMessage(subid); } }); }
private void messageReceived(Windows.Networking.Proximity.ProximityDevice device, Windows.Networking.Proximity.ProximityMessage message) { Dispatcher.BeginInvoke(() => MessageBox.Show("Message received: " + message.DataAsString) ); }
private void messageReceived( Windows.Networking.Proximity.ProximityDevice device, Windows.Networking.Proximity.ProximityMessage message) { var ignored = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { Synopsis.Text += "Message received: " + message.DataAsString + "\n"; }); }
private void messageReceived(ProximityDevice sender,ProximityMessage message) { Dispatcher.BeginInvoke(() => { textBlockTest.Text += "message modetaget: " + message.DataAsString; textBlockTest.Text += "Type: " + message.MessageType; Debug.WriteLine("Received from {0}:'{1}'", sender.DeviceId, message.DataAsString); }); }
private void MessageReceivedHandler(ProximityDevice device, ProximityMessage message) { nfcTag.IsNdefSupported = true; nfcTag.Id = new byte[0]; nfcTag.TechList = new System.Collections.ObjectModel.ObservableCollection<string>(); var rawMsg = message.Data.ToArray(); nfcTag.NdefMessage = NdefMessage.FromByteArray(rawMsg); if (message.MessageType == "WriteableTag") nfcDevice.SubscribeForMessage("WriteableTag", WriteableTagHandler); else RaiseNewTag(nfcTag); }
private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { SetStatusOutput("Found proximity card"); // Convert to NdefMessage from NDEF / NFC Library var msgArray = message.Data.ToArray(); NdefMessage ndefMessage = NdefMessage.FromByteArray(msgArray); // Loop over all records contained in the message foreach (NdefRecord record in ndefMessage) { // Check the type of each record if (record.CheckSpecializedType(false) == typeof(NdefUriRecord)) { // Convert and extract URI info var uriRecord = new NdefUriRecord(record); SetStatusOutput("NDEF URI: " + uriRecord.Uri); } } }
// ------------------------------------------ // PRIVATE READER // ------------------------------------------ private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { // Parse raw byte array to NDEF message var rawMsg = message.Data.ToArray(); var ndefMessage = NdefMessage.FromByteArray(rawMsg); // Loop over all records contained in the NDEF message foreach (NdefRecord record in ndefMessage) { Console.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 var specializedType = record.CheckSpecializedType(true); // Convert and extract Smart Poster info if (specializedType == typeof(NdefSpRecord)) { var spRecord = new NdefSpRecord(record); String msg = "URI: " + spRecord.Uri + "\n" + "Titles: " + spRecord.TitleCount() + "\n" + "1. Title: " + spRecord.Titles[0].Text + "\n" + "Action set: " + spRecord.ActionInUse(); NFCManager.getInstance().Alert(msg); } // Convert and extract URI record info else if (specializedType == typeof(NdefUriRecord)) { var uriRecord = new NdefUriRecord(record); String msg = "URI: " + uriRecord.Uri + "\n"; NFCManager.getInstance().Alert(msg); NFCManager.getInstance().SendRequest(uriRecord.Uri); } // Convert and extract Mailto record info else if (specializedType == typeof(NdefMailtoRecord)) { var mailtoRecord = new NdefMailtoRecord(record); String msg = "Address: " + mailtoRecord.Address + "\n" + "Subject: " + mailtoRecord.Subject + "\n" + "Body: " + mailtoRecord.Body; NFCManager.getInstance().Alert(msg); } } }
private void receivedHandler(ProximityDevice sender, ProximityMessage message) { var data = message.Data.ToArray(); var ndefMessage = NdefMessage.FromByteArray(data); foreach (NdefRecord record in ndefMessage) { string type = Encoding.UTF8.GetString(record.Type, 0, record.Type.Length); Debug.WriteLine("Record type: " + Encoding.UTF8.GetString(record.Type, 0, record.Type.Length)); if ("application/json; charset=\"utf-8\"".Equals(type)) { string json = Encoding.UTF8.GetString(record.Payload, 0, record.Payload.Length); var prototype = new { Employee = new { Id = -1L, Name = string.Empty } }; var t = JsonConvert.DeserializeAnonymousType(json, prototype); Debug.WriteLine(string.Format("Employee id = {0}, name = {1}.", t.Employee.Id, t.Employee.Name)); } } device.StopSubscribingForMessage(subscribingId); }
public void messageReceivedHandler(ProximityDevice device, ProximityMessage message) { DateTime thisTapTime = DateTime.UtcNow; TimeSpan sinceLastTapIn = thisTapTime - lastTapTime; WriteMessageText("Time since last tap (sec): " + sinceLastTapIn.TotalSeconds); if (sinceLastTapIn.TotalSeconds < 3) { return; } else { lastTapTime = thisTapTime; } var userToken = readUserTokenFromTag(message); if (loggedIn) { if (userToken == loggedInUser) { WriteMessageText("Already logged in, logging out"); loggedIn = false; loggedInUser = ""; gpiiLogout(userToken); } else // a different user wants to login, so we will log them out { // first and then let the next person log in WriteMessageText("Logged in with different user, will log them out first."); gpiiLogout(loggedInUser); System.Threading.Thread.Sleep(1000); loggedIn = true; loggedInUser = userToken; gpiiLogin(userToken); } } else { loggedIn = true; loggedInUser = userToken; gpiiLogin(userToken); } }
/// <summary> /// The handler that the proximity provider will call when it receives a message. /// </summary> private void NfcMessageReceived(ProximityDevice sender, ProximityMessage message) { Message msg = _nfcMessage.DeserializeMessage(message.Data); // We got the message, stop subscribing for more _proximityDevice.StopSubscribingForMessage(_subscribedMsgId); _subscribedMsgId = -1; // Invoke the UI thread since NFC works in separate thread(s) Deployment.Current.Dispatcher.BeginInvoke(() => { switch (state) { case ProtoState.DealCard: this.MessageReceived(msg); break; case ProtoState.ShowCard: this.MessageCardReceived(msg); break; } }); }
private void messageReceived(ProximityDevice sender, ProximityMessage message) { Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show(message.DataAsString)); }
protected MessageReceived GetMessage(ProximityMessage message) { var buffer = message.Data.ToArray(); return new MessageReceived("id!!", NdefLibrary.Ndef.NdefMessage.FromByteArray(buffer),this); }
private void OnMessageReceived(ProximityDevice sender, ProximityMessage message) { if (state == NfcManager.ProtoState.Ready) { return; } state = NfcManager.ProtoState.NotReady; try { String msg = message.DataAsString.Substring(0, message.DataAsString.IndexOf('\0')); MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(msg)); DataContractSerializer serializer = new DataContractSerializer(typeof(InitialMessage)); stream.Position = 0; InitialMessage adversaryTime = (InitialMessage)serializer.ReadObject(stream); isMaster = (initialMessage.devicetime > adversaryTime.devicetime); state = NfcManager.ProtoState.Ready; proximityDevice.StopSubscribingForMessage(subscribeId); proximityDevice.StopPublishingMessage(publishId); subscribeId = -1; publishId = -1; notifyReady(); } catch (SerializationException) { } }
private void WriteableTagHandler(ProximityDevice sender, ProximityMessage message) { nfcTag.IsWriteable = true; nfcTag.MaxSize = System.BitConverter.ToInt32(message.Data.ToArray(), 0); RaiseNewTag(nfcTag); }
private void ndefTagReceived(ProximityDevice device, ProximityMessage message) { String tagAnalysis = "*** " + AppResources.MsgRcvd + " ***\n"; DataReader dataReader = DataReader.FromBuffer(message.Data); String messageBytes = ""; String messageText = ""; Byte[] messageArray = new Byte[message.Data.Length]; int i; int j; int ndefRecordCount; int messageOffset; Byte recordFlags; int typeLength; String typeString; Byte textStatus; Byte idType; int idLength; int payloadLength; Byte[] payloadArray; Boolean validRecord; String remainderHex = ""; String remainderString = ""; Byte[] tempArray; String wellKnownTypeString = ""; String textEncoding = ""; int ianaLength = 0; String languageCode = ""; String payloadString = ""; String payloadBytes = ""; String uriPrefixString = ""; Byte param1 = 0; Byte param2 = 0; Byte param3 = 0; String argsString = ""; Byte rawByte = 0; tagAnalysis += AppResources.MsgTypeHdr + " " + message.MessageType + ".\n"; tagAnalysis += AppResources.MsgLengthHdr + " " + message.Data.Length.ToString() + " " + AppResources.bytes + ".\n"; tagAnalysis += "\n"; for (i = 0; i < message.Data.Length; i++) { messageArray[i] = dataReader.ReadByte(); } ndefRecordCount = 0; while (messageArray.Length > 2) { ndefRecordCount++; messageOffset = 0; recordFlags = messageArray[messageOffset++]; typeLength = 0; typeString = ""; textStatus = 0x00; idType = 0x00; idLength = 0; payloadLength = 0; validRecord = false; typeLength = messageArray[messageOffset++]; payloadLength = 0; if (isShortRecord(recordFlags)) { payloadLength += messageArray[messageOffset++]; } else { for (i = 0; i < 4; i++) { payloadLength *= 256; payloadLength += messageArray[messageOffset++]; } } if (hasIdLength(recordFlags)) idLength = messageArray[messageOffset++]; for (i = 0; i < typeLength; i++) { typeString += Convert.ToChar(messageArray[i + messageOffset]); } messageOffset += typeLength; payloadArray = new Byte[payloadLength]; for (i = 0; i < payloadLength; i++) { payloadArray[i] = messageArray[i + messageOffset]; } messageOffset += payloadLength; messageBytes = ""; messageText = ""; for (j = 0; j < messageArray.Length; j++) { rawByte = messageArray[j]; messageBytes += hexVal(rawByte) + " "; if ((rawByte < 32) || (rawByte > 127)) messageText += '.'; else messageText += Convert.ToChar(rawByte); } remainderHex = ""; remainderString = ""; tempArray = new Byte[messageArray.Length - messageOffset]; Array.ConstrainedCopy(messageArray, messageOffset, tempArray, 0, messageArray.Length - messageOffset); messageArray = tempArray; for (i = 0; i < messageArray.Length; i++) { remainderHex = String.Concat(remainderHex, hexVal(messageArray[i])); remainderHex = String.Concat(remainderHex, " "); if ((messageArray[i] < 32) || (messageArray[i] > 127)) remainderString = String.Concat(remainderString, '.'); else remainderString = String.Concat(remainderString, messageArray[i].ToString()); } tagAnalysis += AppResources.NDEFRecHdr + " " + ndefRecordCount.ToString() + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.TypeLengthHdr + " " + typeLength.ToString() + " " + AppResources.bytes + ".\n"; tagAnalysis += AppResources.PayloadLengthHdr + " " + payloadLength.ToString() + " " + AppResources.bytes + ".\n"; if (idLength > 0) tagAnalysis += AppResources.IdLengthHdr + " " + idLength.ToString() + " " + AppResources.bytes + ".\n"; else tagAnalysis += AppResources.NoId + "\n"; tagAnalysis += "\n"; if (typeNameFormat(recordFlags) == 0x01) { // NFC Forum Well Known Type wellKnownTypeString = AppResources.Unknown + " (" + typeString + ")"; if (typeString == "T") { // Text wellKnownTypeString = AppResources.Text; textStatus = payloadArray[0]; --payloadLength; tempArray = new Byte[payloadLength]; Array.ConstrainedCopy(payloadArray, 1, tempArray, 0, payloadLength); payloadArray = tempArray; if ((textStatus & 0x01) != 0) textEncoding = "UTF16"; else textEncoding = "UTF8"; ianaLength = 0 + (textStatus & 0x3F); languageCode = ""; for (i = 0; i < ianaLength; i++) { languageCode = String.Concat(languageCode, Convert.ToChar(payloadArray[0])); --payloadLength; tempArray = new Byte[payloadLength]; Array.ConstrainedCopy(payloadArray, 1, tempArray, 0, payloadLength); payloadArray = tempArray; } } else if (typeString == "Sp") { // Smart Poster wellKnownTypeString = AppResources.SmartPoster; } else if (typeString == "U") { // URI wellKnownTypeString = AppResources.URI; idType = payloadArray[0]; --payloadLength; tempArray = new Byte[payloadLength]; Array.ConstrainedCopy(payloadArray, 1, tempArray, 0, payloadLength); payloadArray = tempArray; uriPrefixString = ""; switch (idType) { case 0x00: uriPrefixString = ""; break; case 0x01: uriPrefixString = "http://www."; break; case 0x02: uriPrefixString = "https://www."; break; case 0x03: uriPrefixString = "http://"; break; case 0x04: uriPrefixString = "https://"; break; case 0x05: uriPrefixString = "tel:"; break; case 0x06: uriPrefixString = "mailto:"; break; case 0x07: uriPrefixString = "ftp://*****:*****@"; break; case 0x08: uriPrefixString = "ftp://ftp."; break; case 0x09: uriPrefixString = "ftps://"; break; case 0x0a: uriPrefixString = "sftp://"; break; case 0x0b: uriPrefixString = "smb://"; break; case 0x0c: uriPrefixString = "nfs://"; break; case 0x0d: uriPrefixString = "ftp://"; break; case 0x0e: uriPrefixString = "dav://"; break; case 0x0f: uriPrefixString = "news:"; break; case 0x10: uriPrefixString = "telnet://"; break; case 0x11: uriPrefixString = "imap:"; break; case 0x12: uriPrefixString = "rtsp://"; break; case 0x13: uriPrefixString = "urn:"; break; case 0x14: uriPrefixString = " pop:"; break; case 0x15: uriPrefixString = "sip:"; break; case 0x16: uriPrefixString = "sips:"; break; case 0x17: uriPrefixString = "tftp:"; break; case 0x18: uriPrefixString = "btspp://"; break; case 0x19: uriPrefixString = "btl2cap://"; break; case 0x1a: uriPrefixString = "btgoep://"; break; case 0x1b: uriPrefixString = "tcpobex://"; break; case 0x1c: uriPrefixString = "irdaobex://"; break; case 0x1d: uriPrefixString = "file://"; break; case 0x1e: uriPrefixString = "urn:epc:id:"; break; case 0x1f: uriPrefixString = "urn:epc:tag"; break; case 0x20: uriPrefixString = "urn:epc:pat:"; break; case 0x21: uriPrefixString = "urn:epc:raw:"; break; case 0x22: uriPrefixString = "urn:epc:"; break; case 0x23: uriPrefixString = "urn:nfc:"; break; default: uriPrefixString = "RFU"; break; } } else if (typeString == "Gc") { // Generic Control wellKnownTypeString = AppResources.GenericCtrl; } else if (typeString == "Hr") { // Handover Request wellKnownTypeString = AppResources.HandoverReq; } else if (typeString == "Hs") { // Handover Select wellKnownTypeString = AppResources.HandoverSel; } else if (typeString == "Hc") { // Handover Carrier wellKnownTypeString = AppResources.HandoverCar; } else if (typeString == "Sg") { // Signature wellKnownTypeString = AppResources.Sig; } tagAnalysis += AppResources.TNF + " = " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += AppResources.WellKnownTypeHdr + " " + wellKnownTypeString + "\n"; tagAnalysis += "\n"; if (typeString == "T") { tagAnalysis += AppResources.EncodingHdr + " " + textEncoding + "\n"; tagAnalysis += AppResources.LanguageHdr + " " + languageCode + "\n"; tagAnalysis += "\n"; } else if (typeString == "U") tagAnalysis += AppResources.IdTypeHdr + " " + idType.ToString() + "\n"; tagAnalysis += appendNfcMessageFlags(recordFlags); tagAnalysis += AppResources.MsgTextHdr + "\n"; tagAnalysis += messageText + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.MsgBytesHdr + "\n"; tagAnalysis += messageBytes + "\n"; tagAnalysis += "\n"; payloadString = ""; if (textEncoding == "UTF16") { for (i = 0; i < payloadLength; i += 2) { payloadString += Convert.ToChar(payloadArray[i] + (256 * payloadArray[i + 1])); } } else { for (i = 0; i < payloadLength; i++) payloadString += Convert.ToChar(payloadArray[i]); } if (typeString == "T") { tagAnalysis += AppResources.TextHdr + " " + payloadString + "\n"; tagAnalysis += "\n"; } else if (typeString == "U") { tagAnalysis += AppResources.URIHdr + " " + uriPrefixString + payloadString + "\n"; tagAnalysis += "\n"; } else { tagAnalysis += AppResources.PayloadHdr + " " + payloadString + "\n"; tagAnalysis += "\n"; } } else if (typeNameFormat(recordFlags) == 0x02) { // Media Type tagAnalysis += AppResources.TNF + " = " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += AppResources.MediaTypeHdr + " " + typeString + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.MsgTextHdr + "\n"; tagAnalysis += messageText + "\n"; if (typeString.ToLower() == "text/plain") { payloadString = ""; for (i = 0; i < payloadLength; i += 2) { payloadString += Convert.ToChar(payloadArray[i] + (256 * payloadArray[i + 1])); } tagAnalysis += AppResources.TextHdr + " " + payloadString + "\n\n"; } else if ((typeString.ToLower() == "text/vcard") || (typeString.ToLower() == "text/x-vcard")) { payloadString = ""; for (i = 0; i < payloadLength; i++) payloadString += Convert.ToChar(payloadArray[i]); payloadBytes = ""; for (j = 0; j < payloadArray.Length ; j++) { rawByte = payloadArray[j]; payloadBytes += hexVal(rawByte) + " "; } tagAnalysis += AppResources.vCardDataHdr + "\n"; tagAnalysis += payloadString + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.VcardBytesHdr + "\n"; tagAnalysis += payloadBytes + "\n"; tagAnalysis += "\n"; tagAnalysis += Vcard.showVcard(typeString, payloadArray); } } else if (typeNameFormat(recordFlags) == 0x03) { // Absolute URI Type param1 = payloadArray[0]; --payloadLength; param2 = payloadArray[1]; --payloadLength; param3 = payloadArray[2]; --payloadLength; tempArray = new Byte[payloadLength]; Array.ConstrainedCopy(payloadArray, 3, tempArray, 0, payloadLength); payloadArray = tempArray; argsString = ""; for (i = 0; i < payloadLength; i++) { if ((payloadArray[i] < 32) || (payloadArray[i] > 127)) argsString += '.'; else argsString += Convert.ToChar(payloadArray[i]); } tagAnalysis += AppResources.TNF + " = " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += AppResources.AbsUriType + "\n"; tagAnalysis += AppResources.Param1 + " " + hexVal(param1) + "\n"; tagAnalysis += AppResources.Param2 + " " + hexVal(param2) + "\n"; tagAnalysis += AppResources.Param3 + " " + hexVal(param3) + "\n"; tagAnalysis += "\n"; tagAnalysis += appendNfcMessageFlags(recordFlags); tagAnalysis += AppResources.MsgTextHdr + "\n"; tagAnalysis += messageText + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.MsgBytesHdr + "\n"; tagAnalysis += messageBytes + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.URIHdr + " " + typeString + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.ArgsHdr + " " + argsString + "\n"; tagAnalysis += "\n"; } else if (typeNameFormat(recordFlags) == 0x04) { // NFC Forum External Type tagAnalysis += AppResources.TNF + " = " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += AppResources.ExternalType + "\n"; tagAnalysis += "\n"; tagAnalysis += appendNfcMessageFlags(recordFlags); tagAnalysis += AppResources.MsgTextHdr + "\n"; tagAnalysis += messageText + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.MsgBytesHdr + "\n"; tagAnalysis += messageBytes + "\n"; tagAnalysis += "\n"; } else { // Currently unsupported Type tagAnalysis += AppResources.UnsupportedType + " " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.TNF + " = " + Convert.ToString(typeNameFormat(recordFlags), 16) + "\n"; tagAnalysis += AppResources.UnknownType + "\n"; tagAnalysis += "\n"; tagAnalysis += tagAnalysis += appendNfcMessageFlags(recordFlags); tagAnalysis += AppResources.MsgTextHdr + "\n"; tagAnalysis += messageText + "\n"; tagAnalysis += "\n"; tagAnalysis += AppResources.MsgBytesHdr + "\n"; tagAnalysis += messageBytes + "\n"; tagAnalysis += "\n"; } } WriteString(tagAnalysis); }
private async void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { // Get the raw NDEF message data as byte array var rawMsg = message.Data.ToArray(); NdefMessage ndefMessage = null; try { // Let the NDEF library parse the NDEF message out of the raw byte array ndefMessage = NdefMessage.FromByteArray(rawMsg); } catch (NdefException e) { SetStatusOutput(string.Format(_loader.GetString("InvalidNdef"), e.Message)); return; } // Analysis result var tagContents = new StringBuilder(); // Parse tag contents try { // Clear bitmap if the last tag contained an image SetStatusImage(null); // Parse the contents of the tag await ParseTagContents(ndefMessage, tagContents); // Update status text for UI SetStatusOutput(string.Format(_loader.GetString("StatusTagParsed"), tagContents)); } catch (Exception ex) { SetStatusOutput(string.Format(_loader.GetString("StatusNfcParsingError"), ex.Message)); } }
public NdefParser(ProximityMessage message) { var rawMsg = message.Data.ToArray(); raw = rawMsg; records = new List<NdefRecord>(); }
public string readUserTokenFromTag(ProximityMessage message) { var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(message.Data); byte[] bytes = new byte[message.Data.Length]; dataReader.ReadBytes(bytes); var data = Encoding.ASCII.GetString(bytes, 0, (int)message.Data.Length); var userToken = data.Substring(7); return userToken; }
private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { var rawMsg = message.Data.ToArray(); var ndefMessage = NdefMessage.FromByteArray(rawMsg); ////// Loop over all records contained in the NDEF message foreach (NdefRecord record in ndefMessage) { if (NdefTextRecord.IsRecordType(record)) { // Convert and extract URI info var textRecord = new NdefTextRecord(record); string[] str = textRecord.Text.Split('|'); var Floor_st = str[0]; var Zone_st = str[1]; var latitude = str[2]; var longtitude = str[3]; Latitud_do = double.Parse(latitude); Longtitude_do = double.Parse(longtitude); SetLogStatus("Floor: " + Floor_st + " Zone: " + Zone_st); SetFloorStatus("Latitude: " + latitude + " Longitude: " + longtitude); store.AddDb(Floor_st, Zone_st, Latitud_do, Longtitude_do); } } <<<<<<< HEAD }
void messageReceivedHandler(ProximityDevice device, ProximityMessage message) { var data = DataReader.FromBuffer(message.Data); //uint bla = 1; //data.InputStreamOptions. data.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8; //System.Diagnostics.Debug.WriteLine("data"+data.ReadString(bla)); //MessageBox.Show("URL received"); HttpWebRequest poster = WebRequest.Create(new Uri("http://easypaytnw.herokuapp.com/reduce_credit")) as HttpWebRequest; poster.Method = "POST"; poster.ContentType = "application/x-www-form-urlencoded"; poster.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), poster); // Write message parsing code here... }
private void ReceiveMessage(ProximityDevice device, ProximityMessage message) { Dispatcher.BeginInvoke(() => { var @event = new MessageReceivedNfcEvent(); Events.Add(@event); } ); }
private void MessageReceived(ProximityDevice sender, ProximityMessage message) { Debug.WriteLine("Recebida de {0}:'{1}'", sender.DeviceId, message.DataAsString); mensagens.Text += "\n" + message.DataAsString; }
private async void messageReceivedHandler(ProximityDevice sender, ProximityMessage message) { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this.OutputString("Message Received"); this.OutputString("Sender is: " + sender.DeviceId); this.OutputString("He said that: " + message.DataAsString); }); }
private void messageReceived(ProximityDevice sender, ProximityMessage message) { String tagAnalysis = "*** " + AppResources.MsgRcvd + " ***\n"; tagAnalysis += AppResources.MsgTypeHdr + " " + message.MessageType + ".\n\n"; WriteString(tagAnalysis); }
/// <summary> /// Parses the details from the given message. The output is a string /// that can be appended into the log. /// </summary> /// <param name="message">The message to parse.</param> /// <returns>The parsed details as a string.</returns> private string ParseNDEF(ProximityMessage message) { var output = ""; using (var buf = DataReader.FromBuffer(message.Data)) { NdefRecordUtility.ReadNdefRecord(buf,recordList); for (int i = 0, recordNumber = 0, spRecordNumber = 0; i < recordList.Count; i++) { NdefRecord record = recordList.ElementAt(i); if (!record.IsSpRecord ) { if (System.Text.Encoding.UTF8.GetString(record.Type, 0, record.TypeLength) == "Sp") { output = output + "\n --End of Record No." + recordNumber; spRecordNumber = 0; continue; } else { recordNumber++; output = output + "\n --Record No." + recordNumber; } } else { if (spRecordNumber == 0) { recordNumber++; output = output + "\n --Record No." + recordNumber; } spRecordNumber++; output = output + "\n Sp sub-record No." + spRecordNumber; } output = output + "\n MB:" + ((record.Mb) ? "1;" : "0;"); output = output + " ME:" + ((record.Me) ? "1;" : "0;"); output = output + " CF:" + ((record.Cf) ? "1;" : "0;"); output = output + " SR:" + ((record.Sr) ? "1;" : "0;"); output = output + " IL:" + ((record.Il) ? "1;" : "0;"); string typeName = NdefRecordUtility.GetTypeNameFormat(record); if (record.TypeLength > 0) { output = output + "\n Type: " + typeName + ":" + System.Text.Encoding.UTF8.GetString(record.Type, 0, record.TypeLength); } if ((record.Il) && (record.IdLength > 0)) { output = output + "\n Id:" + System.Text.Encoding.UTF8.GetString(record.Id, 0, record.IdLength); } if ((record.PayloadLength > 0) && (record.Payload != null)) { if ((record.Tnf == 0x01) && (System.Text.Encoding.UTF8.GetString(record.Type, 0, record.TypeLength) == "U")) { NdefUriRtd uri = new NdefUriRtd(); NdefRecordUtility.ReadUriRtd(record, uri); output = output + "\n Uri: " + uri.GetFullUri(); } else if ((record.Tnf == 0x01) && (System.Text.Encoding.UTF8.GetString(record.Type, 0, record.TypeLength) == "T")) { NdefTextRtd text = new NdefTextRtd(); NdefRecordUtility.ReadTextRtd(record, text); output = output + "\n Language: " + text.Language; output = output + "\n Encoding: " + text.Encoding; output = output + "\n Text: " + text.Text; } else { if (record.Tnf==0x01) { output = output + "\n Payload:" + System.Text.Encoding.UTF8.GetString(record.Payload, 0, record.Payload.Length); } } } if (!record.IsSpRecord) { output = output + "\n --End of Record No." + recordNumber; } } } return output; }
private void writeableTagReceived(ProximityDevice sender, ProximityMessage message) { String tagAnalysis = "*** " + AppResources.MsgRcvd + " ***\n"; tagAnalysis += AppResources.MsgTypeHdr + " " + message.MessageType + ".\n"; DataReader dataReader = DataReader.FromBuffer(message.Data); dataReader.ByteOrder = Windows.Storage.Streams.ByteOrder.LittleEndian; int maxLength = dataReader.ReadInt32(); tagAnalysis += AppResources.MaxLengthHdr + " " + maxLength.ToString() + " bytes\n"; WriteString(tagAnalysis + "\n"); }
async private void MessageReceivedHandler( ProximityDevice sender, ProximityMessage message ) { await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { StopSubscribingForMessage(); TextMessage.Text = @"Message Received!!"; TextRecieveMessage.Text = message.DataAsString; } ); }
void MessageReceived(ProximityDevice proximityDevice, ProximityMessage message) { rootPage.UpdateLog("Message received: " + message.DataAsString, ProximityDeviceOutputText); }
private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { // Get the raw NDEF message data as byte array var rawMsg = message.Data.ToArray(); // Let the NDEF library parse the NDEF message out of the raw byte array var ndefMessage = NdefMessage.FromByteArray(rawMsg); // Analysis result var tagContents = new StringBuilder(); // Loop over all records contained in the NDEF message foreach (NdefRecord record in ndefMessage) { // -------------------------------------------------------------------------- // Print generic information about the record if (record.Id != null && record.Id.Length > 0) { // Record ID (if present) tagContents.AppendFormat("Id: {0}\n", Encoding.UTF8.GetString(record.Id, 0, record.Id.Length)); } // Record type name, as human readable string tagContents.AppendFormat("Type name: {0}\n", ConvertTypeNameFormatToString(record.TypeNameFormat)); // Record type if (record.Type != null && record.Type.Length > 0) { tagContents.AppendFormat("Record type: {0}\n", Encoding.UTF8.GetString(record.Type, 0, record.Type.Length)); } // -------------------------------------------------------------------------- // Check the type of each record // Using 'true' as parameter for CheckSpecializedType() also checks for sub-types of records, // e.g., it will return the SMS record type if a URI record starts with "sms:" // If using 'false', a URI record will always be returned as Uri record and its contents won't be further analyzed // Currently recognized sub-types are: SMS, Mailto, Tel, Nokia Accessories, NearSpeak, WpSettings var specializedType = record.CheckSpecializedType(true); if (specializedType == typeof(NdefMailtoRecord)) { // -------------------------------------------------------------------------- // Convert and extract Mailto record info var mailtoRecord = new NdefMailtoRecord(record); tagContents.Append("-> Mailto record\n"); tagContents.AppendFormat("Address: {0}\n", mailtoRecord.Address); tagContents.AppendFormat("Subject: {0}\n", mailtoRecord.Subject); tagContents.AppendFormat("Body: {0}\n", mailtoRecord.Body); } else if (specializedType == typeof(NdefUriRecord)) { // -------------------------------------------------------------------------- // Convert and extract URI record info var uriRecord = new NdefUriRecord(record); tagContents.Append("-> URI record\n"); tagContents.AppendFormat("URI: {0}\n", uriRecord.Uri); } else if (specializedType == typeof(NdefSpRecord)) { // -------------------------------------------------------------------------- // Convert and extract Smart Poster info var spRecord = new NdefSpRecord(record); tagContents.Append("-> Smart Poster record\n"); tagContents.AppendFormat("URI: {0}", spRecord.Uri); tagContents.AppendFormat("Titles: {0}", spRecord.TitleCount()); if (spRecord.TitleCount() > 1) tagContents.AppendFormat("1. Title: {0}", spRecord.Titles[0].Text); tagContents.AppendFormat("Action set: {0}", spRecord.ActionInUse()); // You can also check the action (if in use by the record), // mime type and size of the linked content. } else if (specializedType == typeof (NdefLaunchAppRecord)) { // -------------------------------------------------------------------------- // Convert and extract LaunchApp record info var launchAppRecord = new NdefLaunchAppRecord(record); tagContents.Append("-> LaunchApp record" + Environment.NewLine); if (!string.IsNullOrEmpty(launchAppRecord.Arguments)) tagContents.AppendFormat("Arguments: {0}\n", launchAppRecord.Arguments); if (launchAppRecord.PlatformIds != null) { foreach (var platformIdTuple in launchAppRecord.PlatformIds) { if (platformIdTuple.Key != null) tagContents.AppendFormat("Platform: {0}\n", platformIdTuple.Key); if (platformIdTuple.Value != null) tagContents.AppendFormat("App ID: {0}\n", platformIdTuple.Value); } } } else { // Other type, not handled by this demo tagContents.Append("NDEF record not parsed by this demo app" + Environment.NewLine); } } // Update status text for UI SetStatusOutput(string.Format(AppResources.StatusTagParsed, tagContents)); }
/// <summary> /// Gets called when a message is received. Updates the UI by adding /// the details into the log and scrolling the log if necessary. /// Note that subscription for messages needs to be redone. /// </summary> /// <param name="sender">ProximityDevice instance</param> /// <param name="message">A message to be handled.</param> private void MessageReceived(ProximityDevice sender, ProximityMessage message) { Dispatcher.BeginInvoke(() => { if (device != null) { device.StopSubscribingForMessage(subscriptionId); } logText = logText + ParseNDEF(message); ScrollViewer.UpdateLayout(); ScrollViewer.ScrollToVerticalOffset(0); SubscribeForMessage(); }); }
void MessageReceived(ProximityDevice proximityDevice, ProximityMessage message) { var ignored = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { ProximityDeviceOutputText.Text += "Message received: " + message.DataAsString + "\n"; }); }