public async Task <bool> AttachReader(OnCardData onCardData) { isDetached = false; // check if we are already attached if (reader != null) { return(true); } // check to see if we can get the reader var deviceInfo = await SmartCardReaderUtils.GetFirstSmartCardReaderInfo(SmartCardReaderKind.Nfc); if (deviceInfo == null || isDetached) { return(false); } // instantiate reader reader = await SmartCardReader.FromIdAsync(deviceInfo.Id); if (!isDetached) { reader.CardAdded += OnCardAdded; reader.CardRemoved += OnCardRemoved; customEvent = onCardData; CardDataEvent += customEvent; } return(!isDetached); }
public void DetachReader() { isDetached = true; customEvent = null; CardDataEvent = null; if (reader == null) { return; } reader.CardAdded -= OnCardAdded; reader.CardRemoved -= OnCardRemoved; reader = null; }