蓝牙

本文档介绍了如何使用蓝牙蓝牙套接字低蓝牙协议 Energy API,用于与蓝牙和蓝牙低功耗设备进行通信。

有关蓝牙的背景信息,请参阅官方蓝牙规范

清单要求

对于使用蓝牙的 Chrome 应用,请将 bluetooth 条目添加到清单中,并指定 您要实现的配置文件、协议或服务的 UUID 以及是否 您希望使用套接字和/或低功耗 API 实现这些 API。

例如,对于套接字实现:

"bluetooth": {
  "uuids": [ "1105", "1106" ],
  "socket": true
}

对于“低功耗”实现:

"bluetooth": {
  "uuids": [ "180D", "1809", "180F" ],
  "low_energy": true
}

如果只想访问适配器状态、发现附近的设备以及获取有关设备的基本信息, 只有条目本身是必填项:

"bluetooth": {}

适配器信息

获取适配器状态

要获取蓝牙适配器的状态,请使用 bluetooth.getAdapterState 方法:

chrome.bluetooth.getAdapterState(function(adapter) {
  console.log("Adapter " + adapter.address + ": " + adapter.name);
});

适配器通知

每当适配器状态发生变化时,系统都会发送 bluetooth.onAdapterStateChanged 事件。这可以 例如,用于确定适配器无线电何时打开或关闭。

var powered = false;
chrome.bluetooth.getAdapterState(function(adapter) {
  powered = adapter.powered;
});

chrome.bluetooth.onAdapterStateChanged.addListener(
  function(adapter) {
    if (adapter.powered != powered) {
      powered = adapter.powered;
      if (powered) {
        console.log("Adapter radio is on");
      } else {
        console.log("Adapter radio is off");
      }
    }
  });

设备信息

列出已知设备

要获取蓝牙适配器已知的设备列表,请使用 bluetooth.getDevices 方法:

chrome.bluetooth.getDevices(function(devices) {
  for (var i = 0; i < devices.length; i++) {
    console.log(devices[i].address);
  }
});

所有设备都会退回,包括已配对的设备和最近发现的设备。它不会 开始发现新设备(请参阅发现附近的设备)。

接收设备通知

您可以使用bluetooth.getDevices bluetooth.onDeviceAddedbluetooth.onDeviceChangedbluetooth.onDeviceRemoved 事件接收通知。

每当适配器发现或检测到设备时,系统都会发送 bluetooth.onDeviceAdded 事件 会连接到适配器:

chrome.bluetooth.onDeviceAdded.addListener(