CoreBluetooth 或 EAAccessoryManager 和免提

Posted

技术标签:

【中文标题】CoreBluetooth 或 EAAccessoryManager 和免提【英文标题】:CoreBluetooth or the EAAccessoryManager and hands free 【发布时间】:2014-11-28 14:53:27 【问题描述】:

是否可以使用 CoreBluetooth 或 EAAccessoryManager 知道 iPhone 是否与汽车中的免提系统配对?如果没有,还有其他方法吗?

【问题讨论】:

BLE 不是。适合音频。所以它不应该是用于免提设备的媒体。 免提设备是 AVAudiosession 中的可见路由 我也有同样的问题 【参考方案1】:

如果 iPhone 将汽车视为配件,您可以致电获取连接的配件:

[[EAAccessoryManager sharedAccessoryManager] connectedAccessories];

这将返回一个 EAAccessory 对象数组,然后您可以查询这些对象以获取某些信息,例如名称:accessory.name

我不确定这是否适用于自己从未尝试过的汽车(我已将其与其他配件一起使用),因此我建议您创建一个测试应用程序,将连接的配件记录到屏幕上要求并自己测试。

这是EAAccessoryManager 和EAAccessory 的文档。

【讨论】:

感谢您的回答。我已经对此进行了测试,并且汽车没有出现在连接的配件中。我认为 EAAccessoryManager 只显示 MFI 程序下的附件。有什么方法可以检测不符合 MFI 程序的配件吗? 据我所知,蓝牙的唯一objective-c 框架是CoreBluetooth 和ExternalAccessory。这并不是说没有第三方可以使用非 MFI 配件。除此之外,您可以查看 IOKit 或一些 C 库。您必须小心,因为其中一些框架是私有的,如果您在项目中链接它们,您的应用将被苹果拒绝。 对不起,我帮不上忙

以上是关于CoreBluetooth 或 EAAccessoryManager 和免提的主要内容,如果未能解决你的问题,请参考以下文章

CoreBluetooth 与非 iOS 设备的连接

CoreBluetooth 和音频流

使用 CoreBluetooth 通过 iOS 设备连接到 Windows 10

使用 CoreBluetooth/CBCentralManager.h 框架

CoreBluetooth 代表主队列/主线程?

CoreBluetooth 外围设备:didDiscoverServices 未触发