chrome和bluetooth - 连接,发现 - 如何使其工作?

问题描述 投票:3回答:1

我正在研究通过网页发现附近蓝牙设备的项目。

以下是我的限制: - 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>

这段代码让我可以将蓝牙设备与名为“battery_service”的服务与网页配对。它正在工作(morover) - 它打开“chrome系统”窗口,用于搜索附近的设备,并找到一个,如果我已经在窗口中配对它。如果它没有配对,它将什么也没找到。 Chrome说gatt服务器不存在所以我无法连接它,而对象有gatt属性,其gatt属性具有gatt属性(等等于无穷大)

无论如何它返回包含devicedevice.name属性的device.id对象。其他属性是undefined

我在互联网上找到的任何例子都没有为我工作。

所以这里是问题:

  1. 是否可以使用Windows作为开发平台?
  2. 是否可以使用android 5作为蓝牙外设?
  3. chrome.bluetooth对象和navigator.bluetooth对象有什么区别?每个教程都使用chrome.bluetooth,但它在我的chrome浏览器中是未定义的对象。 Navigator.bluetooth如前所述工作。
  4. 我发现chrome.bluetooth.startDiscovery但是navigator.bluetooth没有这样的方法,而chrome.bluetooth是空对象,我根本无法发现它。因为我甚至不想连接到设备,但只知道它的存在是否有可能在每次进入蓝牙范围时都不配对设备?
  5. 有没有工作的例子?
  6. 应该是窗户配对吗?我们是否需要出于安全原因配对已经与操作系统配对的Chrome设备?

我使用CHROME 56.0.2924.76 64bit。

谢谢你的帮助! Kalreg

google-chrome web bluetooth
1个回答
4
投票

首先让我说Windows 10支持Web蓝牙 在不久的将来 现在可用。定期查看Web Bluetooth implementation status页面。

Re:你的问题,你在那里结合了Bluetooth Chrome API(适用于Chrome应用)和Web Bluetooth API。由于Windows 10支持尚未完成,您将很难连接到GATT服务器。

  1. 是否可以使用Windows作为开发平台?

现在不行。很快就是。

  1. 是否可以使用android 5作为蓝牙外设?

是。我一直用BLE Peripheral Simulator Android应用程序这样做。

  1. chrome.bluetooth对象和navigator.bluetooth对象有什么区别?每个教程都使用chrome.bluetooth,但它在我的chrome浏览器中是未定义的对象。 Navigator.bluetooth如前所述工作。

chrome.bluetooth仅适用于Chrome Apps,而navigator.bluetooth可用于Chrome应用程序和网站,因为这是一个Web API。

  1. 我发现chrome.bluetooth.startDiscovery但是navigator.bluetooth没有这样的方法,而chrome.bluetooth是空对象,我根本无法发现它。因为我甚至不想连接到设备,但只知道它的存在是否有可能在每次进入蓝牙范围时都不配对设备?

navigator.bluetoothrequestDevice方法开始扫描。这将弹出一个选择器,用户可以从中选择一个设备。看看这个device info sample

  1. 有没有工作的例子?

https://googlechrome.github.io/samples/web-bluetooth/有很多

© www.soinside.com 2019 - 2024. All rights reserved.