Ejemplo n.º 1
0
        private NdefRecord GenerateAppRecord()
        {
            NdefAndroidAppRecord rec = new NdefAndroidAppRecord
            {
                PackageName = FLAGCARRIER_APP_REC
            };

            return(rec);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        //-------------------------------------------------------------------------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
            });
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }