public void Start()
        {
            if (_isRunning)
            {
                return;
            }

            // subscribe to events
            _attachWatcher = new ManagementEventWatcher("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity' and TargetInstance.service ='BthEnum'");
            _detachWatcher = new ManagementEventWatcher("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity' and TargetInstance.service ='BthEnum'");

            _attachWatcher.EventArrived += new EventArrivedEventHandler(OnInstanceCreation);
            _detachWatcher.EventArrived += new EventArrivedEventHandler(OnInstanceDeletion);

            _attachWatcher.Start();
            _detachWatcher.Start();

            _isRunning = true;

            // see if already attached
            if (IsLocalRadioAttached())
            {
                LocalRadioStateChanged?.Invoke(this, StateType.Attached);
            }
        }
 private void OnInstanceDeletion(object obj, EventArrivedEventArgs e)
 {
     try
     {
         LocalRadioStateChanged?.Invoke(this, StateType.Detached);
     }
     catch (Exception) { /* Currently ignore all errors*/ }
 }