chrome.bluetoothLowEnergy

คำอธิบาย

chrome.bluetoothLowEnergy API ใช้เพื่อสื่อสารกับอุปกรณ์ Bluetooth Smart (พลังงานต่ำ) โดยใช้ Generic Attribute Profile (GATT)

ความพร้อมใช้งาน

ChromeOS เท่านั้น

ไฟล์ Manifest

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

"bluetooth"

ประเภท

Advertisement

Chrome 47 ขึ้นไป

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

  • manufacturerData

    ManufacturerData[] ไม่บังคับ

    รายการข้อมูลเฉพาะของผู้ผลิตที่จะรวมอยู่ในช่อง "ข้อมูลเฉพาะของผู้ผลิต" ของข้อมูลโฆษณา

  • serviceData

    ServiceData[] ไม่บังคับ

    รายการข้อมูลบริการที่จะรวมอยู่ในช่อง "ข้อมูลบริการ" ของข้อมูลการโฆษณา

  • serviceUuids

    string[] ไม่บังคับ

    รายการ UUID ที่จะรวมไว้ในช่อง "Service UUIDs" ของข้อมูลโฆษณา UUID เหล่านี้อาจอยู่ในรูปแบบ 16 บิต, 32 บิต หรือ 128 บิต

  • solicitUuids

    string[] ไม่บังคับ

    รายการ UUID ที่จะรวมไว้ในช่อง "Solicit UUIDs" ของข้อมูลโฆษณา UUID เหล่านี้อาจอยู่ในรูปแบบ 16 บิต, 32 บิต หรือ 128 บิต

  • ประเภท

    ประเภทของโฆษณา

AdvertisementType

Chrome 47 ขึ้นไป

ประเภทของโฆษณา หากเลือก "broadcast" ประเภทการโฆษณาที่ส่งจะเป็น ADV_NONCONN_IND และอุปกรณ์จะกระจายข้อมูลด้วยที่อยู่ MAC แบบสุ่ม หากตั้งค่าเป็น "อุปกรณ์ต่อพ่วง" ประเภทการโฆษณาจะเป็น ADV_IND หรือ ADV_SCAN_IND และอุปกรณ์จะกระจายสัญญาณด้วยที่อยู่ MAC ของอะแดปเตอร์บลูทูธจริง

ค่าแจกแจง

"ประกาศ"

"อุปกรณ์ต่อพ่วง"

Characteristic

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

  • instanceId

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

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

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

    พร็อพเพอร์ตี้ของลักษณะนี้

  • บริการ

    บริการ ไม่บังคับ

    บริการ GATT ที่ลักษณะนี้เป็นของ

  • uuid

    สตริง

    UUID ของลักษณะ เช่น 00002a37-0000-1000-8000-00805f9b34fb

  • value

    ArrayBuffer ไม่บังคับ

    ค่าลักษณะที่แคชไว้ในปัจจุบัน ค่านี้จะได้รับการอัปเดตเมื่อมีการอ่านหรืออัปเดตค่าของลักษณะผ่านการแจ้งเตือนหรือการระบุ

CharacteristicProperty

ค่าที่แสดงถึงพร็อพเพอร์ตี้ที่เป็นไปได้ของลักษณะเฉพาะ สิทธิ์ของลักษณะจะอนุมานจากพร็อพเพอร์ตี้เหล่านี้ โปรดดูข้อกำหนดของ Bluetooth 4.x เพื่อดูความหมายของพร็อพเพอร์ตี้แต่ละรายการ

ค่าแจกแจง

"ประกาศ"

"read"

"writeWithoutResponse"

"write"

"notify"

"indicate"

"authenticatedSignedWrites"

"extendedProperties"

"reliableWrite"

"writableAuxiliaries"

"encryptRead"

"encryptWrite"

"encryptAuthenticatedRead"

"encryptAuthenticatedWrite"

ConnectProperties

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

  • ถาวร

    บูลีน

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

