private NdefRecord GenerateAppRecord() { NdefAndroidAppRecord rec = new NdefAndroidAppRecord { PackageName = FLAGCARRIER_APP_REC }; return(rec); }
static void Main(string[] args) { // Dynamically construct some more NDEF records var spRecord = new NdefSpRecord { Uri = "http://andijakl.github.io/ndef-nfc/", NfcAction = NdefSpActRecord.NfcActionType.DoAction }; spRecord.AddTitle(new NdefTextRecord { LanguageCode = "en", Text = "NFC Library" }); spRecord.AddTitle(new NdefTextRecord { LanguageCode = "de", Text = "NFC Bibliothek" }); NfcRecords.Add("SmartPoster", spRecord); // Ensure the path exists var tagsDirectory = Path.Combine(Environment.CurrentDirectory, FileDirectory); Directory.CreateDirectory(tagsDirectory); // Write tag contents to files foreach (var curNdefRecord in NfcRecords) { WriteTagFile(tagsDirectory, curNdefRecord.Key, curNdefRecord.Value); } // Multi-record file var record1 = new NdefUriRecord { Uri = "http://www.twitter.com" }; var record2 = new NdefAndroidAppRecord { PackageName = "com.twitter.android" }; var twoRecordsMsg = new NdefMessage { record1, record2 }; WriteTagFile(tagsDirectory, "TwoRecords", twoRecordsMsg); var record3 = new NdefRecord { TypeNameFormat = NdefRecord.TypeNameFormatType.ExternalRtd, Type = Encoding.UTF8.GetBytes("custom.com:myapp") }; var threeRecordsMsg = new NdefMessage { record1, record3, record2 }; WriteTagFile(tagsDirectory, "ThreeRecords", threeRecordsMsg); // Success message on output Console.WriteLine("Generated {0} tag files in {1}.", NfcRecords.Count, tagsDirectory); Debug.WriteLine("Generated {0} tag files in {1}.", NfcRecords.Count, tagsDirectory); }
//-------------------------------------------------------------------------wiadomosc NDEF private NdefMessage mNdefMessage() { var validateRecord = new NdefTextRecord { Text = "ngi8aw6", LanguageCode = "en" }; var deviceNameRecord = new NdefTextRecord { Text = deviceName, LanguageCode = "en" }; var fileNameRecord = new NdefTextRecord { Text = file.Name, LanguageCode = "en" }; var fileSizeRecord = new NdefTextRecord { Text = fileSize.ToString(), LanguageCode = "en" }; var androidAppRecord = new NdefAndroidAppRecord { PackageName = "com.nfcbluetoothapp.nfcbluetoothapp" }; return(new NdefMessage { validateRecord, deviceNameRecord, fileNameRecord, fileSizeRecord, androidAppRecord }); }
private bool NfcTag_ReadWrite() { try { var spRecord = new NdefSpRecord { Uri = "", NfcAction = NdefSpActRecord.NfcActionType.DoAction }; spRecord.AddTitle(new NdefTextRecord { LanguageCode = "en", Text = "NFC Library" }); spRecord.AddTitle(new NdefTextRecord { LanguageCode = "de", Text = "NFC Bibliothek" }); NfcTagGenerator.NfcRecords.Add("SmartPoster", spRecord); // Ensure the path exists var tagsDirectory = Path.Combine(Environment.CurrentDirectory, NfcTagGenerator.FileDirectory); Directory.CreateDirectory(tagsDirectory); // Write tag contents to files foreach (var curNdefRecord in NfcTagGenerator.NfcRecords) { NfcTagGenerator.WriteTagFile(tagsDirectory, curNdefRecord.Key, curNdefRecord.Value); } // Multi-record file var record1 = new NdefUriRecord { Uri = "https://www.twitter.com" }; var record2 = new NdefAndroidAppRecord { PackageName = "com.twitter.android" }; var twoRecordsMsg = new NdefMessage { record1, record2 }; NfcTagGenerator.WriteTagFile(tagsDirectory, "TwoRecords", twoRecordsMsg); var record3 = new NdefRecord { TypeNameFormat = NdefRecord.TypeNameFormatType.ExternalRtd, Type = Encoding.UTF8.GetBytes("custom.com:myapp") }; var threeRecordsMsg = new NdefMessage { record1, record3, record2 }; NfcTagGenerator.WriteTagFile(tagsDirectory, "ThreeRecords", threeRecordsMsg); // Success message on output Console.WriteLine("Generated {0} tag files in {1}.", NfcTagGenerator.NfcRecords.Count, tagsDirectory); Debug.WriteLine("Generated {0} tag files in {1}.", NfcTagGenerator.NfcRecords.Count, tagsDirectory); return(true); } catch (NdefException ex) { return(false); } catch (Exception ex) { return(false); } }
private void nfcService_MessageReceivedCompleted(ProximityMessage message) { if (message.MessageType == "WriteableTag") { Int32 size = System.BitConverter.ToInt32(message.Data.ToArray(), 0); tagSize = size; LogMessage(AppResources.NfcWriteableTagSize + " " + size + " bytes", NfcLogItem.INFO_ICON); } else if (message.MessageType == "WindowsMime") { var buffer = message.Data.ToArray(); int mimesize = 0; for (mimesize = 0; mimesize < 256 && buffer[mimesize] != 0; ++mimesize) { } ; var mimeType = Encoding.UTF8.GetString(buffer, 0, mimesize); string extra = AppResources.NdefRecordMimeType + ": " + mimeType; LogMessage(AppResources.NdefMessageRecordType + ": WindowsMime", NfcLogItem.INFO_ICON, extra); return; } else if (message.MessageType == "NDEF:Unknown") { LogMessage(AppResources.NdefMessageRecordType + ": " + AppResources.NdefUnknown, NfcLogItem.INFO_ICON); return; } else if (message.MessageType == "NDEF") { var rawMsg = message.Data.ToArray(); var ndefMessage = NdefMessage.FromByteArray(rawMsg); // Loop over all records contained in the NDEF message string messageInformation = ""; foreach (NdefRecord record in ndefMessage) { string extra = ""; messageInformation = AppResources.NdefMessageRecordType + ": " + Encoding.UTF8.GetString(record.Type, 0, record.Type.Length); //if the record is a Smart Poster if (record.CheckSpecializedType(false) == typeof(NdefSpRecord)) { // Convert and extract Smart Poster info var spRecord = new NdefSpRecord(record); extra = AppResources.NdefSpUri + ": " + spRecord.Uri; extra += "\n" + AppResources.NdefSpTitles + ": " + spRecord.TitleCount(); extra += "\n" + AppResources.NdefSpTitle + ": " + spRecord.Titles[0].Text; if (spRecord.ActionInUse()) { extra += "\n" + AppResources.NdefSpAction + ": " + spRecord.NfcAction; } LogMessage(messageInformation, NfcLogItem.INFO_ICON, extra); } if (record.CheckSpecializedType(false) == typeof(NdefUriRecord)) { var uriRecord = new NdefUriRecord(record); extra = AppResources.NdefSpUri + ": " + uriRecord.Uri; LogMessage(messageInformation, NfcLogItem.INFO_ICON, extra); } if (record.CheckSpecializedType(false) == typeof(NdefTextRecord)) { var textRecord = new NdefTextRecord(record); extra = AppResources.NdefTextRecordText + ": " + textRecord.Text; extra += "\n" + AppResources.NdefTextRecordLanguage + ": " + textRecord.LanguageCode; LogMessage(messageInformation, NfcLogItem.INFO_ICON, extra); } if (record.CheckSpecializedType(false) == typeof(NdefLaunchAppRecord)) { var launchAppRecord = new NdefLaunchAppRecord(record); foreach (KeyValuePair <string, string> entry in launchAppRecord.PlatformIds) { extra += AppResources.NdefLaunchAppRecordPlatform + ": " + entry.Key + "\n"; extra += AppResources.NdefLaunchAppRecordId + ": " + entry.Value + "\n"; } extra = extra.TrimEnd('\n'); LogMessage(messageInformation, NfcLogItem.INFO_ICON, extra); } if (record.CheckSpecializedType(false) == typeof(NdefAndroidAppRecord)) { var androidRecord = new NdefAndroidAppRecord(record); extra = AppResources.NdefAAR + ": " + androidRecord.PackageName; LogMessage(messageInformation, NfcLogItem.INFO_ICON, extra); } } return; } }