Как определить Bluetooth-адаптер с помощью Electron?

Можно ли обнаружить в Electron, если к ПК (Mac или Linux) подключен адаптер Bluetooth? Я использую библиотеку "bluetooth-serial-port" для связи через Bluetooth. Если адаптер BT не подключен к ПК, приложение продолжает перезагружаться.

Вот так приложение пытается найти устройства.

var btSerial = new (require('bluetooth-serial-port')).BluetoothSerialPort();

try {
    btSerial.inquire();
}
catch (e) {
    callback(new Error('something bad happened ' + e));
}
btSerial.on('failure', function(error){console.log(error);});

person user3828374    schedule 24.10.2017    source источник
comment
Как выглядит ваша реализация?   -  person kontrollanten    schedule 24.10.2017
comment
Вы получаете сообщение об ошибке в консоли во время перезагрузки приложения? Кстати, ваша последняя строка неполная, она должна заканчиваться на console.log(error)});   -  person kontrollanten    schedule 24.10.2017
comment
да, промахнулся. Приложение просто зависает. Инструменты разработчика показывают сообщение о том, что они отключены от основного процесса. Вот и все.   -  person user3828374    schedule 24.10.2017
comment
Окей. И код, который вы вставили, запускается в основном процессе? Вы пытались удалить код построчно, чтобы определить, в какой части зависает приложение?   -  person kontrollanten    schedule 24.10.2017
comment
да, он работает в основном процессе. Строка, вызывающая проблему, - это btSerial.inquire (); когда я это комментирую, приложение работает нормально.   -  person user3828374    schedule 24.10.2017
comment
На вашем компьютере установлено устройство Bluetooth?   -  person kontrollanten    schedule 24.10.2017
comment
Проверяли ли вы этот проект для другого подхода (с использованием веб-Bluetooth)?   -  person kontrollanten    schedule 24.10.2017
comment
на одном ПК с установленным адаптером bluetooth работает отлично. На другом без блютуза нет. Нет, не видел этот проект. Я проверю его. Спасибо.   -  person user3828374    schedule 24.10.2017


Ответы (2)


Согласно этой проблеме на GitHub bluetooth-serial-port выйдет из строя, когда На компьютере не установлено устройство Bluetooth.

Насколько я знаю, у Electron нет API для bluetooth. В зависимости от вашего варианта использования вы можете использовать web bluetooth, чтобы использовать bluetooth (или просто проверьте, есть ли bluetooth на компьютере). Посетите electronic-web-bluetooth на GitHub, чтобы увидеть рабочий пример.

person kontrollanten    schedule 24.10.2017

Вы можете использовать inquireSync (), чтобы избежать сбоя

try {
    btSerial.inquireSync();
}
catch (e){
    callback(new Error('something bad happened ' + e));
}
person walktewy    schedule 20.06.2019