BluetoothListener.AcceptBluetooth клиент блокирует в 32Feet Windows 7

Мы создаем приложение для связи внешнего устройства с Windows PC (здесь мы используем Windows 7), в ПК мы используем Bluetooth-ключ.

когда мы попытались обнаружить и подключить устройство, это было успешно в Windows PC.

Но в части кода мы пытаемся подключить устройство, но это не удалось, и здесь мы используем 32feet.net для подключения устройства.

Ниже кода я пытаюсь подключить устройство.

////_serviceClassId = new Guid("9bde4762-89a6-418e-bacf-fcd82f1e0677");
        Guid serviceClass = BluetoothService.RFCommProtocol;
        int selectedIndex = device_list.SelectedIndex;
        BluetoothDeviceInfo selectedDevice = this.array[selectedIndex];
        var lsnr = new BluetoothListener(serviceClass);
        lsnr.Start();
        Task.Run(() => Listener(lsnr));

и метод слушателя

private void Listener(BluetoothListener lsnr)
    {
        try
        {
            while (true)
            {
                using (var client = lsnr.AcceptBluetoothClient())
                {
                    using (var streamReader = new StreamReader(client.GetStream()))
                    {
                        try
                        {
                            var content = streamReader.ReadToEnd();
                            if (!string.IsNullOrEmpty(content))
                            {
                                ////_responseAction(content);
                            }
                        }
                        catch (IOException)
                        {
                            client.Close();
                            break;
                        }
                    }
                }
            }
        }
        catch (Exception exception)
        {
            // todo handle the exception
            // for the sample it will be ignored
        }
    }

Если я запускаю приложение, оно будет заблокировано в lsnr.AcceptBluetoothClient() Может ли кто-нибудь помочь, что не так в этом?

Примечание. Устройство Bluetooth создало два порта, один из которых является входящим, а другой - исходящим, когда мы подключаемся через ПК.

1 ответ

Это потому, что он ждет, пока клиент не подключится. Вы должны запустить его в потоке, чтобы работать одновременно!

Другие вопросы по тегам