说明
使用 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
属性
- 
    backlognumber 可选 套接字侦听队列的长度。默认值取决于操作系统的宿主子系统。 
- 
    频道number 可选 listenUsingRfcomm使用的 RFCOMM 通道。如果指定了此参数,则相应渠道之前不得处于使用状态,否则方法调用将失败。如果未指定,系统会自动分配一个未使用的渠道。
- 
    psmnumber 可选 listenUsingL2cap使用的 L2CAP PSM。如果指定了此 PSM,则该 PSM 之前不得处于使用状态,否则方法调用将失败。如果未指定,系统会自动分配一个未使用的 PSM。
ReceiveError
枚举
“已断开连接” 
 连接已断开。
“system_error” 
 发生了系统错误,连接可能无法恢复。
“not_connected” 
 套接字尚未连接。
ReceiveErrorInfo
属性
- 
    错误一个错误代码,用于指明出了什么问题。 
- 
    errorMessage字符串 错误消息。 
- 
    socketId数值 套接字标识符。 
ReceiveInfo
属性
- 
    数据ArrayBuffer 接收的数据,最大大小为 bufferSize。
- 
    socketId数值 套接字标识符。 
SocketInfo
属性
- 
    地址字符串(选填) 如果底层套接字已连接,则包含所连接设备的蓝牙地址。 
- 
    bufferSizenumber 可选 用于接收数据的缓冲区的大小。如果未明确指定缓冲区大小,则不提供该值。 
- 
    已连接布尔值 标志,用于指示套接字是否已连接到远程对等方。 
- 
    name字符串(选填) 与套接字关联的应用定义的字符串。 
- 
    已暂停布尔值 标志,用于指示已连接的套接字是否阻止其对等方发送更多数据,或者监听套接字上的连接请求是通过 onAccept事件分派的,还是在监听队列积压中排队的。请参阅setPaused。默认值为 “False”。
- 
    持久性布尔值 一个标志,用于指示当应用的事件页面卸载时,套接字是否保持打开状态(请参阅 SocketProperties.persistent)。默认值为“false”。
- 
    socketId数值 套接字标识符。 
- 
    uuid字符串(选填) 如果底层套接字已连接,则包含有关其所连接到的服务 UUID 的信息;否则,如果底层套接字正在监听,则包含有关其所监听的服务 UUID 的信息。 
SocketProperties
属性
- 
    bufferSizenumber 可选 用于接收数据的缓冲区的大小。默认值为 4096。 
- 
    name字符串(选填) 与套接字关联的应用定义的字符串。 
- 
    持久性布尔值(可选) 一个标志,用于指示在卸载应用的事件页面时是否保持套接字处于打开状态(请参阅管理应用生命周期)。默认值为 false.。加载应用时,可以使用getSockets提取之前使用 persistent=true 打开的任何套接字。
方法
close()
chrome.bluetoothSocket.close(
socketId: number,
callback?: function,
): Promise<void>
断开连接并销毁套接字。创建的每个套接字都应在使用后关闭。一旦调用该函数,套接字 ID 便不再有效。不过,只有在调用回调时,才能保证套接字已关闭。
参数
- 
    socketId数值 套接字标识符。 
- 
    callback函数 可选 callback参数如下所示:() => void 
返回
- 
            Promise<void> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
connect()
chrome.bluetoothSocket.connect(
socketId: number,
address: string,
uuid: string,
callback?: function,
): Promise<void>
将套接字连接到远程蓝牙设备。当 connect 操作成功完成时,如果从对等方收到数据,系统会引发 onReceive 事件。如果运行时在接收数据包时发生网络错误,则会引发 onReceiveError 事件,此时,在调用 setPaused(false) 方法之前,不会再针对此套接字引发 onReceive 事件。
参数
- 
    socketId数值 套接字标识符。 
- 
    地址字符串 蓝牙设备的地址。 
- 
    uuid字符串 要连接的服务的 UUID。 
- 
    callback函数 可选 callback参数如下所示:() => void 
返回
- 
            Promise<void> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
create()
chrome.bluetoothSocket.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
创建蓝牙套接字。
参数
- 
    媒体资源套接字属性(可选)。 
- 
    callback函数 可选 callback参数如下所示:(createInfo: CreateInfo) => void - 
    createInfo套接字创建结果。 
 
- 
    
返回
- 
            Promise<CreateInfo> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
disconnect()
chrome.bluetoothSocket.disconnect(
socketId: number,
callback?: function,
): Promise<void>
断开套接字。套接字标识符仍然有效。
参数
- 
    socketId数值 套接字标识符。 
- 
    callback函数 可选 callback参数如下所示:() => void 
返回
- 
            Promise<void> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
getInfo()
chrome.bluetoothSocket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
检索给定套接字的状态。
参数
- 
    socketId数值 套接字标识符。 
- 
    callback函数 可选 callback参数如下所示:(socketInfo: SocketInfo) => void - 
    socketInfo包含套接字信息的对象。 
 
- 
    
返回
- 
            Promise<SocketInfo> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
getSockets()
chrome.bluetoothSocket.getSockets(
callback?: function,
): Promise<SocketInfo[]>
检索应用当前拥有的已打开套接字的列表。
参数
- 
    callback函数 可选 callback参数如下所示:(sockets: SocketInfo[]) => void - 
    套接字
 
- 
    
返回
- 
            Promise<SocketInfo[]> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
listenUsingL2cap()
chrome.bluetoothSocket.listenUsingL2cap(
socketId: number,
uuid: string,
options?: ListenOptions,
callback?: function,
): Promise<void>
使用 L2CAP 协议侦听连接。
参数
- 
    socketId数值 套接字标识符。 
- 
    uuid字符串 要监听的服务 UUID。 
- 
    选项服务的可选其他选项。 
- 
    callback函数 可选 callback参数如下所示:() => void 
返回
- 
            Promise<void> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
listenUsingRfcomm()
chrome.bluetoothSocket.listenUsingRfcomm(
socketId: number,
uuid: string,
options?: ListenOptions,
callback?: function,
): Promise<void>
使用 RFCOMM 协议侦听连接。
参数
- 
    socketId数值 套接字标识符。 
- 
    uuid字符串 要监听的服务 UUID。 
- 
    选项服务的可选其他选项。 
- 
    callback函数 可选 callback参数如下所示:() => void 
返回
- 
            Promise<void> Chrome 91 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 
send()
chrome.bluetoothSocket.send(
socketId: number,
data: ArrayBuffer,
callback?: function,
): Promise<number>
通过给定的蓝牙套接字发送数据。
参数
- 
    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,
): Promise<void>
启用或停用已连接的套接字从对等方接收消息,或启用或停用监听套接字接受新连接。默认值为“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,
): Promise<void>
更新套接字属性。
参数
- 
    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