我一直在尝试使用 chrome.bluetoothLowEnergy API 通过 BLE 将 iPhone 5 连接到 OSX Chrome(版本 38.0.2096.0 dev)。
我正在使用BLE Utility在我的 iPhone 上模拟电池服务。我可以发现该服务并使用其他手机或 OSX utility 连接到它,但我在使用 chrome 时遇到问题。我可以看到列出了我的设备,但没有发现任何服务,当我尝试连接到该设备时,连接失败并显示以下消息:
Operation failed
如果有任何帮助,我将不胜感激。
这是我的代码:
manifest.json
{
"name": "BLE Test",
"description": "Chrome BLE Test",
"version": "1",
"app": {
"background": {
"scripts": ["background.js"]
}
},
"bluetooth": {
"low_energy": true,
"uuids": ["180f"]
}
}
index.html
<!DOCTYPE HTML>
<html>
<head>
<title>Chrome BLE Test</title>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
</body>
</html>
script.js
function main() {
var onGetServicesCallback = function(services) {
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError.message);
return;
}
console.log('Services:', services.length);
if (!services) {
console.log('No services');
return;
}
services.forEach(function(service) {
console.log(service);
});
}
chrome.bluetooth.getDevices(function(devices) {
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError.message);
return;
}
console.log('Found devices:', devices.length);
if (devices) {
devices.forEach(function(device) {
console.log('Device name:', device.name);
chrome.bluetoothLowEnergy.getServices(device.address, onGetServicesCallback);
chrome.bluetoothLowEnergy.connect(device.address, function() {
if (chrome.runtime.lastError) {
console.log('Connection failed:', chrome.runtime.lastError.message);
return;
}
console.log('Connected!');
});
});
}
});
}
document.addEventListener('DOMContentLoaded', main);
最佳答案
据我所知,Mac 上的 BLE 实现尚未完成。 Chrome 问题跟踪器是跟踪 API 开发的一个好地方。 This is a link特别是与 Mac 相关的问题。要查看所有蓝牙更改,只需在未决问题下搜索蓝牙即可。
关于javascript - 使用 chrome.bluetoothLowEnergy API 连接到 iOS 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880860/