跳到主要內容

藍牙

搜尋附近嘅藍牙低功耗(BLE)裝置,檢查訊號強度同廣播資料,瀏覽 GATT 服務同特徵,並即時睇到已連接周邊裝置嘅數據。

概覽畫面,包含掃描控制同以 RSSI 排序嘅附近裝置。
每個裝置列都會顯示名稱、RSSI 及是否可連接。

概覽

藍牙工具利用 Apple 嘅 CoreBluetooth 框架,作為 BLE(藍牙低功耗)中央裝置,搜尋附近周邊裝置。會顯示所有發現到嘅裝置,包括即時訊號強度(RSSI)、廣播資料同連接狀態。你可以連接可連接嘅周邊裝置,瀏覽佢哋嘅 GATT 服務同特徵、讀取數值、訂閱通知,以及檢查製造商資料。

目錄


概覽畫面

概覽畫面係藍牙工具嘅主頁面,包含搜尋欄、帶有掃描控制嘅狀態卡,以及可捲動嘅已發現裝置清單。

畫面頂部有個文字欄,可以根據名稱篩選裝置清單。輸入關鍵字即時縮窄清單,只顯示廣播名稱或周邊名稱包含搜尋文字(不分大小寫)嘅裝置。當欄位唔係空時會顯示清除按鈕。

藍牙狀態卡

狀態卡會顯示:

  • 藍牙狀態 標籤,顯示目前無線電狀態,並以顏色區分:
    • 已開啟(綠色)— 藍牙已啟動,可以進行掃描。
    • 已關閉(紅色)— 藍牙無線電已關閉。
    • 未授權(橙色)— 用戶拒絕咗應用程式使用藍牙權限。
    • 不支援(紅色)— 裝置硬件唔支援藍牙。
    • 未知 / 重設中(灰色)— 系統仍然判斷緊藍牙狀態。
  • 掃描控制按鈕(只會喺藍牙已開啟時顯示):
    • 停止掃描(紅色)— 停止進行中嘅掃描。
    • 開始掃描(綠色)— 開始搜尋附近周邊裝置。

打開工具並且藍牙已開啟時,會自動開始掃描。

裝置清單

已發現嘅裝置會以可捲動清單顯示,按 RSSI 排序(訊號最強排最前)。清單會即時更新,當有新裝置出現或現有裝置更新廣播資料時都會反映。

裝置列

每個裝置會以卡片形式顯示,內容包括:

  • 一個藍牙圖示,包圍喺圓形徽章內。圓圈上有白色弧線,根據裝置訊號強度(0–100%)比例填滿。
  • 裝置名稱 — 廣播本地名稱或周邊名稱。冇名稱嘅裝置會顯示為 [No Name]
  • RSSI — 接收訊號強度,以 dB 顯示(例如 RSSI: -43 dB)。
  • 左下角有狀態指示,顯示以下其中一項:
    • 已連接(綠色)— 裝置目前已連接。
    • 可連接(藍色)— 裝置廣播接受連接。
    • 服務:N — 裝置廣播嘅 GATT 服務數量(只會喺有服務但未連接時顯示)。
    • (無標籤) — 裝置唔可連接,亦冇廣播服務。
  • 右側有尾部指示
    • 如果裝置已連接,顯示綠色剔號圖示。
    • 如果裝置可連接,顯示箭咀>),可點擊進入詳情。
    • 如果裝置唔接受連接,顯示不可連接文字。

點擊任何裝置列可進入裝置詳情畫面

空狀態

概覽畫面會根據情況顯示不同空狀態:

  • 掃描中 — 初次掃描時未發現裝置,會顯示放大鏡圖示同載入動畫。
  • 藍牙關閉 / 不支援 — 顯示斜線藍牙圖示、目前狀態及提示開啟藍牙。
  • 已停止掃描 — 當藍牙已開啟但手動停止掃描且清單冇裝置時,顯示藍牙圖示同開始掃描按鈕。

裝置詳情畫面

點擊裝置列會打開專屬詳情畫面。畫面分為標題區、訊號強度儀表及三個內容分頁。

標題及連接

標題區包括:

  • 返回按鈕< 裝置),返回概覽畫面。
  • 明顯顯示裝置名稱
  • 連接狀態指示 — 彩色圓點加標籤:
    • 已連接(綠色)
    • 連接中(橙色)
    • 已斷線(紅色)
    • 斷線中(橙色)
  • 連接 / 斷線按鈕(只會喺可連接裝置顯示):
    • 連接(藍色)— 發起 BLE 連接。建立連接時會顯示載入動畫。
    • 連接中...(藍色,停用)— 連接過程中顯示。
    • 斷線(紅色)— 終止現有連線。

成功連接後,工具會自動發現所有 GATT 服務及其特徵。可讀特徵會即時讀取,支援通知嘅特徵會自動訂閱。

訊號強度儀表

