private bool parseNfcUri(NdefRecord record)
        {
            var uri = record.ToUri();

            if (uri == null)
            {
                return(false);
            }

            if (uri.Host.Equals("v1.0.0"))
            {
                mVendor  = DEFAULT_VENDOR;
                mModel   = DEFAULT_MODEL;
                mVersion = DEFAULT_VERSION;
                return(true);
            }

            var segments = uri.PathSegments;

            if (segments.Count != 2)
            {
                return(false);
            }

            mVendor  = uri.Host;
            mModel   = ((String)segments[0]);
            mVersion = ((String)segments[1]);

            return(true);
        }
Example #2
0
        private void ReadNfcTag(Intent intent)
        {
            // Find first NDEF message
            var parcellableNdefMessages = intent.GetParcelableArrayExtra(NfcAdapter.ExtraNdefMessages);

            NdefMessage ndefMessage = null;

            if (parcellableNdefMessages != null && parcellableNdefMessages.Length > 0)
            {
                ndefMessage = parcellableNdefMessages[0] as NdefMessage;
                LogMessage("NDEF formatted NFC Tag discovered.");
            }
            else
            {
                LogMessage("Error: Tag is not NDEF formatted. This is unexpected.");
                return;
            }

            // Find first record in NDEF message
            NdefRecord ndefRecord  = null;
            var        ndefRecords = ndefMessage.GetRecords();

            if (ndefRecords != null && ndefRecords.Length > 0)
            {
                LogMessage("Using first NDEF record.");
                ndefRecord = ndefRecords[0];
            }
            else
            {
                LogMessage("Error: No records found in NDEF Message.");
                return;
            }

            // Log Uri to output
            LogMessage(String.Format("TAG Uri: {0}\n", ndefRecord.ToUri()));


            //var openUriIntent = new Intent(Android.Content.Intent.ActionView, ndefRecord.ToUri());
            //StartActivity(openUriIntent);
        }