Descriptor

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

  • ลักษณะเฉพาะ

    Characteristic ไม่บังคับ

    ลักษณะเฉพาะของ GATT ที่ข้อบ่งชี้นี้เป็นของ

  • instanceId

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

    แสดงผลตัวระบุที่กำหนดให้กับข้อบ่งชี้ (Descriptor) นี้ ใช้รหัสอินสแตนซ์เพื่อแยกแยะระหว่างข้อบ่งชี้จากอุปกรณ์ต่อพ่วงที่มี UUID เดียวกัน และเพื่อเรียกใช้ฟังก์ชันที่ใช้ตัวระบุข้อบ่งชี้ แสดง หากอินสแตนซ์นี้แสดงถึงลักษณะระยะไกล

  • สิทธิ์
    Chrome 52 ขึ้นไป

    สิทธิ์ของข้อบ่งชี้นี้

  • uuid

    สตริง

    UUID ของข้อบ่งชี้ลักษณะเฉพาะ เช่น 00002902-0000-1000-8000-00805f9b34fb

  • value

    ArrayBuffer ไม่บังคับ

    ค่าข้อบ่งชี้ที่แคชไว้ในปัจจุบัน ค่านี้จะได้รับการอัปเดตเมื่อมีการอ่านค่าของข้อบ่งชี้

DescriptorPermission

Chrome 52 ขึ้นไป

ค่าที่แสดงถึงสิทธิ์ที่เป็นไปได้สำหรับข้อบ่งชี้ โปรดดูความหมายของสิทธิ์แต่ละรายการในข้อกำหนดเฉพาะของบลูทูธ 4.x

ค่าแจกแจง

"read"

"write"

"encryptedRead"

"encryptedWrite"

"encryptedAuthenticatedRead"

"encryptedAuthenticatedWrite"

Device

Chrome 52 ขึ้นไป

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

  • ที่อยู่

    สตริง

    ที่อยู่ของอุปกรณ์ในรูปแบบ "XX:XX:XX:XX:XX:XX"

  • deviceClass

    number ไม่บังคับ

    คลาสของอุปกรณ์ ซึ่งเป็นฟิลด์บิตที่กำหนดโดย http://www.bluetooth.org/en-us/specification/assigned-numbers/baseband

  • name

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

    ชื่ออุปกรณ์ที่มนุษย์อ่านได้

ManufacturerData

Chrome 47 ขึ้นไป

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

  • เพิ่มเติม

    number[]

  • id

    ตัวเลข

Notification

Chrome 52 ขึ้นไป

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

  • shouldIndicate

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

    แฟล็กที่ไม่บังคับสำหรับการส่งการระบุแทนการแจ้งเตือน

  • value

    ArrayBuffer

    ค่าใหม่ของลักษณะเฉพาะ

NotificationProperties

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

  • ถาวร

    บูลีน

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

Request

Chrome 52 ขึ้นไป

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

  • อุปกรณ์

    อุปกรณ์ที่ส่งคำขอนี้

  • requestId

    ตัวเลข

    รหัสที่ไม่ซ้ำกันสำหรับคำขอนี้ ใช้รหัสนี้เมื่อตอบกลับคำขอนี้

  • value

    ArrayBuffer ไม่บังคับ

    ค่าที่จะเขียน (หากเป็นคำขอเขียน)

Response

Chrome 52 ขึ้นไป

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

  • isError

    บูลีน

    หากนี่เป็นการตอบกลับข้อผิดพลาด ค่านี้ควรเป็น "จริง"

  • requestId

    ตัวเลข

    รหัสของคำขอที่ตอบกลับ

  • value

    ArrayBuffer ไม่บังคับ

    ค่าการตอบกลับ คำขอเขียนและการตอบกลับข้อผิดพลาดจะไม่สนใจพารามิเตอร์นี้

Service

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

  • deviceAddress

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

    ที่อยู่อุปกรณ์ของอุปกรณ์ต่อพ่วงระยะไกลที่บริการ GATT เป็นเจ้าของ แสดง หากอินสแตนซ์นี้แสดงถึงบริการระยะไกล

  • instanceId

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

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

  • isPrimary

    บูลีน

    ระบุว่าประเภทของบริการนี้เป็นบริการหลักหรือบริการรอง

  • uuid

    สตริง

    UUID ของบริการ เช่น 0000180d-0000-1000-8000-00805f9b34fb

