iOS 26.5中CBCentralManager代理未触发,蓝牙权限对话框不弹出
iOS蓝牙权限对话框不弹出且CBCentralManager代理方法未调用问题
预期行为
初始化CBCentralManager时,iOS应弹出蓝牙权限对话框,随后调用centralManagerDidUpdateState方法。
实际行为
权限对话框从未弹出,centralManagerDidUpdateState方法也未被调用。CBCentralManager.authorization返回0(未确定状态)。
最小复现步骤
- 创建新的iOS Xcode项目
- 在
Info.plist中添加NSBluetoothAlwaysUsageDescription字段 - 将
ViewController替换为以下代码:
class ViewController: UIViewController, CBCentralManagerDelegate { var centralManager: CBCentralManager! override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) print("Auth: \(CBCentralManager.authorization.rawValue)") // 输出0 centralManager = CBCentralManager(delegate: self, queue: nil) } func centralManagerDidUpdateState(_ central: CBCentralManager) { print("State: \(central.state.rawValue)") // 从未被调用 } deinit { print("Deallocated") // 同样从未被调用 } }
控制台输出
Auth: 0
(无其他输出)
环境信息
- 实体iPhone设备,iOS 16.5
- Xcode 16
- 已测试
queue参数为nil和DispatchQueue.global()两种情况 - 已重置设备的位置与隐私设置,删除并重新安装应用
内容的提问来源于stack exchange,提问作者bn hao
相关产品推荐
相关产品推荐

