chrome.bluetooth

说明

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

清单

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

"bluetooth"

类型

AdapterState

属性

  • 地址

    string

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

  • 可用

    boolean

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

  • 正在探索

    boolean

    指明适配器目前是否正在发现。

  • name

    string

    直观易懂的适配器名称。

  • 供电

    boolean

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

BluetoothFilter

Chrome 67 及更高版本

属性

  • filterType

    FilterType 可选

    要应用于设备列表的过滤器类型。默认值为“all”。

  • 限制

    数字可选

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

Device

属性

  • 地址

    string

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

  • batteryPercentage

    数字可选

    Chrome 77 及更高版本

    设备的剩余电量。

  • 可连接

    布尔值 选填

    Chrome 48 及更高版本

    指示设备是否可连接。

  • 已连接

    布尔值 选填

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

  • 中转航班

    布尔值 选填

    Chrome 48 及更高版本

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

  • deviceClass

    数字可选

    设备的类别,一个由 http://www.bluetooth.org/en-us/specification/specified-numbers/baseband 定义的位字段。

  • deviceId

    数字可选

  • inquiryRssi

    数字可选

    Chrome 44 及更高版本

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

  • inquiryTxPower

    数字可选

    Chrome 44 及更高版本

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

  • name

    字符串(可选)

    直观易懂的设备名称。

  • 已配对

    布尔值 选填

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

  • productId

    数字可选

  • transport

    传输(可选)

    Chrome 76 及更高版本

    蓝牙设备的传输类型。

  • 类型

    DeviceType(可选)

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

  • uuid

    string[] 可选

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

  • vendorId

    数字可选

  • vendorIdSource

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

DeviceType

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

枚举

"modem"

"audio"

"keyboardMouseCombo"

FilterType

Chrome 67 及更高版本

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

枚举

Transport

Chrome 76 及更高版本

蓝牙设备的传输类型。

枚举

"le"

"dual"

VendorIdSource

供应商 ID 的分配授权方。

枚举

方法

getAdapterState()

Promise
chrome.bluetooth.getAdapterState(
  callback?: function,
)

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

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    (adapterInfo: AdapterState)=>void

    • adapterInfo

      包含适配器信息的对象。

返回

  • Promise<AdapterState>

    Chrome 91 及更高版本

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

getDevice()

Promise
chrome.bluetooth.getDevice(
  deviceAddress: string,
  callback?: function,
)

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

参数

  • deviceAddress

    string

    要获取的设备地址。

  • callback

    函数(可选)

    callback 参数如下所示:

    (deviceInfo: Device)=>void

    • deviceInfo

      包含设备信息的对象。

返回

  • Promise<设备>>

    Chrome 91 及更高版本

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

getDevices()

Promise
chrome.bluetooth.getDevices(
  filter?: BluetoothFilter,
  callback?: function,
)

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

参数

  • filter

    BluetoothFilter(可选)

    Chrome 67 及更高版本

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

  • callback

    函数(可选)

    callback 参数如下所示:

    (deviceInfos: Device[])=>void

    • deviceInfos

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

返回

  • Promise<设备[]>

    Chrome 91 及更高版本

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

startDiscovery()

Promise
chrome.bluetooth.startDiscovery(
  callback?: function,
)

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

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

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 91 及更高版本

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

stopDiscovery()

Promise
chrome.bluetooth.stopDiscovery(
  callback?: function,
)

停止发现。

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<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