ServiceData

Chrome 47 ขึ้นไป

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

  • เพิ่มเติม

    number[]

  • uuid

    สตริง

เมธอด

connect()

Promise
chrome.bluetoothLowEnergy.connect(
  deviceAddress: string,
  properties?: ConnectProperties,
  callback?: function,
)
: Promise<void>

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

พารามิเตอร์

  • deviceAddress

    สตริง

    ที่อยู่บลูทูธของอุปกรณ์ระยะไกลที่ควรเปิดการเชื่อมต่อ GATT

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

    ConnectProperties ไม่บังคับ

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

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

createCharacteristic()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.createCharacteristic(
  characteristic: Characteristic,
  serviceId: string,
  callback?: function,
)
: Promise<string>

สร้างลักษณะเฉพาะของ GATT ที่โฮสต์ในเครื่อง ลักษณะนี้ต้องโฮสต์ภายใต้บริการที่ถูกต้อง หากรหัสบริการไม่ถูกต้อง ระบบจะตั้งค่า lastError ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • ลักษณะเฉพาะ

    ลักษณะที่จะสร้าง

  • serviceId

    สตริง

    รหัสของบริการที่จะสร้างลักษณะนี้

  • callback

    function ไม่บังคับ

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

    (characteristicId: string) => void

    • characteristicId

      สตริง

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

  • Promise<string>

    Chrome 91 ขึ้นไป

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

createDescriptor()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.createDescriptor(
  descriptor: Descriptor,
  characteristicId: string,
  callback?: function,
)
: Promise<string>

สร้างข้อบ่งชี้ GATT ที่โฮสต์ในเครื่อง ข้อบ่งชี้นี้ต้องโฮสต์ภายใต้ลักษณะเฉพาะที่ถูกต้อง หากรหัสลักษณะไม่ถูกต้อง ระบบจะตั้งค่า lastError ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • ข้อบ่งชี้

    ข้อบ่งชี้ที่จะสร้าง

  • characteristicId

    สตริง

    รหัสของลักษณะที่จะสร้างข้อบ่งชี้นี้

  • callback

    function ไม่บังคับ

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

    (descriptorId: string) => void

    • descriptorId

      สตริง

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

  • Promise<string>

    Chrome 91 ขึ้นไป

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

createService()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.createService(
  service: Service,
  callback?: function,
)
: Promise<string>

สร้างบริการ GATT ที่โฮสต์ในเครื่อง บริการนี้สามารถลงทะเบียนให้พร้อมใช้งานบนเซิร์ฟเวอร์ GATT ในเครื่องได้ ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • บริการ

    บริการที่จะสร้าง

  • callback

    function ไม่บังคับ

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

    (serviceId: string) => void

    • serviceId

      สตริง

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

  • Promise<string>

    Chrome 91 ขึ้นไป

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

disconnect()

Promise
chrome.bluetoothLowEnergy.disconnect(
  deviceAddress: string,
  callback?: function,
)
: Promise<void>

ปิดการเชื่อมต่อของแอปกับอุปกรณ์ที่มีที่อยู่ที่ระบุ โปรดทราบว่าการดำเนินการนี้ไม่ได้ทำลายลิงก์ทางกายภาพเสมอไป เนื่องจากอาจมีแอปอื่นๆ ที่มีการเชื่อมต่อแบบเปิดอยู่

พารามิเตอร์

  • deviceAddress

    สตริง

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

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

getCharacteristic()

Promise
chrome.bluetoothLowEnergy.getCharacteristic(
  characteristicId: string,
  callback?: function,
)
: Promise<Characteristic>

รับลักษณะ GATT ที่มีรหัสอินสแตนซ์ที่ระบุซึ่งเป็นของบริการ GATT ที่ระบุ หากมีลักษณะดังกล่าว

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ขอ

  • callback

    function ไม่บังคับ

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

    (result: Characteristic) => void

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

  • Chrome 91 ขึ้นไป

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

