WebBluetoothAPIで検出可能なデバイスが全て一覧に表示できるオプションが追加された



WebBluetoothAPIはW3Cで現在仕様策定中のため、アップデートが頻繁にされています。
Implementation Status

前回は、APIの基本的な使い方について紹介しました。
tkybpp.hatenablog.com

その中でも、接続するデバイスをfilterとして指定する必要があり、検出可能なデバイスを全て表示させるためには、強引な回避策があることをお伝えしました。

navigator.bluetooth.requestDevice({filters: anyDevice()})

function anyDevice() {
  return Array.from('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
      .map(c => ({namePrefix: c}))
      .concat({name: ''});
}

しかしながら、先日のアップデートにより、全てのデバイスを表示するオプションが追加されました。

let options = {};
options.acceptAllDevices = true;
navigator.bluetooth.requestDevice(options)

と指定するだけです。

こちらからテストすることが出来ます。
beaufortfrancois.github.io


実際に全て表示されることが確認できました。

f:id:tky_bpp:20161223185717p:plain


Bluetooth Low Energy: The Developer's Handbook

Bluetooth Low Energy: The Developer's Handbook

iOS×BLE Core Bluetoothプログラミング

iOS×BLE Core Bluetoothプログラミング

Bluetooth Low Energyをはじめよう (Make:PROJECTS)

Bluetooth Low Energyをはじめよう (Make:PROJECTS)