我今天面临蓝牙和网络应用程序的问题。
简介
首先,这是我的目标: 我想在Web应用程序中连接KDC(条形码扫描器)(可能用C#,ASP.Net Core和JS编写)。您可以在此处找到此扫描仪的型号和特性:koamtac.com/wp-content/uploads/KDC300.pdf。 这个项目的目标是主要在平板电脑和手机上使用这个网站,而不是使用扫描仪与Windows(但我们希望能够在计算机上看到网站) 可悲的是,Koamtac为Android应用程序提供了适用于Windows本地应用程序的SDK,但并不适用于Web应用程序......
BLE工具
考虑到这一目标,我发现了BLE技术和由谷歌提供的新的Web蓝牙API:Google Web Bluetooth API Implementations Status。 如您所见,我们可以将它与Windows一起使用来发现设备,但不能与它们连接。 (但是对于android 6+,可以同时执行这两种操作)。
这个工具似乎与我的项目一致,但目前我还不知道我的KDC是否可以用作BLE设备。我决定制作一个简单的Web应用程序,我可以测试我是否看到过KDC设备。
应用
navigator.bluetooth.requestDevice(
{
acceptAllDevices: true,
optionalServices: ['battery_service']
})
.then(device => {
console.log('> Found ' + device.name);
console.log('Connecting to GATT Server...');
return device.gatt.connect();
})
我是在一个github代表上做的,以获得授权Web蓝牙API所需的HTTPS协议。您可以在此处查看此应用:My GitHub Repository
最后,我尝试了3种不同状态的应用程序:
在给出我的结果之前,您可以在名为" Device_In_Range _...... "的图片中看到windows / android范围内的每个蓝牙设备。在Github Rep
结果
我有这些结果:
结论:
正如你所看到的,request_device的结果与windows 10和android 6不一样。但是当我们使用这些设备的蓝牙管理器时,我们看到完全相同的设备(每个request_device找到的设备总和)
我是蓝牙API领域的新手,我不知道为什么Android没有使用request_device显示所有蓝牙设备。
感谢为你提供帮助;)
编辑#1
似乎KDC 300不支持BLE。我目前正在寻找将蓝牙经典设备连接到网络应用的方法。如果有人有想法,你可以告诉我。如果我找不到任何有效的方法来解决它,我将尝试使用xamarin制作混合应用程序android / windows以使用本机蓝牙连接。