在我的应用程序中,我想检查已连接到手机的AVAudio portTypes.下面的代码适用于BluetoothA2DP和耳机,但是当我将手机连接到我的汽车免提装置时,它不适用于BluetoothHFP.谁能帮我?!我认为已经通过免提/ AV /蓝牙以及许多其他人的所有SO帖子,但无法解决为什么它没有识别BluetoothHFP输出portType.
import AVFoundation func startCheckAVConnection() { // set the AVAudioSession to allow bluetooth. This do/try/catch doesn't seem to make a difference if it is here or not. do{ try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,with: AVAudioSessionCategoryOptions.allowBluetooth) } catch{ print(error) } // Check possible outputs for handsfree let outputs = AVAudioSession.sharedInstance().currentRoute.outputs if outputs.count != 0 { for output in outputs { if output.portType == AVAudioSessionPortBluetoothA2DP { peripheralLabel.text = "connected to BluetoothA2DP" } else if output.portType == AVAudioSessionPortBluetoothHFP { // NOT RECOGNISED peripheralLabel.text = "connected to BluetoothHFP" } else if output.portType == AVAudioSessionPortHeadphones { peripheralLabel.text = "connected to Headphones" } } } else { peripheralLabel.text = "Please connect handsfree" } // Add observer for audioRouteChangeListener NotificationCenter.default.addObserver( self,selector: #selector(TopVC.audioRouteChangeListener(_:)),name: NSNotification.Name.AVAudioSessionRouteChange,object: nil) }