You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Swift获取iPhone蓝牙设置中已连接的外设列表

获取iPhone已连接蓝牙外设列表的替代方案

Core Bluetooth框架仅能扫描可被主动发现的蓝牙设备,无法直接读取系统蓝牙设置中已配对/已连接的全量设备列表——这是iOS隐私权限限制导致的。以下是几种可行的替代方案:

  • 使用ExternalAccessory框架
    该框架可获取通过MFi(Made for iPhone/iPad)认证的蓝牙外设(如蓝牙键盘、音箱等符合标准的设备)。
    代码示例:

    // 导入头文件
    #import <ExternalAccessory/ExternalAccessory.h>
    
    // 获取已连接的MFi外设列表
    NSArray<EAAccessory *> *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
    for (EAAccessory *accessory in connectedAccessories) {
        NSLog(@"设备名称:%@,型号:%@", accessory.name, accessory.modelNumber);
    }
    

    注意:需在Info.plist中添加UISupportedExternalAccessoryProtocols键,指定App支持的外设协议,否则无法获取对应设备。

  • 基于Core Bluetooth的间接维护方案
    若仅需追踪App自身连接过的设备,可通过监听CBPeripheral的state属性判断连接状态(当状态为CBPeripheralStateConnected时标记为已连接),并自行维护一个设备列表。但此方法无法获取系统其他App连接的设备。

  • 权限说明
    无论使用哪种方案,都需在Info.plist中添加对应蓝牙权限描述:

    • iOS 13及以上:NSBluetoothAlwaysUsageDescription
    • iOS 12及以下:NSBluetoothPeripheralUsageDescription
      且iOS系统始终限制第三方App访问完整的蓝牙配对/连接列表,这是隐私保护的强制要求。

内容的提问来源于stack exchange,提问作者Ajeet Singh Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:22:07