getCharacteristics()

Promise
chrome.bluetoothLowEnergy.getCharacteristics(
  serviceId: string,
  callback?: function,
)
: Promise<Characteristic[]>

รับรายการลักษณะ GATT ที่ค้นพบทั้งหมดซึ่งเป็นของบริการที่ระบุ

พารามิเตอร์

  • serviceId

    สตริง

    รหัสอินสแตนซ์ของบริการ GATT ที่ควรแสดงผลลักษณะเฉพาะ

  • callback

    function ไม่บังคับ

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

    (result: Characteristic[]) => void

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

  • Promise<Characteristic[]>

    Chrome 91 ขึ้นไป

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

getDescriptor()

Promise
chrome.bluetoothLowEnergy.getDescriptor(
  descriptorId: string,
  callback?: function,
)
: Promise<Descriptor>

รับข้อบ่งชี้ลักษณะเฉพาะของ GATT ด้วยรหัสอินสแตนซ์ที่ระบุ

พารามิเตอร์

  • descriptorId

    สตริง

    รหัสอินสแตนซ์ของข้อบ่งชี้ลักษณะเฉพาะของ GATT ที่ขอ

  • callback

    function ไม่บังคับ

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

    (result: Descriptor) => void

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

  • Promise<Descriptor>

    Chrome 91 ขึ้นไป

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

getDescriptors()

Promise
chrome.bluetoothLowEnergy.getDescriptors(
  characteristicId: string,
  callback?: function,
)
: Promise<Descriptor[]>

รับรายการข้อบ่งชี้ลักษณะเฉพาะของ GATT ที่เป็นของลักษณะเฉพาะที่ระบุ

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ควรแสดงผลข้อบ่งชี้

  • callback

    function ไม่บังคับ

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

    (result: Descriptor[]) => void

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

  • Promise<Descriptor[]>

    Chrome 91 ขึ้นไป

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

getIncludedServices()

Promise
chrome.bluetoothLowEnergy.getIncludedServices(
  serviceId: string,
  callback?: function,
)
: Promise<Service[]>

ดูรายการบริการ GATT ที่รวมอยู่ในบริการที่ระบุ

พารามิเตอร์

  • serviceId

    สตริง

    รหัสอินสแตนซ์ของบริการ GATT ที่ควรแสดงผลบริการที่รวมอยู่

  • callback

    function ไม่บังคับ

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

    (result: Service[]) => void

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

  • Promise<Service[]>

    Chrome 91 ขึ้นไป

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

getService()

Promise
chrome.bluetoothLowEnergy.getService(
  serviceId: string,
  callback?: function,
)
: Promise<Service>

รับบริการ GATT ด้วยรหัสอินสแตนซ์ที่ระบุ

พารามิเตอร์

  • serviceId

    สตริง

    รหัสอินสแตนซ์ของบริการ GATT ที่ขอ

  • callback

    function ไม่บังคับ

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

    (result: Service) => void

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

  • Promise<Service>

    Chrome 91 ขึ้นไป

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

getServices()

Promise
chrome.bluetoothLowEnergy.getServices(
  deviceAddress: string,
  callback?: function,
)
: Promise<Service[]>

รับบริการ GATT ทั้งหมดที่ค้นพบบนอุปกรณ์ระยะไกลด้วยที่อยู่ของอุปกรณ์ที่ระบุ

หมายเหตุ: หาก Service Discovery ยังไม่เสร็จสมบูรณ์ในอุปกรณ์ API นี้จะแสดงผลชุดย่อย (อาจว่างเปล่า) ของบริการ วิธีแก้ปัญหาคือเพิ่มการหน่วงเวลาตามเวลาและ/หรือเรียกซ้ำๆ จนกว่าจะแสดงผลจำนวนบริการที่คาดไว้

พารามิเตอร์

  • deviceAddress

    สตริง

    ที่อยู่บลูทูธของอุปกรณ์ระยะไกลที่ควรแสดงผลบริการ GATT

  • callback

    function ไม่บังคับ

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

    (result: Service[]) => void

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

  • Promise<Service[]>

    Chrome 91 ขึ้นไป

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

