chrome.bluetoothSocket

Mô tả

Sử dụng API chrome.bluetoothSocket để gửi và nhận dữ liệu đến các thiết bị Bluetooth bằng cách sử dụng kết nối RFCOMM và L2CAP.

Tệp kê khai

Bạn phải khai báo các khoá sau trong tệp kê khai để sử dụng API này.

"bluetooth"

Loại

AcceptError

Enum

"system_error"
Đã xảy ra lỗi hệ thống và có thể không khôi phục được kết nối.

"not_listening"
Ổ cắm không nghe.

AcceptErrorInfo

Thuộc tính

  • error

    Mã lỗi cho biết vấn đề đã xảy ra.

  • errorMessage

    chuỗi

    Thông báo lỗi.

  • socketId

    số

    Giá trị nhận dạng điểm cuối máy chủ.

AcceptInfo

Thuộc tính

  • clientSocketId

    số

    Giá trị nhận dạng ổ cắm của ứng dụng, tức là giá trị nhận dạng ổ cắm của kết nối mới được thiết lập. Bạn chỉ nên sử dụng giá trị nhận dạng ổ cắm này với các hàm trong không gian tên chrome.bluetoothSocket. Xin lưu ý rằng ban đầu, ổ cắm máy khách sẽ bị tạm dừng và ứng dụng phải huỷ tạm dừng một cách rõ ràng để bắt đầu nhận dữ liệu.

  • socketId

    số

    Giá trị nhận dạng điểm cuối máy chủ.

CreateInfo

Thuộc tính

  • socketId

    số

    Mã nhận dạng của ổ cắm mới tạo. Xin lưu ý rằng mã nhận dạng ổ cắm được tạo từ API này không tương thích với mã nhận dạng ổ cắm được tạo từ các API khác, chẳng hạn như API [sockets.tcp](../sockets_tcp/).

ListenOptions

Thuộc tính

  • backlog

    number không bắt buộc

    Độ dài của hàng đợi nghe của ổ cắm. Giá trị mặc định phụ thuộc vào hệ thống con máy chủ của hệ điều hành.

  • kênh

    number không bắt buộc

    Kênh RFCOMM mà listenUsingRfcomm sử dụng. Nếu được chỉ định, kênh này không được sử dụng trước đó, nếu không lệnh gọi phương thức sẽ không thành công. Khi không được chỉ định, một kênh chưa sử dụng sẽ được tự động phân bổ.

  • psm

    number không bắt buộc

    PSM L2CAP do listenUsingL2cap sử dụng. Nếu được chỉ định, PSM này không được sử dụng trước đó hoặc lệnh gọi phương thức sẽ không thành công. Khi bạn không chỉ định, một PSM chưa sử dụng sẽ được tự động phân bổ.

ReceiveError

Enum

"đã ngắt kết nối"
Kết nối đã bị ngắt.

"system_error"
Đã xảy ra lỗi hệ thống và có thể không khôi phục được kết nối.

"not_connected"
Ổ cắm chưa được kết nối.

ReceiveErrorInfo

Thuộc tính

  • error

    Mã lỗi cho biết vấn đề đã xảy ra.

  • errorMessage

    chuỗi

    Thông báo lỗi.

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

ReceiveInfo

Thuộc tính

  • khác

    ArrayBuffer

    Dữ liệu nhận được, có kích thước tối đa là bufferSize.

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

SocketInfo

