chrome.bluetoothSocket

คำอธิบาย

ใช้ chrome.bluetoothSocket API เพื่อส่งและรับข้อมูลไปยังอุปกรณ์บลูทูธโดยใช้การเชื่อมต่อ RFCOMM และ L2CAP

ไฟล์ Manifest

คุณต้องประกาศคีย์ต่อไปนี้ในไฟล์ Manifest เพื่อใช้ API นี้

"bluetooth"

ประเภท

AcceptError

ค่าแจกแจง

"system_error"
ระบบเกิดข้อผิดพลาดและการเชื่อมต่ออาจกู้คืนไม่ได้

"not_listening"
ซ็อกเก็ตไม่ได้รอรับการเชื่อมต่อ

AcceptErrorInfo

พร็อพเพอร์ตี้

  • ข้อผิดพลาด

    รหัสข้อผิดพลาดที่ระบุสิ่งที่ผิดพลาด

  • errorMessage

    สตริง

    ข้อความแสดงข้อผิดพลาด

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ตเซิร์ฟเวอร์

AcceptInfo

พร็อพเพอร์ตี้

  • clientSocketId

    ตัวเลข

    ตัวระบุซ็อกเก็ตไคลเอ็นต์ ซึ่งก็คือตัวระบุซ็อกเก็ตของการเชื่อมต่อที่สร้างขึ้นใหม่ ควรใช้ตัวระบุซ็อกเก็ตนี้กับฟังก์ชันจากเนมสเปซ chrome.bluetoothSocket เท่านั้น โปรดทราบว่าในตอนแรกซ็อกเก็ตไคลเอ็นต์จะหยุดชั่วคราว และแอปพลิเคชันต้องยกเลิกการหยุดชั่วคราวอย่างชัดเจนเพื่อเริ่มรับข้อมูล

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ตเซิร์ฟเวอร์

CreateInfo

พร็อพเพอร์ตี้

  • socketId

    ตัวเลข

    รหัสของซ็อกเก็ตที่สร้างใหม่ โปรดทราบว่ารหัสซ็อกเก็ตที่สร้างจาก API นี้ใช้ร่วมกับรหัสซ็อกเก็ตที่สร้างจาก API อื่นๆ ไม่ได้ เช่น [sockets.tcp](../sockets_tcp/) API

ListenOptions

พร็อพเพอร์ตี้

  • งานค้าง

    ตัวเลข ไม่บังคับ

    ความยาวของคิวการฟังของซ็อกเก็ต ค่าเริ่มต้นจะขึ้นอยู่กับระบบย่อยโฮสต์ของระบบปฏิบัติการ

  • ช่อง

    ตัวเลข ไม่บังคับ

    แชแนล RFCOMM ที่ listenUsingRfcomm ใช้ หากระบุไว้ ช่องทางนี้ต้องไม่เคยมีการใช้งานมาก่อน มิฉะนั้นการเรียกใช้เมธอดจะดำเนินการไม่สำเร็จ หากไม่ได้ระบุ ระบบจะจัดสรรช่องที่ไม่ได้ใช้โดยอัตโนมัติ

  • psm

    ตัวเลข ไม่บังคับ

    PSM ของ L2CAP ที่ listenUsingL2cap ใช้ หากระบุไว้ PSM นี้ต้องไม่เคยมีการใช้งานมาก่อน มิฉะนั้นการเรียกใช้เมธอดจะล้มเหลว หากไม่ได้ระบุ ระบบจะจัดสรร PSM ที่ไม่ได้ใช้โดยอัตโนมัติ

ReceiveError

ค่าแจกแจง

"disconnected"
การเชื่อมต่อถูกตัดการเชื่อมต่อ

"system_error"
ระบบเกิดข้อผิดพลาดและการเชื่อมต่ออาจกู้คืนไม่ได้

"not_connected"
ไม่ได้เชื่อมต่อเต้ารับ

ReceiveErrorInfo

พร็อพเพอร์ตี้

  • ข้อผิดพลาด

    รหัสข้อผิดพลาดที่ระบุสิ่งที่ผิดพลาด

  • errorMessage

    สตริง

    ข้อความแสดงข้อผิดพลาด

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

ReceiveInfo

พร็อพเพอร์ตี้

  • ข้อมูล

    ArrayBuffer

    ข้อมูลที่รับซึ่งมีขนาดสูงสุด bufferSize

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