notifyCharacteristicValueChanged()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.notifyCharacteristicValueChanged(
  characteristicId: string,
  notification: Notification,
  callback?: function,
)
: Promise<void>

แจ้งอุปกรณ์ระยะไกลเกี่ยวกับค่าใหม่สำหรับลักษณะเฉพาะ หากแฟล็ก shouldIndicate ในออบเจ็กต์การแจ้งเตือนเป็นจริง ระบบจะส่งการบ่งชี้แทนการแจ้งเตือน โปรดทราบว่าลักษณะเฉพาะต้องตั้งค่าพร็อพเพอร์ตี้ "notify" หรือ "indicate" อย่างถูกต้องในระหว่างการสร้างเพื่อให้การเรียกนี้สำเร็จ ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • characteristicId

    สตริง

    ลักษณะเฉพาะที่จะส่งการแจ้งเตือน

  • การแจ้งเตือน
  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

readCharacteristicValue()

Promise
chrome.bluetoothLowEnergy.readCharacteristicValue(
  characteristicId: string,
  callback?: function,
)
: Promise<Characteristic>

ดึงค่าของลักษณะเฉพาะที่ระบุจากอุปกรณ์ต่อพ่วงระยะไกล

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ควรอ่านค่าจากอุปกรณ์ระยะไกล

  • callback

    function ไม่บังคับ

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

    (result: Characteristic) => void

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

  • Chrome 91 ขึ้นไป

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

readDescriptorValue()

Promise
chrome.bluetoothLowEnergy.readDescriptorValue(
  descriptorId: string,
  callback?: function,
)
: Promise<Descriptor>

ดึงค่าของข้อบ่งชี้ลักษณะเฉพาะที่ระบุจากอุปกรณ์ต่อพ่วงระยะไกล

พารามิเตอร์

  • descriptorId

    สตริง

    รหัสอินสแตนซ์ของข้อบ่งชี้ลักษณะเฉพาะของ GATT ที่ควรอ่านค่าจากอุปกรณ์ระยะไกล

  • callback

    function ไม่บังคับ

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

    (result: Descriptor) => void

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

  • Promise<Descriptor>

    Chrome 91 ขึ้นไป

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

registerAdvertisement()

Promise Chrome 47 ขึ้นไป
chrome.bluetoothLowEnergy.registerAdvertisement(
  advertisement: Advertisement,
  callback?: function,
)
: Promise<number>

สร้างโฆษณาและลงทะเบียนเพื่อใช้ในการโฆษณา หากต้องการเรียกใช้ฟังก์ชันนี้ แอปต้องตั้งค่าสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral เป็น "จริง" นอกจากนี้ API นี้จะใช้ได้กับแอปที่เปิดใช้อัตโนมัติในโหมดคีออสก์หรือโดยการตั้งค่าสวิตช์บรรทัดคำสั่ง "--enable-ble-advertising-in-apps" เท่านั้น ดู https://developer.chrome.com/apps/manifest/bluetooth หมายเหตุ: ฮาร์ดแวร์บางรุ่นรองรับโหมดส่วนกลางและโหมดอุปกรณ์ต่อพ่วงพร้อมกัน แต่ในฮาร์ดแวร์ที่ไม่รองรับ การโทรนี้จะเปลี่ยนอุปกรณ์เป็นโหมดอุปกรณ์ต่อพ่วง ในกรณีที่ฮาร์ดแวร์ไม่รองรับทั้งโหมดส่วนกลางและโหมดอุปกรณ์ต่อพ่วง การพยายามใช้อุปกรณ์ในทั้ง 2 โหมดจะทำให้เกิดลักษณะการทำงานที่ไม่ได้กำหนดไว้ หรือป้องกันไม่ให้แอปพลิเคชันที่มีบทบาทเป็นส่วนกลางอื่นๆ ทำงานอย่างถูกต้อง (รวมถึงการค้นหาอุปกรณ์บลูทูธพลังงานต่ำ)