訊號強度區域提供裝置無線電訊號嘅詳細即時視圖:

  • 圓形儀表 — 弧線由 0% 填至 100%,以角度漸變(紅至橙至黃至綠)。中央顯示目前 RSSI(dBm)。

  • 大約距離 — 根據 RSSI 計算嘅人類可讀估算:

    RSSI 範圍標籤
    -30 至 -50 dBm極近
    -51 至 -65 dBm接近
    -66 至 -80 dBm中等
    -81 至 -90 dBm遙遠
    低於 -90 dBm非常遠
  • 訊號條 — 5 格訊號指示,根據訊號強度百分比填滿。

  • 訊號質素 — 文字標籤:極佳(>80%)、良好(>60%)、一般(>40%)、較差(>20%)、極差(<=20%)。

  • RSSI — 原始 dBm 數值。

  • TX Power — 發射功率(dBm),如裝置有廣播。此值代表距離發射器 1 米時嘅訊號強度,可用作估算距離。

  • 訊號歷史 — 最近 20 次 RSSI 讀數嘅滾動長條圖,按顏色區分(綠 >= -60,黃 >= -75,紅 < -75)。有助視覺化訊號穩定性。

資訊分頁

資訊分頁顯示裝置一般資料,以鍵值列方式排列:

欄位說明
名稱廣播或周邊名稱(或 [No Name])。
識別碼CoreBluetooth 指派嘅周邊 UUID。只係本地識別碼,唔係實際 MAC 地址。
RSSI目前接收訊號強度(dB)。
TX Power發射功率(dBm,僅裝置有廣播時顯示)。
可連接裝置是否接受 BLE 連接(是 / 否)。
狀態目前連接狀態(已連接、連接中、已斷線、斷線中)。
發現時間本次掃描期間首次見到裝置嘅時間戳。
最後更新最近一次廣播或 RSSI 更新嘅時間戳。

鍵值列下方,若裝置有提供相關資料,會顯示兩個額外區域:

  • 廣播服務 — 裝置廣播封包內包含嘅 GATT 服務 UUID 清單。已知標準服務會顯示人類可讀名稱(例如 180F (Battery Service)180A (Device Information))。完整清單見已識別服務
  • 製造商資料 — 廣播內原始製造商專屬資料,以十六進制字串顯示。首兩個位元組為 Bluetooth SIG 公司識別碼(小端序)。

服務分頁

只限裝置已連接時可用。顯示連接期間發現嘅完整 GATT 服務及特徵樹。

