如何在 iPhone 上获取已配对的蓝牙耳机列表?

Posted

技术标签:

【中文标题】如何在 iPhone 上获取已配对的蓝牙耳机列表?【英文标题】:How to get list of paired Bluetooth headsets on iPhone? 【发布时间】:2011-05-05 00:55:52 【问题描述】:

我正在尝试在我的 iPhone 上获取已配对的蓝牙耳机设备列表。我尝试了如下外部附件框架:

[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];

但附件数组始终为空。我错过了什么?获取已连接蓝牙耳机列表的正确方法是什么?

假设我可以获得蓝牙耳机列表,有没有办法将音频输出重定向到某个蓝牙耳机?

根据下面的代码,无法选择将音频发送到哪个设备:

UInt32 allowBluetoothInput = 1;
AudiosessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput,
                                sizeof (allowBluetoothInput), &allowBluetoothInput);

感谢您的帮助,

麦尔达

PS:我也试过Apple's sample 应用外部附件框架,没有运气!

【问题讨论】:

外部附件框架仅适用于 30 针底座连接器。 @JustSid 根据 Apple 的文档,External Accessory Framework 支持通过蓝牙无线连接的外部设备:“External Accessory 框架支持通过 30 针与连接到基于 iOS 的设备的外部硬件进行通信坞站连接器或使用蓝牙无线连接。” 这个运气好吗?我正在尝试以最小的成功做同样的事情。只想通过应用帮助与蓝牙耳机配对。 【参考方案1】:

你解决过这个问题吗?我是外部附件框架的新手,但据我所知,这个框架只支持符合 MFi 的设备:http://developer.apple.com/library/ios/#qa/qa1657/_index.html

【讨论】:

【参考方案2】:

为了解决这个问题,我使用了AVFoundation.framework 中的AVAudioSeesion,并使用这行代码检查了可用的输入:

NSArray *availInputs = [[AVAudioSession sharedInstance] availableInputs];

如果您还需要在新设备连接或断开连接时收到通知,您可以将观察者注册到AVAudioSessionRouteChangeNotification(您必须打开 setup new AVAudioSession

请在此处查看我的完整答案: https://***.com/a/29367963/1787109

【讨论】:

以上是关于如何在 iPhone 上获取已配对的蓝牙耳机列表?的主要内容,如果未能解决你的问题,请参考以下文章

获取已连接的蓝牙 LE 设备列表

android的蓝牙匹配连接

如何获取蓝牙配对设备的设备名称?

如何以编程方式判断蓝牙设备是不是已连接?

如何查看安卓手机中已配对蓝牙设备信息

Android蓝牙协议-蓝牙配对与连接