運作方式
將瀏覽器連線到低功耗藍牙裝置,並顯示完整的 GATT 樹:每個主要服務、其中的特徵、每個特徵支援的操作(讀取、寫入、通知或指示)以及關聯的描述元,標準元素還會同時顯示 128 位元 UUID 與 16 位元短識別碼。
可讀的數值會自動讀取,並依照 Bluetooth SIG 規範解析:電量以百分比顯示,Device Information 服務顯示為廠商、型號、序號以及韌體、硬體與軟體版本,PnP ID 顯示為廠商與產品識別碼配對。沒有定義意義的內容則以文字、數字或十六進位傾印顯示。
你還可以訂閱會發送通知的特徵,即時觀察數值變化——心率、溫度或計數器——並將整個掃描結果匯出為 JSON。本工具只讀取,絕不寫入裝置。所有通訊都透過 Web Bluetooth API 在你的裝置與週邊之間進行,不會傳送到任何伺服器。
範例
0x180F → 0x2A195B → 91 %Battery 服務只用一個位元組表示剩餘電量,因此 0x5B 相當於 91 %。0x180A → 0x2A50 (PnP ID)USB Implementers Forum · VID 0x046D · PID 0xC52B · v1.0.0PnP ID 使用與 USB 相同的編碼標示廠商與產品,因此可在 usb.ids 目錄中查詢。6e400001-b5a3-f393-e0a9-e50e24dcca9eNordic UART Service128 位元 UUID 屬於廠商自訂服務;其中最常見的,例如 Nordic 的序列埠服務,會顯示名稱。使用情境
- 無需安裝廠商應用程式,即可查看感測器、體重計或穿戴裝置的剩餘電量。
- 在升級裝置或申請保固前,查看其型號、序號與韌體版本。
- 在韌體開發過程中,驗證週邊是否以正確的屬性廣播預期的服務與特徵。
- 找出廠商自訂特徵的 UUID,以便在自己的應用程式中使用。
- 當某個應用程式收不到資料時,即時確認通知是否送達以及送達頻率。
- 將裝置完整的 GATT 樹匯出為 JSON,作為報告附件存檔。
常見問題
為什麼在我的 iPhone 或 Firefox 上無法使用?
Web Bluetooth API 只在以 Chromium 為基礎的瀏覽器中實作——Chrome、Edge 與 Opera——支援 Windows、macOS、Linux、ChromeOS 和 Android。Firefox 與 Safari 沒有實作;在 iOS 上所有瀏覽器都使用系統引擎,因此同樣無法使用。此外還需要 HTTPS,且裝置的藍牙必須已開啟。
裝置已開機,但沒有出現在清單中。
通常有三個原因:週邊已經連線到其他應用程式或其他電腦,因而停止廣播;它沒有進入可被探索模式,許多裝置需要長按按鈕才能開啟;或者所選的篩選條件太窄。請改用顯示附近全部裝置的選項,並把裝置靠近一些。
為什麼我看到的服務比原生應用程式少?
網頁只能看到連線之前已申請過的服務,因此本工具會申請全部標準服務,並允許你補充已知的廠商自訂 UUID。此外,瀏覽器還維護一份基於安全考量的服務黑名單——其中包括人機介面裝置 (HID) 與韌體更新服務——任何網頁都無法讀取。
特徵的各項屬性是什麼意思?
「讀取」表示隨時都可以請求該數值。「寫入」與「無回應寫入」表示裝置接受接收資料,差別在於是否需要確認。「通知」與「指示」表示由裝置在數值變化時主動送出;差別在於指示需要用戶端確認,因此較慢但較可靠。
為什麼有些元素的 UUID 很短,有些卻非常長?
像 0x180F 或 0x2A19 這樣的 16 位元識別碼由 Bluetooth SIG 保留,在規範中有明確意義,因此工具會顯示其官方名稱。128 位元 UUID 屬於廠商:只有廠商自己的應用程式知道其中內容,不過這裡仍會以文字、數字或十六進位顯示。
這個工具會向裝置寫入或修改任何內容嗎?
不會。它只讀取數值,並依你的選擇啟用通知,而訂閱通知並不會修改裝置的設定。它從不向特徵寫入,因此不會讓週邊進入非預期狀態。
裝置資料會離開我的電腦嗎?
不會。連線由瀏覽器透過你電腦的藍牙介面卡完成,讀取到的任何數值都不會傳送到伺服器。權限由你在瀏覽器的選擇器中逐一裝置授予,並且可以隨時撤銷。