SocketInfo

พร็อพเพอร์ตี้

  • ที่อยู่

    สตริง ไม่บังคับ

    หากซ็อกเก็ตพื้นฐานเชื่อมต่ออยู่ จะมีที่อยู่บลูทูธของอุปกรณ์ที่เชื่อมต่ออยู่

  • bufferSize

    ตัวเลข ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากไม่ได้ระบุขนาดบัฟเฟอร์ไว้อย่างชัดเจน ระบบจะไม่ระบุค่า

  • เชื่อมต่อแล้ว

    บูลีน

    การแจ้งที่ระบุว่าซ็อกเก็ตเชื่อมต่อกับเพียร์ระยะไกลหรือไม่

  • ชื่อ

    สตริง ไม่บังคับ

    สตริงที่กําหนดโดยแอปพลิเคชันซึ่งเชื่อมโยงกับซ็อกเก็ต

  • หยุดชั่วคราว

    บูลีน

    แฟล็กที่ระบุว่าซ็อกเก็ตที่เชื่อมต่อบล็อกไม่ให้คู่สนทนาส่งข้อมูลเพิ่มเติมหรือไม่ หรือคำขอการเชื่อมต่อในซ็อกเก็ตที่รอรับฟังได้รับการส่งผ่านเหตุการณ์ onAccept หรือจัดคิวไว้ในคิวรอฟังที่รอดำเนินการหรือไม่ ดู setPaused ค่าเริ่มต้นคือ "false"

  • ถาวร

    บูลีน

    แฟล็กที่ระบุว่าซ็อกเก็ตจะยังคงเปิดอยู่ไหมเมื่อระบบยกเลิกการโหลดหน้าเหตุการณ์ของแอปพลิเคชัน (ดู SocketProperties.persistent) ค่าเริ่มต้นคือ "เท็จ"

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • uuid

    สตริง ไม่บังคับ

    หากซ็อกเก็ตพื้นฐานเชื่อมต่ออยู่ จะมีข้อมูลเกี่ยวกับ UUID ของบริการที่เชื่อมต่ออยู่ หรือหากซ็อกเก็ตพื้นฐานกำลังรอรับข้อมูล จะมีข้อมูลเกี่ยวกับ UUID ของบริการที่รอรับข้อมูลอยู่

SocketProperties

พร็อพเพอร์ตี้

  • bufferSize

    ตัวเลข ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล ค่าเริ่มต้นคือ 4096

  • ชื่อ

    สตริง ไม่บังคับ

    สตริงที่กําหนดโดยแอปพลิเคชันซึ่งเชื่อมโยงกับซ็อกเก็ต

  • ถาวร

    บูลีน ไม่บังคับ

    แฟล็กที่ระบุว่ามีการเปิดซ็อกเก็ตไว้หรือไม่เมื่อระบบยกเลิกการโหลดหน้าเหตุการณ์ของแอปพลิเคชัน (ดูจัดการวงจรของแอป) ค่าเริ่มต้นคือ false. เมื่อโหลดแอปพลิเคชัน ระบบจะดึงข้อมูลซ็อกเก็ตที่เปิดไว้ก่อนหน้านี้ด้วย persistent=true โดยใช้ getSockets

เมธอด

close()

สัญญา
chrome.bluetoothSocket.close(
  socketId: number,
  callback?: function,
)

ยกเลิกการเชื่อมต่อและทำลายเต้ารับ คุณควรปิดซ็อกเก็ตแต่ละรายการที่สร้างไว้หลังจากใช้งาน รหัสซ็อกเก็ตจะใช้ไม่ได้อีกต่อไปทันทีที่มีการเรียกใช้ฟังก์ชัน อย่างไรก็ตาม ระบบจะรับประกันว่าซ็อกเก็ตจะปิดเฉพาะเมื่อเรียกใช้การเรียกกลับเท่านั้น

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

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 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

create()

สัญญา
chrome.bluetoothSocket.create(
  properties?: SocketProperties,
  callback?: function,
)

สร้างซ็อกเก็ตบลูทูธ

พารามิเตอร์

  • พร็อพเพอร์ตี้

    SocketProperties ไม่บังคับ

    พร็อพเพอร์ตี้ซ็อกเก็ต (ไม่บังคับ)

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (createInfo: CreateInfo) => void

    • createInfo

      ผลลัพธ์ของการสร้างซ็อกเก็ต