พารามิเตอร์

  • โฆษณา

    โฆษณาที่จะลงโฆษณา

  • callback

    function ไม่บังคับ

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

    (advertisementId: number) => void

    • advertisementId

      ตัวเลข

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

  • Promise<number>

    Chrome 91 ขึ้นไป

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

registerService()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.registerService(
  serviceId: string,
  callback?: function,
)
: Promise<void>

ลงทะเบียนบริการที่ระบุกับเซิร์ฟเวอร์ GATT ในเครื่อง หากรหัสบริการไม่ถูกต้อง ระบบจะตั้งค่า lastError ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • serviceId

    สตริง

    รหัสที่ไม่ซ้ำกันของบริการที่สร้างขึ้น

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

removeService()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.removeService(
  serviceId: string,
  callback?: function,
)
: Promise<void>

นำบริการที่ระบุออก และยกเลิกการลงทะเบียนหากมีการลงทะเบียนไว้ หากรหัสบริการไม่ถูกต้อง ระบบจะตั้งค่า lastError ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • serviceId

    สตริง

    รหัสที่ไม่ซ้ำกันของบริการที่ลงทะเบียนไว้ในปัจจุบัน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

resetAdvertising()

Promise Chrome 61 ขึ้นไป
chrome.bluetoothLowEnergy.resetAdvertising(
  callback?: function,
)
: Promise<void>

รีเซ็ตการโฆษณาในอุปกรณ์ปัจจุบัน ระบบจะยกเลิกการลงทะเบียนและหยุดการโฆษณาที่มีอยู่ทั้งหมด

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

sendRequestResponse()

Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.sendRequestResponse(
  response: Response,
)
: void

ส่งการตอบกลับสำหรับคำขออ่าน/เขียนลักษณะหรือข้อบ่งชี้ ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • การตอบกลับ

    การตอบกลับคำขอ

setAdvertisingInterval()

Promise Chrome 55 ขึ้นไป
chrome.bluetoothLowEnergy.setAdvertisingInterval(
  minInterval: number,
  maxInterval: number,
  callback?: function,
)
: Promise<void>

กำหนดช่วงเวลาระหว่างโฆษณา 2 รายการที่แสดงต่อเนื่องกัน หมายเหตุ: เราจะพยายามอย่างเต็มที่ ช่วงเวลาจริงอาจแตกต่างจากช่วงเวลาที่ขออย่างมีนัยสำคัญ ฮาร์ดแวร์บางรุ่นมีช่วงเวลาขั้นต่ำ 100 มิลลิวินาที ค่าต่ำสุดและสูงสุดต้องไม่เกินช่วงที่ข้อกำหนดของ Bluetooth 4.2 อนุญาต

พารามิเตอร์

  • minInterval

    ตัวเลข

    ช่วงเวลาขั้นต่ำระหว่างโฆษณา (หน่วยเป็นมิลลิวินาที) ค่านี้ต้องไม่ต่ำกว่า 20 มิลลิวินาที (ตามข้อกำหนด)

  • maxInterval

    ตัวเลข

    ช่วงเวลาสูงสุดระหว่างโฆษณา (เป็นมิลลิวินาที) ค่านี้ต้องไม่เกิน 10240ms (ตามข้อกำหนด)

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

startCharacteristicNotifications()

Promise
chrome.bluetoothLowEnergy.startCharacteristicNotifications(
  characteristicId: string,
  properties?: NotificationProperties,
  callback?: function,
)
: Promise<void>

เปิดใช้การแจ้งเตือน/การระบุค่าจากลักษณะที่ระบุ เมื่อเปิดใช้แล้ว แอปพลิเคชันจะฟังการแจ้งเตือนได้โดยใช้เหตุการณ์ onCharacteristicValueChanged

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ควรเปิดใช้การแจ้งเตือน

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

    NotificationProperties ไม่บังคับ

    พร็อพเพอร์ตี้ของเซสชันการแจ้งเตือน (ไม่บังคับ)

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

stopCharacteristicNotifications()

