直接回答:公共 API 無法獲取「設置-藍牙」中已配對列表
Apple 為保護用戶隱私,CoreBluetooth 框架不提供枚舉系統級已配對設備的接口。App 只能:
- 掃描周邊廣播包(`CBCentralManager scanForPeripheralsWithServices:`);
- 連接已知 `CBPeripheral`(需用戶先在 App 內發現/配對)。
替代方案
- 引導用戶在 App 內掃描並連接:掃描到目標設備後調用 `connectPeripheral:`,系統會自動處理配對流程(彈窗輸入 PIN 或確認),連接成功後將 `peripheral.identifier` 持久化(Keychain/UserDefaults),下次直連。
- 使用 ExternalAccessory 框架(MFi 設備):若設備加入 MFi 計劃,可用 `EAAccessoryManager.sharedAccessoryManager.connectedAccessories` 獲取已連接的 MFi 配件列表。
- 私有框架:`BluetoothManager`、`IOBluetooth` 等屬於 Private API,上架 App Store 會被拒,不建議使用。
學習資源
CoreBluetooth 入門教程(含心率監測 Demo):
Introduction to Core Bluetooth: Building a Heart Rate Monitor
總結
不要試圖讀取系統藍牙列表。正確路徑:App 內掃描 → 用戶確認連接 → 持久化標識符 → 後續直連。