javascript - 使用 chrome.bluetoothLowEnergy API 连接到 iOS 设备

标签 javascript google-chrome bluetooth bluetooth-lowenergy google-chrome-app

我一直在尝试使用 chrome.bluetoothLowEnergy API 通过 BLE 将 iPhone 5 连接到 OSX Chrome(版本 38.0.2096.0 dev)。

我正在使用BLE Utility在我的 iPhone 上模拟电池服务。我可以发现该服务并使用其他手机或 OSX utility 连接到它,但我在使用 chrome 时遇到问题。我可以看到列出了我的设备,但没有发现任何服务,当我尝试连接到该设备时,连接失败并显示以下消息:

Operation failed

如果有任何帮助,我将不胜感激。

这是我的代码:

ma​​nifest.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/

相关文章:

javascript - 如何删除默认图像图标

ios - 插入蓝牙耳机时 AVAudioEngine 使用错误的格式

通过 getElementsByClassName 的 Javascript 内联循环

javascript - Three.js - OrbitControls 不起作用

google-chrome - 打包应用程序的Dart源图

google-chrome - 使用 WebSockets 进行端口扫描

windows - 如何使用 PowerShell 列出我附近的蓝牙设备

android - Google Glass 触摸板操作对应的键盘按键是什么?

javascript - 如何在不涉及任何DOM元素的情况下实现事件驱动的JavaScript?

javascript - 如何调用数组