chrome.bluetoothSocket

คำอธิบาย

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

ไฟล์ Manifest

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

"bluetooth"

ประเภท

AcceptError

ค่าแจกแจง

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

"not_listening"
ซ็อกเก็ตไม่ได้ฟังอยู่

AcceptErrorInfo

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

  • error

    รหัสข้อผิดพลาดที่ระบุว่าเกิดข้อผิดพลาดอะไรขึ้น

  • errorMessage

    string

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

  • socketId

    ตัวเลข

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

AcceptInfo

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

  • clientSocketId

    ตัวเลข

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

  • socketId

    ตัวเลข

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

CreateInfo

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

  • socketId

    ตัวเลข

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

ListenOptions

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

  • งานค้าง

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

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

  • ช่อง

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

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

  • PSM

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

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

ReceiveError

ค่าแจกแจง

"ยกเลิกการเชื่อมต่อ"
การเชื่อมต่อถูกตัด

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

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

ReceiveErrorInfo

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

  • error

    รหัสข้อผิดพลาดที่ระบุว่าเกิดข้อผิดพลาดอะไรขึ้น

  • errorMessage

    string

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

  • socketId

    ตัวเลข

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

ReceiveInfo

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

  • ข้อมูล

    ArrayBuffer

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

  • socketId

    ตัวเลข

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

SocketInfo

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

  • จัดการ

    string ไม่บังคับ

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

  • bufferSize

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

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

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

    boolean

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

  • ชื่อ

    string ไม่บังคับ

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

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

    boolean

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

  • ต่อเนื่อง

    boolean

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

  • socketId

    ตัวเลข

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

  • uuid

    string ไม่บังคับ

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

SocketProperties

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

  • bufferSize

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

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

  • ชื่อ

    string ไม่บังคับ

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

  • ต่อเนื่อง

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

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

วิธีการ

close()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

connect()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • จัดการ

    string

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

  • uuid

    string

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

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

create()

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

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

พารามิเตอร์

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

    SocketProperties ไม่บังคับ

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

  • Callback

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

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

    (createInfo: CreateInfo)=>void

    • createInfo

      ผลของการสร้างซ็อกเก็ต

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

  • Promise<CreateInfo>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

disconnect()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

getInfo()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • Callback

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

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

    (socketInfo: SocketInfo)=>void

    • socketInfo

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

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

  • Promise<SocketInfo>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

getSockets()

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

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

พารามิเตอร์

  • Callback

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

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

    (sockets: SocketInfo[])=>void

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

  • Promise<SocketInfo[]>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

listenUsingL2cap()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • uuid

    string

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

  • ตัวเลือก

    ListenOptions ไม่บังคับ

    ตัวเลือกเพิ่มเติมสำหรับบริการ

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

listenUsingRfcomm()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • uuid

    string

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

  • ตัวเลือก

    ListenOptions ไม่บังคับ

    ตัวเลือกเพิ่มเติมสำหรับบริการ

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

send()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

  • ข้อมูล

    ArrayBuffer

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

  • Callback

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

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

    (bytesSent: number)=>void

    • bytesSent

      ตัวเลข

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

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

  • คำมั่นสัญญา<number>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

setPaused()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

    boolean

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

update()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

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

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

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

  • Callback

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

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

    ()=>void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ 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