chrome.bluetooth

说明

使用 chrome.bluetooth API 连接到蓝牙设备。所有函数都通过 chrome.runtime.lastError 报告失败。

清单

必须在清单中声明以下键才能使用此 API。

"bluetooth"

类型

AdapterState

属性

  • 地址

    字符串

    适配器的地址,格式为“XX:XX:XX:XX:XX:XX”。

  • 可用

    布尔值

    指示适配器是否可用(即是否已启用)。

  • 发现

    布尔值

    指示适配器当前是否正在发现。

  • name

    字符串

    人类可读的适配器名称。

  • 供电

    布尔值

    指示适配器是否已接通电源。

BluetoothFilter

Chrome 67 及更高版本

属性

  • filterType

    FilterType 可选

    要应用于设备列表的过滤条件类型。默认值为 all。

  • 限制

    编号(选填

    要返回的蓝牙设备数量上限。如果未指定,则默认值为 0(无限制)。

Device

属性

  • 地址

    字符串

    设备地址,格式为“XX:XX:XX:XX:XX:XX”。

  • batteryPercentage

    编号(选填

    Chrome 77 及更高版本

    设备的剩余电量。

  • 可连接

    布尔值(可选)

    Chrome 48 及更高版本

    指示设备是否可连接。

  • 已连接

    布尔值(可选)

    指示设备当前是否已连接到系统。

  • 中转航班

    布尔值(可选)

    Chrome 48 及更高版本

    指示设备当前是否正在连接到系统。

  • deviceClass

    编号(选填

    设备的类别,由 http://www.bluetooth.org/zh-CN/specification/allocate-numbers/baseband 定义的位字段。

  • deviceId

    编号(选填

  • inquiryRssi

    编号(选填

    Chrome 44 及更高版本

    已接收信号强度(以 dBm 为单位)。此字段仅在发现期间可用且有效。在发现范围之外,其值未指定。

  • inquiryTxPower

    编号(选填

    Chrome 44 及更高版本

    传输的功率电平。此字段仅适用于 AD 中包含此字段的 LE 设备。密钥仅在发现期间可用且有效。

  • name

    字符串(可选)

    人类可读的设备名称。

  • 已配对

    布尔值(可选)

    指示设备是否与系统配对。

  • productId

    编号(选填

  • transport

    交通 可选

    Chrome 76 及更高版本

    蓝牙设备的传输类型。

  • 类型

    DeviceType 选填

    设备的类型(如果 Chrome 可以识别)。这是从 deviceClass 字段获取的,仅代表一小部分可能的设备类型。如有疑问,您应直接使用 deviceClass 字段。

  • uuids

    string[] 选填

    设备通告的协议、配置文件和服务的 UUID。对于传统蓝牙设备,此列表是从 EIR 数据和 SDP 表中获取的。对于低功耗设备,此列表是从 AD 和 GATT 主要服务获取的。对于双模式设备,可以通过两者获取。

  • vendorId

    编号(选填

  • vendorIdSource

    设备的 ID 记录(如果有)。

DeviceType

Chrome 可识别的常见设备类型。

枚举

“computer”

“电话”

“调制解调器”

"audio"

"carAudio"

“视频”

"peripheral"

“操纵杆”

"游戏手柄"

"键盘"

“mouse”

“平板电脑”

"keyboardMouseCombo"

FilterType

Chrome 67 及更高版本

用于过滤蓝牙设备的类型。

枚举

“全部”

“已知”

Transport

Chrome 76 及更高版本

蓝牙设备的传输类型。

枚举

“无效”

"classic"

"le"

"dual"

VendorIdSource

供应商 ID 的分配授权机构。

枚举

“bluetooth”

“usb”

方法

getAdapterState()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.bluetooth.getAdapterState(
  callback?: function,
)

获取有关蓝牙适配器的信息。

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    (adapterInfo: AdapterState) => void

    • adapterInfo

      包含适配器信息的对象。

返回

  • Promise&lt;AdapterState&gt;

    Chrome 91 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getDevice()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.bluetooth.getDevice(
  deviceAddress: string,
  callback?: function,
)

获取系统已知的蓝牙设备的相关信息。

参数

  • deviceAddress

    字符串

    要获取的设备的地址。

  • callback

    函数(可选)

    callback 参数如下所示:

    (deviceInfo: Device) => void

    • deviceInfo

      包含设备信息的对象。

返回

  • Promise&lt;Device&gt;

    Chrome 91 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getDevices()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.bluetooth.getDevices(
  filter?: BluetoothFilter,
  callback?: function,
)

获取系统已知的蓝牙设备列表,包括已配对设备和最近发现的设备。

参数

  • filter
    Chrome 67 及更高版本

    一些用于过滤返回的蓝牙设备列表的条件。如果过滤器未设置或设为 {},返回的设备列表将包含所有蓝牙设备。目前,只有 ChromeOS 支持此功能,对于其他平台,系统会返回完整列表。

  • callback

    函数(可选)

    callback 参数如下所示:

    (deviceInfos: Device[]) => void

    • deviceInfos

      包含设备信息的对象数组。

返回

  • Promise<设备 []>

    Chrome 91 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

startDiscovery()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.bluetooth.startDiscovery(
  callback?: function,
)

开始探索。新发现的设备将通过 onDeviceAdded 事件返回。必须使用 getDevices 获取之前发现的适配器已知设备,并且只有在这些设备的相关信息发生更改时,才会使用 onDeviceChanged 事件进行更新。

如果此应用已调用 startDiscovery,将无法启动 Discovery。发现可能会占用大量资源:应尽快调用 stopDiscovery。

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • 承诺<void>

    Chrome 91 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

stopDiscovery()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.bluetooth.stopDiscovery(
  callback?: function,
)

停止发现。

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • 承诺<void>

    Chrome 91 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

事件

onAdapterStateChanged

chrome.bluetooth.onAdapterStateChanged.addListener(
  callback: function,
)

在蓝牙适配器的状态改变时触发。

参数

onDeviceAdded

chrome.bluetooth.onDeviceAdded.addListener(
  callback: function,
)

有新蓝牙设备的相关信息可用时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (device: Device) => void

onDeviceChanged

chrome.bluetooth.onDeviceChanged.addListener(
  callback: function,
)

在已知蓝牙设备的相关信息发生更改时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (device: Device) => void

onDeviceRemoved

chrome.bluetooth.onDeviceRemoved.addListener(
  callback: function,
)

如先前发现的蓝牙设备在覆盖范围外的时长达到可观,可以视为再次无法使用,以及配对的设备被移除,均会触发此触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (device: Device) => void