本文档介绍了如何使用蓝牙、蓝牙套接字和低蓝牙协议 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.onDeviceAdded、bluetooth.onDeviceChanged 和 bluetooth.onDeviceRemoved 事件接收通知。
每当适配器发现或检测到设备时,系统都会发送 bluetooth.onDeviceAdded 事件 会连接到适配器:
chrome.bluetooth.onDeviceAdded.addListener(