Thuộc tính

  • xử lý

    chuỗi không bắt buộc

    Nếu ổ cắm cơ bản được kết nối, thì sẽ chứa địa chỉ Bluetooth của thiết bị mà ổ cắm đó kết nối.

  • bufferSize

    number không bắt buộc

    Kích thước của bộ nhớ đệm dùng để nhận dữ liệu. Nếu bạn không chỉ định rõ kích thước vùng đệm, thì giá trị sẽ không được cung cấp.

  • đã kết nối

    boolean

    Cờ cho biết liệu ổ cắm có được kết nối với một thiết bị ngang hàng từ xa hay không.

  • tên

    chuỗi không bắt buộc

    Chuỗi do ứng dụng xác định được liên kết với ổ cắm.

  • tạm dừng

    boolean

    Cờ cho biết liệu một ổ cắm được kết nối có chặn thiết bị ngang hàng gửi thêm dữ liệu hay không, hoặc liệu các yêu cầu kết nối trên một ổ cắm đang nghe có được gửi qua sự kiện onAccept hay được xếp hàng trong danh sách chờ của hàng đợi nghe. Vui lòng xem setPaused. Giá trị mặc định là "false".

  • liên tục

    boolean

    Cờ cho biết liệu ổ cắm có vẫn mở khi trang sự kiện của ứng dụng được huỷ tải hay không (xem SocketProperties.persistent). Giá trị mặc định là "false".

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • uuid

    chuỗi không bắt buộc

    Nếu ổ cắm cơ bản được kết nối, thì sẽ chứa thông tin về UUID dịch vụ mà ổ cắm đó kết nối. Nếu ổ cắm cơ bản đang ở trạng thái nghe, thì sẽ chứa thông tin về UUID dịch vụ mà ổ cắm đó đang nghe.

SocketProperties

Thuộc tính

  • bufferSize

    number không bắt buộc

    Kích thước của bộ nhớ đệm dùng để nhận dữ liệu. Giá trị mặc định là 4096.

  • tên

    chuỗi không bắt buộc

    Một chuỗi do ứng dụng xác định được liên kết với ổ cắm.

  • liên tục

    boolean không bắt buộc

    Cờ cho biết liệu ổ cắm có bị bỏ ngỏ khi trang sự kiện của ứng dụng được huỷ tải hay không (xem phần Quản lý vòng đời ứng dụng). Giá trị mặc định là false. Khi ứng dụng được tải, mọi socket đã mở trước đó bằng persistent=true đều có thể được tìm nạp bằng getSockets.

Phương thức

close()

Promise
chrome.bluetoothSocket.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

Ngắt kết nối và huỷ ổ cắm. Mỗi ổ cắm được tạo phải được đóng sau khi sử dụng. Mã nhận dạng ổ cắm không còn hợp lệ ngay khi hàm được gọi. Tuy nhiên, ổ cắm chỉ được đảm bảo đóng khi lệnh gọi lại được gọi.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

connect()

Promise
chrome.bluetoothSocket.connect(
  socketId: number,
  address: string,
  uuid: string,
  callback?: function,
)
: Promise<void>

Kết nối ổ cắm với một thiết bị Bluetooth từ xa. Khi thao tác connect hoàn tất thành công, các sự kiện onReceive sẽ được tạo khi dữ liệu được nhận từ thiết bị ngang hàng. Nếu xảy ra lỗi mạng trong khi thời gian chạy đang nhận các gói, thì sự kiện onReceiveError sẽ được kích hoạt. Tại thời điểm đó, sẽ không có sự kiện onReceive nào khác được kích hoạt cho ổ cắm này cho đến khi phương thức setPaused(false) được gọi.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • xử lý

    chuỗi

    Địa chỉ của thiết bị Bluetooth.

  • uuid

    chuỗi

    UUID của dịch vụ cần kết nối.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

create()

Promise
chrome.bluetoothSocket.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

Tạo một ổ cắm Bluetooth.

Thông số

  • tài sản

    SocketProperties không bắt buộc

    Các thuộc tính của ổ cắm (không bắt buộc).

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (createInfo: CreateInfo) => void

    • createInfo

      Kết quả của quá trình tạo ổ cắm.

Giá trị trả về

  • Promise<CreateInfo>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

disconnect()

Promise
chrome.bluetoothSocket.disconnect(
  socketId: number,
  callback?: function,
)
: Promise<void>

Ngắt kết nối ổ cắm. Mã nhận dạng ổ cắm vẫn hợp lệ.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getInfo()

Promise
chrome.bluetoothSocket.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Truy xuất trạng thái của ổ cắm đã cho.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Đối tượng chứa thông tin về ổ cắm.

Giá trị trả về

  • Promise<SocketInfo>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getSockets()

Promise
chrome.bluetoothSocket.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

