关于Node.js检测蓝牙适配器的心得
关于Node.js检测蓝牙适配器的心得
手头上有个Node.js项目需要用到蓝牙设备,关于这方面的库的选择并不多,bluetooth-hci-socket是个不错的库,支持不少主流蓝牙适配器,例如淘宝上常见的CSR8510 A10芯片。
截止到发稿前(2019-09-28),发布在npm上的bluetooth-hci-socket还仅仅停留在0.5.1的版本,而该版本尚不支持蓝牙适配器的检测。
抱着一线希望,我查了查bluetooth-hci-socket的github主页,发现该项目源代码的package.json里版本号是0.5.2。也许新版本会有新功能吧?
扒了下examples文件夹里有个文件叫list-devices-test.js,看名字好像有希望喔!
于是我立马下载了node-bluetooth-hci-socket项目,npm install恢复包之后,跑了下list-devices-test.js,果然能返回蓝牙适配器列表。
后面的报错是因为用了2种方式调用,Windows等系统用usb方式,Linux等系统用native方式
然后再把node-bluetooth-hci-socket项目里除了package.json以外的所有文件复制到我项目的node_modules/bluetooth-hci-socket下面,覆盖掉原来的文件。然后用以下代码即可调用:
//检测蓝牙适配器 console.log("检测蓝牙适配器..."); var UsbBluetoothHciSocket = require('bluetooth-hci-socket'); var usbBluetoothHciSocket = new UsbBluetoothHciSocket(); var usbDevices=usbBluetoothHciSocket.getDeviceList(); if (usbDevices.length > 0) { console.log("检测到蓝牙适配器"); }