Ejemplo n.º 1
0
 /// <summary>
 /// Stops tag publishing
 /// </summary>
 public void StopPublishing()
 {
     _isWriting = _isFormatting = _customInvalidation = false;
     _tag       = null;
     NfcSession?.InvalidateSession();
     OnTagListeningStatusChanged?.Invoke(false);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Stops tags detection
 /// </summary>
 public void StopListening()
 {
     NfcSession?.InvalidateSession();
     OnTagListeningStatusChanged?.Invoke(false);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Write or Clear a NDEF message
        /// </summary>
        /// <param name="tag"><see cref="INFCTag"/></param>
        /// <param name="tagInfo"><see cref="ITagInfo"/></param>
        /// <param name="clearMessage">Clear Message</param>
        /// <param name="makeReadOnly">Make a tag read-only</param>
        internal void WriteOrClearMessage(INFCTag tag, ITagInfo tagInfo, bool clearMessage = false, bool makeReadOnly = false)
        {
            if (NfcSession == null)
            {
                return;
            }

            if (tag == null)
            {
                Invalidate(NfcSession, Configuration.Messages.NFCErrorMissingTag);
                return;
            }

            if (tagInfo == null)
            {
                Invalidate(NfcSession, Configuration.Messages.NFCErrorMissingTagInfo);
                return;
            }

            var ndefTag = GetNdefTag(tag);

            if (ndefTag == null)
            {
                Invalidate(NfcSession, Configuration.Messages.NFCErrorNotCompliantTag);
                return;
            }

            try
            {
                if (!ndefTag.Available)
                {
                    NfcSession.ConnectTo(tag, (error) =>
                    {
                        if (error != null)
                        {
                            Invalidate(NfcSession, error.LocalizedDescription);
                            return;
                        }

                        ExecuteWriteOrClear(NfcSession, ndefTag, tagInfo, clearMessage);
                    });
                }
                else
                {
                    ExecuteWriteOrClear(NfcSession, ndefTag, tagInfo, clearMessage);
                }

                if (!clearMessage && makeReadOnly)
                {
                    MakeTagReadOnly(NfcSession, tag, ndefTag);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                OnTagDisconnected?.Invoke(null, EventArgs.Empty);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Stops tags detection
 /// </summary>
 public void StopListening() => NfcSession?.InvalidateSession();
Ejemplo n.º 5
0
 /// <summary>
 /// Stops tag publishing
 /// </summary>
 public void StopPublishing()
 {
     _isWriting = _isFormatting = _customInvalidation = false;
     _tag       = null;
     NfcSession?.InvalidateSession();
 }