如何知道iOS中是否已连接蓝牙设备



了解蓝牙设备如何连接的最佳方法是什么?我正在使用CBCentralManager来识别蓝牙是否已通电,但我无法了解如何识别蓝牙设备是否已连接。

我正在通过已连接的蓝牙设备实现AVAudioSession呼叫的路由,但由于无法查找蓝牙设备是否已连接,AudioSessionCategory更改被反复调用。如果有人试图实施这种行为,您的意见可能会有所帮助。请分享信息。

您在这里描述的蓝牙是一种音频设备,几乎可以肯定"经典的";蓝牙。这与核心蓝牙无关,核心蓝牙主要通过BLE处理GATT连接(以及其他一些使用较少的协议(。使用CoreBluetooth无法找到任何有关已连接音频设备的信息。

要检查音频路由,请参阅AVAudioSesssion.currentRoute.outputs。portType会告诉您它是否是蓝牙设备。注意,有几种类型可以分类为";蓝牙";出于您的目的:

  • 蓝牙A2DP:高品质音乐(单向(
  • bluetoothHFP:双向(麦克风/扬声器(语音;低质量
  • carAudio:CarPlay(非CarPlay系统为A2DP或HFP(
  • bluetoothLE:助听器。虽然这是BLE,但它不是核心蓝牙的一部分

我正在使用CBPeripheral.state == .connected检查BLE设备的状态。

来自文件:

/**
*  @enum CBPeripheralState
*
*  @discussion Represents the current connection state of a CBPeripheral.
*
*/
@available(iOS 7.0, *)
public enum CBPeripheralState : Int {

case disconnected = 0
case connecting = 1
case connected = 2
@available(iOS 9.0, *)
case disconnecting = 3
}

相关内容

最新更新