Promise
chrome.bluetoothLowEnergy.stopCharacteristicNotifications(
  characteristicId: string,
  callback?: function,
)
: Promise<void>

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

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ควรหยุดเซสชันการแจ้งเตือนของแอปนี้

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

unregisterAdvertisement()

Promise Chrome 47 ขึ้นไป
chrome.bluetoothLowEnergy.unregisterAdvertisement(
  advertisementId: number,
  callback?: function,
)
: Promise<void>

ยกเลิกการลงทะเบียนการโฆษณาและหยุดการโฆษณา หากการโฆษณายกเลิกการลงทะเบียนไม่สำเร็จ วิธีเดียวที่จะหยุดการโฆษณาได้คือการรีสตาร์ทอุปกรณ์

พารามิเตอร์

  • advertisementId

    ตัวเลข

    รหัสของการโฆษณาที่จะยกเลิกการลงทะเบียน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

unregisterService()

Promise Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.unregisterService(
  serviceId: string,
  callback?: function,
)
: Promise<void>

ยกเลิกการลงทะเบียนบริการที่ระบุกับเซิร์ฟเวอร์ GATT ในเครื่อง หากรหัสบริการไม่ถูกต้อง ระบบจะตั้งค่า lastError ฟังก์ชันนี้จะใช้ได้ก็ต่อเมื่อแอปมีทั้งกลุ่มสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral ที่ตั้งค่าเป็น "จริง" สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • serviceId

    สตริง

    รหัสที่ไม่ซ้ำกันของบริการที่ลงทะเบียนไว้ในปัจจุบัน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

writeCharacteristicValue()

Promise
chrome.bluetoothLowEnergy.writeCharacteristicValue(
  characteristicId: string,
  value: ArrayBuffer,
  callback?: function,
)
: Promise<void>

เขียนค่าของลักษณะเฉพาะที่ระบุจากอุปกรณ์ต่อพ่วงระยะไกล

พารามิเตอร์

  • characteristicId

    สตริง

    รหัสอินสแตนซ์ของลักษณะ GATT ที่ควรเขียนค่าลงไป

  • value

    ArrayBuffer

    ค่าที่ควรส่งไปยังลักษณะระยะไกลเป็นส่วนหนึ่งของคำขอเขียน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

writeDescriptorValue()

Promise
chrome.bluetoothLowEnergy.writeDescriptorValue(
  descriptorId: string,
  value: ArrayBuffer,
  callback?: function,
)
: Promise<void>

เขียนค่าของข้อบ่งชี้ลักษณะเฉพาะที่ระบุจากอุปกรณ์ต่อพ่วงระยะไกล

พารามิเตอร์

  • descriptorId

    สตริง

    รหัสอินสแตนซ์ของข้อบ่งชี้ลักษณะเฉพาะของ GATT ที่ควรเขียนค่าลงไป

  • value

    ArrayBuffer

    ค่าที่ควรส่งไปยังข้อบ่งชี้ระยะไกลซึ่งเป็นส่วนหนึ่งของคำขอเขียน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 91 ขึ้นไป

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

กิจกรรม

onCharacteristicReadRequest

Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.onCharacteristicReadRequest.addListener(
  callback: function,
)

เริ่มทำงานเมื่ออุปกรณ์ส่วนกลางที่เชื่อมต่อขออ่านค่าของลักษณะที่ลงทะเบียนไว้ในเซิร์ฟเวอร์ GATT ในเครื่อง การไม่ตอบสนองต่อคำขอนี้เป็นเวลานานอาจทำให้การเชื่อมต่อถูกตัด เหตุการณ์นี้จะใช้ได้ก็ต่อเมื่อแอปตั้งค่าสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral เป็น "จริง" ทั้งคู่ สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (request: Request, characteristicId: string) => void

    • ส่งคำขอ
    • characteristicId

      สตริง

onCharacteristicValueChanged

