Kal*_*reg 3 google-chrome bluetooth web
我正在研究通过网页发现附近蓝牙设备的项目。
以下是我的限制: - 在 Windows 7 或 10 下开发,手机上的 android 5 - 外围设备是蓝牙信标 - 中央是带有 android 6 的手机
首先,我做了一个看起来像这样的页面:
<html>
<head>
<script src="jquery-3.1.1.js"></script>
</head>
<body>
<div id="target" style="width: 100px; height: 100px; border: 1px solid red"></div>
<script>
$('#target').click(function() {
chrome.bluetooth.startDiscovery(function () {
navigator.bluetooth.requestDevice({ filters: [{ services:['battery_service'] }] })
.then(device => {
console.log(device);
return device.gatt.connect();
}).then(server => { console.log(server)}).catch(error => { console.log(error); });
})
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这段代码让我将蓝牙设备与名为“battery_service”的服务与网页配对。并且它正在工作(morover) - 它打开“chrome system”窗口以搜索附近的设备并找到一个,如果我已经在windows中配对它。如果没有更早配对,它将什么也找不到。Chrome 说 gatt 服务器不存在所以我无法连接它,并且对象具有 gatt 属性,该 gatt 属性具有 gatt 属性(依此类推到无穷大)
无论如何它返回device包含device.name和device.id属性的对象。其他属性是undefined。
我在互联网上找到的任何例子都没有对我有用。
所以这里有问题:
我使用 CHROME 56.0.2924.76 64 位。
谢谢你的帮助!卡雷格
首先让我说Windows 10 对 Web 蓝牙的支持将在不久的将来推出。定期查看Web 蓝牙实施状态页面。
回复:您的问题,您正在将Bluetooth Chrome API (for Chrome Apps) 和Web Bluetooth API 结合起来。由于 Windows 10 支持尚未完成,您将很难连接到 GATT 服务器。
- 可以使用windows作为开发平台吗?
现在不行。很快是的。
- 是否可以使用 android 5 作为蓝牙外设?
是的。我一直使用BLE Peripheral Simulator Android 应用程序这样做。
- chrome.bluetooth 对象和 navigator.bluetooth 对象有什么区别?每个教程都使用 chrome.bluetooth 但它在我的 chrome 浏览器中是未定义的对象。Navigator.bluetooth 的工作原理如前所述。
chrome.bluetooth仅在Chrome 应用程序navigator.bluetooth中可用,而可用于 Chrome 应用程序和网站,因为这是一个 Web API。
- 我找到了 chrome.bluetooth.startDiscovery 但 navigator.bluetooth 没有这样的方法,而 chrome.bluetooth 是空对象,我根本无法发现它。因为我什至不想连接到设备,但只知道它的存在是否可以在每次进入蓝牙范围时不配对设备?
navigator.bluetooth有requestDevice方法开始扫描。这将弹出一个选择器,用户可以从中选择一个设备。查看此设备信息示例
- 有没有工作的例子?
https://googlechrome.github.io/samples/web-bluetooth/ 上有很多