Example #1
0
        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);
        }
Example #2
0
        public void DetachReader()
        {
            isDetached    = true;
            customEvent   = null;
            CardDataEvent = null;

            if (reader == null)
            {
                return;
            }

            reader.CardAdded   -= OnCardAdded;
            reader.CardRemoved -= OnCardRemoved;

            reader = null;
        }