每個服務以可展開列顯示:

  • 彩色圖示,代表服務類型:
    • 藍色 — 通用服務(Generic Access 1800、Generic Attribute 1801
    • 綠色 — 電池服務(180F
    • 橙色 — 裝置資訊(180A
    • 紫色 — 廠商專屬服務(UUID 以 FE 開頭)
    • 灰色 — 其他/未知服務
  • 服務名稱(如屬已知服務會由 UUID 解析),及原始 UUID 字串。
  • 徽章,顯示該服務下特徵數量。
  • 箭咀,展開時會旋轉。

已識別服務

UUID服務名稱
1800Generic Access
1801Generic Attribute
180ADevice Information
180FBattery Service
1812HID(人機介面裝置)
1813掃描參數
1819位置與導航
181C用戶資料
FE59Apple Notification Center

展開服務後會顯示其特徵。每個特徵列顯示:

  • 根據主要屬性顯示彩色圖示(紫色:可讀寫,藍色:只讀,綠色:只寫,橙色:只通知,灰色:其他)。
  • 特徵名稱(如屬已知 GATT 特徵會由 UUID 解析),及原始 UUID 字串。
  • 屬性標籤 — 每個支援屬性以小色塊標示:
    • Read(藍色)— 可隨時讀取數值。
    • Write(綠色)— 可寫入並獲確認。
    • Write No Response(淺綠)— 可寫入但唔需確認。
    • Notify(橙色)— 特徵可主動推送更新。
    • Indicate(淺橙)— 類似 Notify,但有確認。
    • Auth(紫色)— 需認證簽名寫入。
  • 眼睛切換按鈕(有數值時顯示)。點擊可顯示特徵目前數值,並以多種格式展示:
    • Hex — 原始位元組序列。
    • String — 若位元組為有效文字,則以 UTF-8 解讀。
    • Numeric — 根據位元組長度自動解讀:
      • 1 byte:UInt8 數值
      • 2 bytes:UInt16 數值
      • 4 bytes:UInt32 數值及 Float 數值

已識別特徵

UUID特徵名稱
2A00Device Name
2A01Appearance
2A04Peripheral Preferred Connection Parameters
2A05Service Changed
2A19Battery Level
2A23System ID
2A24Model Number String
2A25Serial Number String
2A26Firmware Revision String
2A27Hardware Revision String
2A28Software Revision String
2A29Manufacturer Name String
2A2AIEEE 11073-20601 Regulatory Certification Data List
2A50PnP ID

數據分頁

數據分頁顯示已連接裝置嘅即時解讀數據。若裝置未連接,會顯示提示同連接按鈕(如可連接)或資訊訊息。

連接後,分頁會顯示最多三張卡片:

  • 製造商資料 — 廣播內製造商專屬負載:

    • 製造商 ID — 由製造商資料首兩個位元組(小端序)解析。已知 ID 包括 Apple(0x004C)、Microsoft(0x0006)、Samsung(0x0075)、Xiaomi(0x038F)、Bosch(0x01D7)。未知 ID 以十六進制顯示(如 ID: 0x1234)。
    • 原始數據 — 製造商資料位元組完整十六進制轉儲。
    • 位元組視覺化 — 橫向長條圖,每條代表一個位元組。高度按位元組值(0–255)比例顯示,方便快速辨識數據特徵。
  • 特徵數值 — 所有可讀特徵清單。每項顯示:

    • 特徵名稱(或未知時顯示 UUID)。
    • 解讀後數值(根據數據長度以位元組、UInt16、UInt32/Float、UTF-8 字串或十六進制顯示)。
    • 最多 8 位元組時會有小型長條圖,條形按數值大小上色(藍 < 30%,綠 < 60%,黃 < 80%,紅 >= 80%)。
    • 支援通知嘅特徵會自動更新數值。
  • 連接資訊 — 時間及訊號元數據:

    • 發現時間 — 首次見到裝置時間,並顯示自發現以來經過時間。
    • 最後更新 — 最近一次數據更新時間,如有 TX Power 亦會顯示。

權限與需求

  • 藍牙權限 — CoreBluetooth 需要用戶授權藍牙存取。如權限被拒絕,Lirum 會顯示權限畫面,並有按鈕打開 iOS 設定,方便用戶重新啟用。
  • 藍牙無線電 — 如藍牙已關閉,工具仍可進入,但掃描控制會停用,並顯示提示開啟藍牙。此情況下唔會顯示權限閘。
  • 藍牙權限由系統管理,冇明確「請求權限」按鈕。首次初始化 CoreBluetooth 時,系統會自動彈出授權提示。

技術細節

  • 工具以 BLE Central 身份運作,使用 CBCentralManager。會搜尋所有附近周邊裝置(scanForPeripherals(withServices: nil)),即無論裝置廣播咩服務都會發現。
  • RSSI(接收訊號強度指示)一般介乎 -30 dBm(極強,裝置極近)至 -100 dBm(極弱,裝置遠或有阻隔)。工具會用公式 (RSSI + 100) / 70 將此範圍正規化為 0–100%。
  • 已連接裝置,每 2 秒輪詢一次 RSSI(readRSSI())。小於 2 dB 嘅變化會被濾除,以減少畫面跳動。
  • 連接時,工具會呼叫 discoverServices(nil) 列出所有 GATT 服務,再對每個服務呼叫 discoverCharacteristics(nil, for:)。可讀特徵會自動用 readValue(for:) 讀取,支援通知嘅特徵會用 setNotifyValue(true, for:) 訂閱。
  • TX PowerCBAdvertisementDataTxPowerLevelKey)代表距離發射器 1 米時嘅訊號強度。如同時有 TX Power 同 RSSI,可用兩者差值估算路徑損耗及大約距離。
  • 製造商資料CBAdvertisementDataManufacturerDataKey)遵循 Bluetooth SIG 格式:首兩個位元組為公司識別碼(小端序),其後為廠商專屬負載。
  • 資訊分頁顯示嘅周邊識別碼係 CoreBluetooth 喺本機指派嘅 UUID。對同一裝置,跨應用啟動都會穩定,但唔係實際藍牙 MAC 地址(iOS 唔會公開)。

注意事項與限制

  • 你見到嘅資料取決於每個周邊裝置廣播咩內容,以及 iOS 透過 CoreBluetooth 釋出咩資料。有啲裝置只廣播最基本資料。
  • 好多裝置會顯示為 [No Name],因為佢哋冇喺廣播封包內包含本地名稱。
  • 距離估算只係根據 RSSI 門檻嘅大概指引。實際距離會因環境、障礙物、天線方向、發射功率等大幅變化。
  • 並非所有可連接裝置都一定能成功連接。有啲需要先喺 iOS 設定配對,有啲可能會拒絕第三方中央裝置連接。
  • 傳統藍牙裝置(非 BLE)唔會經 CoreBluetooth 顯示,亦唔會出現喺掃描結果。
  • RSSI 數值會因多徑干擾、人體吸收等環境因素快速波動。訊號歷史圖有助視覺上平滑變化。

疑難排解

  • 搵唔到裝置 — 請確保藍牙已開啟,停留喺藍牙畫面幾秒,如已停止掃描請點擊開始掃描
  • 權限被拒 — 請喺權限畫面點擊打開設定,再於 iOS 私隱設定為 Lirum 重新啟用藍牙存取。
  • 連接失敗 — 裝置可能需要先喺 iOS 設定配對,或者唔支援第三方應用連接,或已離開範圍。
  • 服務分頁冇內容 — 有啲裝置冇公開服務,或服務發現有延遲。連接後等幾秒。如仍然冇服務,裝置可能唔支援標準 GATT 配置。
  • 特徵數值只顯示十六進制 — 工具會嘗試將數值解讀為 UTF-8 文字及常見數值型別。如無法解讀,會顯示原始十六進制轉儲。