/// <summary> /// Stops tag publishing /// </summary> public void StopPublishing() { _isWriting = _isFormatting = _customInvalidation = false; _tag = null; NfcSession?.InvalidateSession(); OnTagListeningStatusChanged?.Invoke(false); }
/// <summary> /// Stops tags detection /// </summary> public void StopListening() { NfcSession?.InvalidateSession(); OnTagListeningStatusChanged?.Invoke(false); }
/// <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); } }
/// <summary> /// Stops tags detection /// </summary> public void StopListening() => NfcSession?.InvalidateSession();
/// <summary> /// Stops tag publishing /// </summary> public void StopPublishing() { _isWriting = _isFormatting = _customInvalidation = false; _tag = null; NfcSession?.InvalidateSession(); }