chrome.bluetoothLowEnergy.onCharacteristicValueChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อค่าของลักษณะ GATT ระยะไกลเปลี่ยนแปลง ไม่ว่าจะเป็นผลมาจากคำขออ่าน หรือการแจ้งเตือน/การบ่งชี้การเปลี่ยนแปลงค่า ระบบจะส่งเหตุการณ์นี้ก็ต่อเมื่อแอปเปิดใช้การแจ้งเตือนโดยเรียกใช้ startCharacteristicNotifications

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (characteristic: Characteristic) => void

onCharacteristicWriteRequest

Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.onCharacteristicWriteRequest.addListener(
  callback: function,
)

เริ่มทำงานเมื่ออุปกรณ์ส่วนกลางที่เชื่อมต่อขอเขียนค่าของลักษณะที่ลงทะเบียนไว้ในเซิร์ฟเวอร์ GATT ในเครื่อง การไม่ตอบสนองต่อคำขอนี้เป็นเวลานานอาจทำให้การเชื่อมต่อขาดหายไป เหตุการณ์นี้จะใช้ได้ก็ต่อเมื่อแอปตั้งค่าสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral เป็น "จริง" ทั้งคู่ สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (request: Request, characteristicId: string) => void

    • ส่งคำขอ
    • characteristicId

      สตริง

onDescriptorReadRequest

Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.onDescriptorReadRequest.addListener(
  callback: function,
)

เริ่มทำงานเมื่ออุปกรณ์ส่วนกลางที่เชื่อมต่อขออ่านค่าของข้อบ่งชี้ที่ลงทะเบียนไว้ในเซิร์ฟเวอร์ GATT ในเครื่อง การไม่ตอบสนองต่อคำขอนี้เป็นเวลานานอาจทำให้การเชื่อมต่อถูกตัด เหตุการณ์นี้จะใช้ได้ก็ต่อเมื่อแอปตั้งค่าสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral เป็น "จริง" ทั้งคู่ สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (request: Request, descriptorId: string) => void

    • ส่งคำขอ
    • descriptorId

      สตริง

onDescriptorValueChanged

chrome.bluetoothLowEnergy.onDescriptorValueChanged.addListener(
  callback: function,
)

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

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (descriptor: Descriptor) => void

onDescriptorWriteRequest

Chrome 52 ขึ้นไป
chrome.bluetoothLowEnergy.onDescriptorWriteRequest.addListener(
  callback: function,
)

เริ่มทำงานเมื่ออุปกรณ์ส่วนกลางที่เชื่อมต่อขอเขียนค่าของข้อบ่งชี้ที่ลงทะเบียนไว้ในเซิร์ฟเวอร์ GATT ในเครื่อง การไม่ตอบสนองต่อคำขอนี้เป็นเวลานานอาจทำให้การเชื่อมต่อขาดหายไป เหตุการณ์นี้จะใช้ได้ก็ต่อเมื่อแอปตั้งค่าสิทธิ์ bluetooth:low_energy และ bluetooth:peripheral เป็น "จริง" ทั้งคู่ สิทธิ์เข้าถึงอุปกรณ์ต่อพ่วงอาจไม่พร้อมใช้งานสำหรับบางแอป

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (request: Request, descriptorId: string) => void

    • ส่งคำขอ
    • descriptorId

      สตริง

onServiceAdded

chrome.bluetoothLowEnergy.onServiceAdded.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการค้นพบบริการ GATT ใหม่ในอุปกรณ์ระยะไกล

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (service: Service) => void

onServiceChanged

chrome.bluetoothLowEnergy.onServiceChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อสถานะของบริการ GATT ระยะไกลมีการเปลี่ยนแปลง ซึ่งรวมถึงลักษณะเฉพาะและ/หรือข้อบ่งชี้ที่เพิ่มหรือนำออกจากบริการ ตลอดจนการแจ้งเตือน "ServiceChanged" จากอุปกรณ์ระยะไกล

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (service: Service) => void

onServiceRemoved

chrome.bluetoothLowEnergy.onServiceRemoved.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการนำบริการ GATT ที่ค้นพบก่อนหน้านี้ในอุปกรณ์ระยะไกลออก

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (service: Service) => void