说明
使用 chrome.bluetoothSocket
API 通过 RFCOMM 和 L2CAP 连接向蓝牙设备发送和接收数据。
清单
类型
AcceptError
枚举
"system_error"
系统发生错误,连接可能无法恢复。
"not_listening"
套接字未监听。
AcceptErrorInfo
属性
-
错误
一个错误代码,用于指明出现了什么问题。
-
errorMessage
字符串
错误消息。
-
socketId
数值
服务器套接字标识符。
AcceptInfo
属性
-
clientSocketId
数值
客户端套接字标识符,即新建立的连接的套接字标识符。此套接字标识符应仅与
chrome.bluetoothSocket
命名空间中的函数搭配使用。请注意,客户端套接字最初处于暂停状态,必须由应用明确取消暂停才能开始接收数据。 -
socketId
数值
服务器套接字标识符。
CreateInfo
属性
-
socketId
数值
新创建的套接字的 ID。请注意,通过此 API 创建的套接字 ID 与通过其他 API(例如
[
sockets.tcp](../sockets_tcp/)
API)创建的套接字 ID 不兼容。
ListenOptions
属性
-
积压
number 可选
套接字的监听队列的长度。默认值取决于操作系统的主机子系统。
-
频道
number 可选
listenUsingRfcomm
使用的 RFCOMM 通道。如果指定了此通道,则此通道之前不得处于使用状态,否则方法调用将失败。如果未指定,系统会自动分配一个未使用的通道。 -
psm
number 可选
listenUsingL2cap
使用的 L2CAP PSM。如果指定了此 PSM,则此 PSM 之前不得处于使用状态,否则方法调用将失败。如果未指定,系统会自动分配一个未使用的 PSM。
ReceiveError
枚举
“disconnected”
连接已断开。
"system_error"
系统发生错误,连接可能无法恢复。
"not_connected"
套接字未连接。
ReceiveErrorInfo
属性
-
错误
一个错误代码,用于指明出现了什么问题。
-
errorMessage
字符串
错误消息。
-
socketId
数值
套接字标识符。
ReceiveInfo
属性
-
数据
ArrayBuffer
收到的数据,大小不得超过
bufferSize
。 -
socketId
数值
套接字标识符。
SocketInfo
属性
-
地址
字符串(选填)
如果底层套接字已连接,则包含其连接到的设备的蓝牙地址。
-
bufferSize
number 可选
用于接收数据的缓冲区大小。如果未明确指定缓冲区大小,则不提供该值。
-
已连接
布尔值
指示套接字是否已连接到远程对等端的标志。
-
name
字符串(选填)
与套接字关联的应用定义的字符串。
-
已暂停
布尔值
用于指示已连接的套接字是否阻止其对等方发送更多数据,或者监听套接字上的连接请求是通过
onAccept
事件分派的,还是在监听队列待处理队列中排队。请参阅setPaused
。默认值为 “False”。 -
持久性
布尔值
用于指示在应用的事件页面被卸载时套接字是否保持打开状态的标志(请参阅
SocketProperties.persistent
)。默认值为“false”。 -
socketId
数值
套接字标识符。
-
uuid
字符串(选填)
如果底层套接字已连接,则包含与其连接的服务 UUID 相关的信息;如果底层套接字正在监听,则包含与其监听的服务 UUID 相关的信息。
SocketProperties
属性
-
bufferSize
number 可选
用于接收数据的缓冲区大小。默认值为 4096。
-
name
字符串(选填)
与套接字关联的应用定义的字符串。
-
持久性
布尔值(可选)
一个标志,用于指示在应用的事件页面卸载时是否将套接字保持打开状态(请参阅管理应用生命周期)。默认值为
false.
。加载应用时,可以使用getSockets
提取之前使用 persistent=true 打开的所有套接字。
方法
close()
chrome.bluetoothSocket.close(
socketId: number,
callback?: function,
)
断开并销毁套接字。创建的每个套接字都应在使用后关闭。调用该函数后,套接字 ID 立即失效。不过,只有在调用回调时,系统才保证关闭套接字。
参数
-
socketId
数值
套接字标识符。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
connect()
chrome.bluetoothSocket.connect(
socketId: number,
address: string,
uuid: string,
callback?: function,
)
将套接字连接到远程蓝牙设备。当 connect
操作成功完成后,系统会在从对等设备收到数据时引发 onReceive
事件。如果运行时在接收数据包时发生网络错误,系统会引发 onReceiveError
事件,此时系统不会再为此套接字引发 onReceive
事件,直到调用 setPaused(false)
方法为止。
参数
-
socketId
数值
套接字标识符。
-
地址
字符串
蓝牙设备的地址。
-
uuid
字符串
要连接的服务的 UUID。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
create()
chrome.bluetoothSocket.create(
properties?: SocketProperties,
callback?: function,
)
创建蓝牙套接字。
参数
-
媒体资源
SocketProperties(可选)
套接字属性(可选)。
-
callback
函数(可选)
callback
参数如下所示:(createInfo: CreateInfo) => void
-
createInfo
套接字创建的结果。
-
返回
-
Promise<CreateInfo>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
disconnect()
chrome.bluetoothSocket.disconnect(
socketId: number,
callback?: function,
)
断开套接字。套接字标识符保持有效。
参数
-
socketId
数值
套接字标识符。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getInfo()
chrome.bluetoothSocket.getInfo(
socketId: number,
callback?: function,
)
检索给定套接字的状态。
参数
-
socketId
数值
套接字标识符。
-
callback
函数(可选)
callback
参数如下所示:(socketInfo: SocketInfo) => void
-
socketInfo
包含套接字信息的对象。
-
返回
-
Promise<SocketInfo>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getSockets()
chrome.bluetoothSocket.getSockets(
callback?: function,
)
检索应用当前拥有的已打开套接字的列表。
参数
-
callback
函数(可选)
callback
参数如下所示:(sockets: SocketInfo[]) => void
-
套接字
-
返回
-
Promise<SocketInfo[]>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
listenUsingL2cap()
chrome.bluetoothSocket.listenUsingL2cap(
socketId: number,
uuid: string,
options?: ListenOptions,
callback?: function,
)
使用 L2CAP 协议监听连接。
参数
-
socketId
数值
套接字标识符。
-
uuid
字符串
要监听的服务 UUID。
-
选项
ListenOptions(可选)
服务的可选附加选项。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
listenUsingRfcomm()
chrome.bluetoothSocket.listenUsingRfcomm(
socketId: number,
uuid: string,
options?: ListenOptions,
callback?: function,
)
使用 RFCOMM 协议监听连接。
参数
-
socketId
数值
套接字标识符。
-
uuid
字符串
要监听的服务 UUID。
-
选项
ListenOptions(可选)
服务的可选附加选项。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
send()
chrome.bluetoothSocket.send(
socketId: number,
data: ArrayBuffer,
callback?: function,
)
在给定蓝牙套接字上发送数据。
参数
-
socketId
数值
套接字标识符。
-
数据
ArrayBuffer
要发送的数据。
-
callback
函数(可选)
callback
参数如下所示:(bytesSent: number) => void
-
bytesSent
数值
发送的字节数。
-
返回
-
Promise<number>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
setPaused()
chrome.bluetoothSocket.setPaused(
socketId: number,
paused: boolean,
callback?: function,
)
启用或停用已连接的套接字接收来自其对等方的邮件,或停用监听套接字接受新连接。默认值为“false”。应用通常会暂停已连接的套接字,以节流其对等方发送的数据。当已连接的套接字暂停时,系统不会引发 onReceive
事件。当套接字连接并取消暂停后,系统会在收到消息时再次引发 onReceive
事件。当监听套接字暂停时,系统会接受新连接,直到其待处理连接数量已满,然后拒绝其他连接请求。只有在取消暂停套接字时,才会引发 onAccept
事件。
参数
-
socketId
数值
-
已暂停
布尔值
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
update()
chrome.bluetoothSocket.update(
socketId: number,
properties: SocketProperties,
callback?: function,
)
更新套接字属性。
参数
-
socketId
数值
套接字标识符。
-
媒体资源
要更新的媒体资源。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 91 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
事件
onAccept
chrome.bluetoothSocket.onAccept.addListener(
callback: function,
)
为给定套接字建立连接时引发的事件。
参数
-
callback
函数
callback
参数如下所示:(info: AcceptInfo) => void
-
资讯
-
onAcceptError
chrome.bluetoothSocket.onAcceptError.addListener(
callback: function,
)
当运行时在给定套接字上等待新连接时发生网络错误时引发的事件。引发此事件后,套接字会设为 paused
,并且系统不会再为此套接字引发 onAccept
事件。
参数
-
callback
函数
callback
参数如下所示:(info: AcceptErrorInfo) => void
onReceive
chrome.bluetoothSocket.onReceive.addListener(
callback: function,
)
在为给定套接字收到数据时引发的事件。
参数
-
callback
函数
callback
参数如下所示:(info: ReceiveInfo) => void
-
资讯
-
onReceiveError
chrome.bluetoothSocket.onReceiveError.addListener(
callback: function,
)
当运行时在套接字上等待数据时发生网络错误时引发的事件。引发此事件后,套接字会设为 paused
,并且系统不会再为此套接字引发 onReceive
事件。
参数
-
callback
函数
callback
参数如下所示:(info: ReceiveErrorInfo) => void