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 อื่นๆ ไม่ได้ เช่น API [sockets.tcp](../sockets_tcp/)

ListenOptions

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

  • งานค้าง

    หมายเลข ไม่บังคับ

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

  • ช่อง

    หมายเลข ไม่บังคับ

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

  • PSM

    หมายเลข ไม่บังคับ

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

ReceiveError

ค่าแจกแจง

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

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

"not_connected"
ซ็อกเก็ตไม่ได้เชื่อมต่อ

ReceiveErrorInfo

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

  • ข้อผิดพลาด

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

  • errorMessage

    สตริง

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

  • socketId

    ตัวเลข

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

ReceiveInfo

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

  • ข้อมูล

    อาร์เรย์บัฟเฟอร์

    ข้อมูลที่ได้รับ โดยมีขนาดสูงสุด bufferSize

  • socketId

    ตัวเลข

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

SocketInfo

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

  • ที่อยู่

    string ไม่บังคับ

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

  • bufferSize

    หมายเลข ไม่บังคับ

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

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

    boolean

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

  • ชื่อ

    string ไม่บังคับ

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

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

    boolean

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

  • ต่อเนื่อง

    boolean

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

  • socketId

    ตัวเลข

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

  • Uuid

    string ไม่บังคับ

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

SocketProperties

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

  • bufferSize

    หมายเลข ไม่บังคับ

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

  • ชื่อ

    string ไม่บังคับ

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

  • ต่อเนื่อง

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

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

เมธอด

close()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

connect()

สัญญา
chrome.bluetoothSocket.connect(
  socketId: number,
  address: string,
  uuid: string,
  callback?: function,
)

เชื่อมต่อซ็อกเก็ตกับอุปกรณ์บลูทูธระยะไกล เมื่อการดำเนินการ connect เสร็จสมบูรณ์ ระบบจะเพิ่มเหตุการณ์ onReceive รายการเมื่อได้รับข้อมูลจากเพียร์ หากข้อผิดพลาดเกี่ยวกับเครือข่ายเกิดขึ้นขณะที่รันไทม์ได้รับแพ็กเก็ต จะมีการเพิ่มเหตุการณ์ onReceiveError ซึ่ง ณ จุดนั้นจะไม่มีการเพิ่มเหตุการณ์ onReceive สำหรับซ็อกเก็ตนี้อีกจนกว่าจะมีการเรียกใช้เมธอด setPaused(false)

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • ที่อยู่

    สตริง

    ที่อยู่ของอุปกรณ์บลูทูธ

  • Uuid

    สตริง

    UUID ของบริการที่จะเชื่อมต่อ

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

create()

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

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

พารามิเตอร์

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

    SocketProperties ไม่บังคับ

    คุณสมบัติของซ็อกเก็ต (ไม่บังคับ)

  • Callback

    ไม่บังคับ

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

    (createInfo: CreateInfo) => void

    • createInfo

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

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

  • Promise&lt;CreateInfo&gt;

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

disconnect()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getInfo()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

    ไม่บังคับ

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

    (socketInfo: SocketInfo) => void

    • socketInfo

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

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

  • Promise&lt;SocketInfo&gt;

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getSockets()

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

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

พารามิเตอร์

  • Callback

    ไม่บังคับ

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

    (sockets: SocketInfo[]) => void

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

  • Promise&lt;SocketInfo[]&gt;

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

listenUsingL2cap()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Uuid

    สตริง

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

  • ตัวเลือก

    ListenOptions ไม่บังคับ

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

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

listenUsingRfcomm()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Uuid

    สตริง

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

  • ตัวเลือก

    ListenOptions ไม่บังคับ

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

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

send()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • ข้อมูล

    อาร์เรย์บัฟเฟอร์

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

  • Callback

    ไม่บังคับ

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

    (bytesSent: number) => void

    • bytesSent

      ตัวเลข

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

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

  • Promise&lt;number&gt;

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setPaused()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

    boolean

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

update()

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

อัปเดตคุณสมบัติของซ็อกเก็ต

พารามิเตอร์

  • socketId

    ตัวเลข

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

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

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

  • Callback

    ไม่บังคับ

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

    () => void

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

  • คำมั่นสัญญา<โมฆะ>

    Chrome 91 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

กิจกรรม

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