コード例 #1
0
ファイル: NFC.android.cs プロジェクト: sborghini/Plugin.NFC
        /// <summary>
        /// Starts tags detection
        /// </summary>
        public void StartListening()
        {
            if (_nfcAdapter == null)
            {
                return;
            }

            var intent        = new Intent(CurrentActivity, CurrentActivity.GetType()).AddFlags(ActivityFlags.SingleTop);
            var pendingIntent = PendingIntent.GetActivity(CurrentActivity, 0, intent, 0);

            var ndefFilter = new IntentFilter(NfcAdapter.ActionNdefDiscovered);

            ndefFilter.AddDataType("*/*");

            var tagFilter = new IntentFilter(NfcAdapter.ActionTagDiscovered);

            tagFilter.AddCategory(Intent.CategoryDefault);

            var filters = new IntentFilter[] { ndefFilter, tagFilter };

            _nfcAdapter.EnableForegroundDispatch(CurrentActivity, pendingIntent, filters, null);

            _isListening = true;
            OnTagListeningStatusChanged?.Invoke(_isListening);
        }
コード例 #2
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
 /// <summary>
 /// Stops tag publishing
 /// </summary>
 public void StopPublishing()
 {
     _isWriting = _isFormatting = _customInvalidation = false;
     _tag       = null;
     NfcSession?.InvalidateSession();
     OnTagListeningStatusChanged?.Invoke(false);
 }
コード例 #3
0
 /// <summary>
 /// Starts tags detection
 /// </summary>
 public void StartListening()
 {
     _defaultDevice.DeviceArrived  += OnDeviceArrived;
     _defaultDevice.DeviceDeparted += OnDeviceDeparted;
     _ndefSubscriptionId            = _defaultDevice.SubscribeForMessage("NDEF", OnNdefMessageReceived);
     OnTagListeningStatusChanged?.Invoke(true);
 }
コード例 #4
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
 /// <summary>
 /// Starts tags detection
 /// </summary>
 public void StartListening()
 {
     NfcSession = new NFCNdefReaderSession(this, DispatchQueue.CurrentQueue, true)
     {
         AlertMessage = Configuration.Messages.NFCDialogAlertMessage
     };
     NfcSession?.BeginSession();
     OnTagListeningStatusChanged?.Invoke(true);
 }
コード例 #5
0
ファイル: NFC.android.cs プロジェクト: sborghini/Plugin.NFC
        /// <summary>
        /// Stops tags detection
        /// </summary>
        public void StopListening()
        {
            DisablePublishing();
            if (_nfcAdapter != null)
            {
                _nfcAdapter.DisableForegroundDispatch(CurrentActivity);
            }

            _isListening = false;
            OnTagListeningStatusChanged?.Invoke(_isListening);
        }
コード例 #6
0
        /// <summary>
        /// Stops tags detection
        /// </summary>
        public void StopListening()
        {
            _defaultDevice.DeviceArrived  -= OnDeviceArrived;
            _defaultDevice.DeviceDeparted -= OnDeviceDeparted;

            if (_ndefSubscriptionId != -1)
            {
                _defaultDevice.StopSubscribingForMessage(_ndefSubscriptionId);
                _ndefSubscriptionId = -1;
            }

            OnTagListeningStatusChanged?.Invoke(false);
        }
コード例 #7
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
        /// <summary>
        /// Starts tags detection
        /// </summary>
        public void StartListening()
        {
            _customInvalidation = false;
            _isWriting          = false;
            _isFormatting       = false;

            NfcSession = new NFCTagReaderSession(NFCPollingOption.Iso14443 | NFCPollingOption.Iso15693, this, DispatchQueue.CurrentQueue)
            {
                AlertMessage = Configuration.Messages.NFCDialogAlertMessage
            };
            NfcSession?.BeginSession();
            OnTagListeningStatusChanged?.Invoke(true);
        }
コード例 #8
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
 /// <summary>
 /// Invalidate the session
 /// </summary>
 /// <param name="session"><see cref="NFCTagReaderSession"/></param>
 /// <param name="message">Message to show</param>
 void Invalidate(NFCTagReaderSession session, string message = null)
 {
     _customInvalidation = true;
     if (string.IsNullOrWhiteSpace(message))
     {
         session.InvalidateSession();
     }
     else
     {
         session.InvalidateSession(message);
     }
     OnTagListeningStatusChanged?.Invoke(false);
 }
コード例 #9
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
        /// <summary>
        /// Starts tag publishing (writing or formatting)
        /// </summary>
        /// <param name="clearMessage">Format tag</param>
        public void StartPublishing(bool clearMessage = false)
        {
            if (!IsAvailable)
            {
                throw new InvalidOperationException(Configuration.Messages.NFCWritingNotSupported);
            }

            _customInvalidation = false;
            _isWriting          = true;
            _isFormatting       = clearMessage;

            NfcSession = new NFCTagReaderSession(NFCPollingOption.Iso14443 | NFCPollingOption.Iso15693, this, DispatchQueue.CurrentQueue)
            {
                AlertMessage = Configuration.Messages.NFCDialogAlertMessage
            };
            NfcSession?.BeginSession();
            OnTagListeningStatusChanged?.Invoke(true);
        }
コード例 #10
0
ファイル: NFC.iOS.cs プロジェクト: ryanhz/Plugin.NFC
 /// <summary>
 /// Stops tags detection
 /// </summary>
 public void StopListening()
 {
     NfcSession?.InvalidateSession();
     OnTagListeningStatusChanged?.Invoke(false);
 }