From fae841dae561783f8a697c78bf2cc90c8803902c Mon Sep 17 00:00:00 2001 From: ysicing Date: Mon, 28 Sep 2026 11:09:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(bluetooth):=20=E6=8E=92=E9=99=A4=E5=86=85?= =?UTF-8?q?=E7=BD=AE=E7=94=B5=E6=B1=A0=E7=94=B5=E6=BA=90=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Packages/XStatsKit/Sources/Metrics/BluetoothBattery.swift | 5 +++-- .../XStatsKit/Tests/MetricsTests/HistoryDatabaseTests.swift | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Packages/XStatsKit/Sources/Metrics/BluetoothBattery.swift b/Packages/XStatsKit/Sources/Metrics/BluetoothBattery.swift index acb56bf..bd2b26b 100644 --- a/Packages/XStatsKit/Sources/Metrics/BluetoothBattery.swift +++ b/Packages/XStatsKit/Sources/Metrics/BluetoothBattery.swift @@ -117,10 +117,11 @@ public enum BluetoothBatteryReader { } /// `pmset -g accps` 能补充部分 system_profiler / IORegistry 看不到的耳机和第三方 HID 电量。 - /// 无名称的电源项由 IORegistry 提供产品名,这里跳过以免显示成匿名设备。 + /// accps 也列出 Mac 内置电池;无名称的电源项由 IORegistry 提供产品名,这里都不作为附件展示。 static func parsePMSet(_ output: String) -> [BluetoothDevice] { output.split(whereSeparator: \.isNewline).compactMap { rawLine in - guard let source = parsePowerSourceLine(rawLine), !source.name.isEmpty else { return nil } + guard let source = parsePowerSourceLine(rawLine), !source.name.isEmpty, + source.name != "InternalBattery", !source.name.hasPrefix("InternalBattery-") else { return nil } return BluetoothDevice(name: source.name, address: "", kind: kind(forName: source.name, minorType: nil), batteries: [(tr("电量"), source.percent)], isCharging: source.isCharging) } diff --git a/Packages/XStatsKit/Tests/MetricsTests/HistoryDatabaseTests.swift b/Packages/XStatsKit/Tests/MetricsTests/HistoryDatabaseTests.swift index 2d96c22..b3224b5 100644 --- a/Packages/XStatsKit/Tests/MetricsTests/HistoryDatabaseTests.swift +++ b/Packages/XStatsKit/Tests/MetricsTests/HistoryDatabaseTests.swift @@ -78,6 +78,7 @@ import Testing @Test func parsesNamedAccessoryPowerSources() { let output = """ Now drawing from 'AC Power' + -InternalBattery-0 (id=23134307)\t80%; AC attached; not charging present: true -Magic Keyboard (id=1234)\t98%; discharging present: true -大唐西域进贡上等白玉耳坠 (id=5678)\t76%; charging present: true - (id=9999)\t24%; discharging present: true