Truy xuất danh sách các ổ cắm hiện đang mở do ứng dụng sở hữu.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (sockets: SocketInfo[]) => void

Giá trị trả về

  • Promise<SocketInfo[]>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

listenUsingL2cap()

Promise
chrome.bluetoothSocket.listenUsingL2cap(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)
: Promise<void>

Nghe các kết nối bằng giao thức L2CAP.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • uuid

    chuỗi

    UUID dịch vụ để nghe.

  • tùy chọn

    ListenOptions không bắt buộc

    Các lựa chọn bổ sung không bắt buộc cho dịch vụ.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

listenUsingRfcomm()

Promise
chrome.bluetoothSocket.listenUsingRfcomm(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)
: Promise<void>

Nghe các kết nối bằng giao thức RFCOMM.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • uuid

    chuỗi

    UUID dịch vụ để nghe.

  • tùy chọn

    ListenOptions không bắt buộc

    Các lựa chọn bổ sung không bắt buộc cho dịch vụ.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

send()

Promise
chrome.bluetoothSocket.send(
  socketId: number,
  data: ArrayBuffer,
  callback?: function,
)
: Promise<number>

Gửi dữ liệu trên ổ cắm Bluetooth đã cho.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • khác

    ArrayBuffer

    Dữ liệu cần gửi.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (bytesSent: number) => void

    • bytesSent

      số

      Số byte đã gửi.

Giá trị trả về

  • Promise<number>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

setPaused()

Promise
chrome.bluetoothSocket.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Cho phép hoặc không cho phép một ổ cắm được kết nối nhận tin nhắn từ thiết bị ngang hàng hoặc một ổ cắm đang nghe chấp nhận các kết nối mới. Giá trị mặc định là "false". Việc tạm dừng một ổ cắm đã kết nối thường được một ứng dụng dùng để điều chỉnh tốc độ dữ liệu do ứng dụng ngang hàng gửi. Khi một ổ cắm được kết nối bị tạm dừng, sẽ không có sự kiện onReceivenào được tạo. Khi một ổ cắm được kết nối và không bị tạm dừng, các sự kiện onReceive sẽ được kích hoạt lại khi nhận được tin nhắn. Khi một ổ cắm đang nghe bị tạm dừng, các kết nối mới sẽ được chấp nhận cho đến khi danh sách chờ đầy, sau đó các yêu cầu kết nối bổ sung sẽ bị từ chối. Sự kiện onAccept chỉ được tạo khi ổ cắm không bị tạm dừng.

Thông số

  • socketId

    số

  • tạm dừng

    boolean

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

update()

Promise
chrome.bluetoothSocket.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

Cập nhật các thuộc tính của ổ cắm.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • tài sản

    Các thuộc tính cần cập nhật.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 91 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

Sự kiện

onAccept

chrome.bluetoothSocket.onAccept.addListener(
  callback: function,
)

Sự kiện được tạo khi một kết nối được thiết lập cho một ổ cắm nhất định.

Thông số

  • callback

    hàm

    Tham số callback có dạng như sau:

    (info: AcceptInfo) => void

onAcceptError

chrome.bluetoothSocket.onAcceptError.addListener(
  callback: function,
)

Sự kiện được tạo khi xảy ra lỗi mạng trong lúc thời gian chạy đang chờ các kết nối mới trên ổ cắm đã cho. Sau khi sự kiện này được tạo, ổ cắm sẽ được đặt thành paused và không có sự kiện onAccept nào khác được tạo cho ổ cắm này.

Thông số

onReceive

chrome.bluetoothSocket.onReceive.addListener(
  callback: function,
)

Sự kiện được tạo khi dữ liệu đã được nhận cho một ổ cắm nhất định.

Thông số

onReceiveError

chrome.bluetoothSocket.onReceiveError.addListener(
  callback: function,
)

Sự kiện được tạo khi xảy ra lỗi mạng trong khi thời gian chạy đang chờ dữ liệu trên socket. Sau khi sự kiện này được tạo, ổ cắm sẽ được đặt thành paused và không có sự kiện onReceive nào khác được tạo cho ổ cắm này.

Thông số