การคืนสินค้า

  • Promise<CreateInfo>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

disconnect()

สัญญา
chrome.bluetoothSocket.disconnect(
  socketId: number,
  callback?: function,
)

ถอดเต้ารับออก ตัวระบุซ็อกเก็ตจะยังคงใช้งานได้

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getInfo()

สัญญา
chrome.bluetoothSocket.getInfo(
  socketId: number,
  callback?: function,
)

ดึงข้อมูลสถานะของซ็อกเก็ตที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (socketInfo: SocketInfo) => void

    • socketInfo

      ออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต

การคืนสินค้า

  • Promise<SocketInfo>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getSockets()

สัญญา
chrome.bluetoothSocket.getSockets(
  callback?: function,
)

ดึงข้อมูลรายการซ็อกเก็ตที่เปิดอยู่ในปัจจุบันซึ่งแอปพลิเคชันเป็นเจ้าของ

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (sockets: SocketInfo[]) => void

การคืนสินค้า

  • Promise<SocketInfo[]>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

listenUsingL2cap()

สัญญา
chrome.bluetoothSocket.listenUsingL2cap(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)

รอการเชื่อมต่อโดยใช้โปรโตคอล L2CAP

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • uuid

    สตริง

    UUID ของบริการที่จะฟัง

  • ตัวเลือก

    ListenOptions ไม่บังคับ

    ตัวเลือกเพิ่มเติมสำหรับบริการ (ไม่บังคับ)

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

listenUsingRfcomm()

สัญญา
chrome.bluetoothSocket.listenUsingRfcomm(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)

รอการเชื่อมต่อโดยใช้โปรโตคอล RFCOMM

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • uuid

    สตริง

    UUID ของบริการที่จะฟัง

  • ตัวเลือก

    ListenOptions ไม่บังคับ

    ตัวเลือกเพิ่มเติมสำหรับบริการ (ไม่บังคับ)

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

send()

สัญญา
chrome.bluetoothSocket.send(
  socketId: number,
  data: ArrayBuffer,
  callback?: function,
)

ส่งข้อมูลในซ็อกเก็ตบลูทูธที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • ข้อมูล

    ArrayBuffer

    ข้อมูลที่จะส่ง

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (bytesSent: number) => void

    • bytesSent

      ตัวเลข

      จํานวนไบต์ที่ส่ง

การคืนสินค้า

  • Promise<number>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

setPaused()

สัญญา
chrome.bluetoothSocket.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

เปิดหรือปิดใช้ซ็อกเก็ตที่เชื่อมต่อไม่ให้รับข้อความจากคู่สนทนา หรือไม่ให้ซ็อกเก็ตที่รอรับการเชื่อมต่อยอมรับการเชื่อมต่อใหม่ ค่าเริ่มต้นคือ "false" โดยทั่วไปแอปพลิเคชันจะใช้การหยุดซ็อกเก็ตที่เชื่อมต่อไว้ชั่วคราวเพื่อควบคุมปริมาณข้อมูลที่ส่งโดยคู่สนทนา เมื่อหยุดซ็อกเก็ตที่เชื่อมต่อไว้ชั่วคราว ระบบจะไม่สร้างonReceiveเหตุการณ์ เมื่อเชื่อมต่อซ็อกเก็ตและยกเลิกการหยุดชั่วคราว ระบบจะสร้างเหตุการณ์ onReceive อีกครั้งเมื่อได้รับข้อความ เมื่อหยุดซ็อกเก็ตการฟังชั่วคราว ระบบจะยอมรับการเชื่อมต่อใหม่จนกว่าคิวรอจะเต็ม จากนั้นจะปฏิเสธคำขอการเชื่อมต่อเพิ่มเติม ระบบจะส่งเหตุการณ์ onAccept เฉพาะเมื่อยกเลิกการหยุดชั่วคราวของซ็อกเก็ตเท่านั้น

พารามิเตอร์

  • socketId

    ตัวเลข

  • หยุดชั่วคราว

    บูลีน

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

update()

สัญญา
chrome.bluetoothSocket.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

อัปเดตพร็อพเพอร์ตี้ซ็อกเก็ต

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • พร็อพเพอร์ตี้

    พร็อพเพอร์ตี้ที่จะอัปเดต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 91 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

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