说明
使用 chrome.bluetooth
API 连接到蓝牙设备。所有函数都通过 chrome.runtime.lastError 报告失败。
清单
类型
AdapterState
属性
-
地址
string
适配器的地址,格式为“XX:XX:XX:XX:XX:XX”。
-
可用
boolean
指示适配器是否可用(即已启用)。
-
正在探索
boolean
指明适配器目前是否正在发现。
-
name
string
直观易懂的适配器名称。
-
供电
boolean
指示适配器是否已接通电源。
BluetoothFilter
属性
-
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
用于过滤蓝牙设备的类型。
枚举
Transport
蓝牙设备的传输类型。
枚举
"le"
"dual"
VendorIdSource
供应商 ID 的分配授权方。
枚举
方法
getAdapterState()
chrome.bluetooth.getAdapterState(
callback?: function,
)
获取蓝牙适配器的相关信息。
参数
-
callback
函数(可选)
callback
参数如下所示:(adapterInfo: AdapterState) => void
-
adapterInfo
包含适配器信息的对象。
-
返回
-
Promise<AdapterState>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getDevice()
chrome.bluetooth.getDevice(
deviceAddress: string,
callback?: function,
)
获取系统已知的蓝牙设备的相关信息。
参数
-
deviceAddress
string
要获取的设备地址。
-
callback
函数(可选)
callback
参数如下所示:(deviceInfo: Device) => void
-
deviceInfo
包含设备信息的对象。
-
getDevices()
chrome.bluetooth.getDevices(
filter?: BluetoothFilter,
callback?: function,
)
获取系统已知的蓝牙设备列表,包括已配对和最近发现的设备。
参数
-
filter
BluetoothFilter(可选)
Chrome 67 及更高版本用于过滤返回的蓝牙设备列表的一些条件。如果过滤器未设置或设为
{}
,返回的设备列表将包含所有蓝牙设备。目前,只有 ChromeOS 支持此设置,其他平台会返回完整列表。 -
callback
函数(可选)
callback
参数如下所示:(deviceInfos: Device[]) => void
-
deviceInfos
设备[]
包含设备信息的对象数组。
-
startDiscovery()
chrome.bluetooth.startDiscovery(
callback?: function,
)
开始探索。新发现的设备将通过 onDeviceAdded 事件返回。之前发现适配器已知的设备必须使用 getDevices 来获取,并且只有在相关信息发生变化时才会使用 onDeviceChanged
事件进行更新。
如果此应用已调用 startDiscovery,发现将无法启动。发现可能会占用大量资源:应尽快调用 stopDiscovery。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
stopDiscovery()
chrome.bluetooth.stopDiscovery(
callback?: function,
)
停止发现。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
活动
onAdapterStateChanged
chrome.bluetooth.onAdapterStateChanged.addListener(
callback: function,
)
在蓝牙适配器的状态发生变化时触发。
参数
-
callback
功能
callback
参数如下所示:(state: AdapterState) => void
-
state
-
onDeviceAdded
chrome.bluetooth.onDeviceAdded.addListener(
callback: function,
)
在有新蓝牙设备的相关信息时触发。
onDeviceChanged
chrome.bluetooth.onDeviceChanged.addListener(
callback: function,
)
在已知蓝牙设备的信息发生变化时触发。
onDeviceRemoved
chrome.bluetooth.onDeviceRemoved.addListener(
callback: function,
)
在以下情况下触发:之前发现的蓝牙设备不在有效距离范围内,并且已配对的设备被移除。