CoreBluetooth 和 ExternalAccessory 框架之间有什么区别?

What's the difference between the CoreBluetooth and ExternalAccessory frameworks?

Apple 提供了以下两个框架,用于通过 iOS 与附近的蓝牙设备进行通信。

CoreBluetooth:

The Core Bluetooth framework provides the classes needed for your iOS and Mac apps to communicate with devices that are equipped with Bluetooth low energy wireless technology.

ExternalAccessory:

The External Accessory framework provides support for communicating with external hardware connected to an iOS-based device through either the Apple Lightning or 30-pin connector, or wirelessly using Bluetooth.

我之前使用CoreBluetooth框架成功与蓝牙设备通信。但是,我现在正在尝试与蓝牙打印机通信,但它没有出现在附近设备的扫描中。使用 ExternalAccessory 框架,它确实如此。

就与蓝牙设备的通信而言,这两个框架有何不同?为什么不同的蓝牙设备需要使用不同的框架?

Core Bluetooth 仅允许您使用 GATT 配置文件与低功耗蓝牙设备通信。

外部附件框架允许使用串行端口协议 (SPP) 等配置文件与 'legacy' 蓝牙设备进行通信。为了与使用外部附件框架的设备通信,设备必须通过 MFi 程序认证。

我还认为,为了获得一个可以与使用外部附件框架的 MFi 设备通信的应用程序,MFi 被许可人(即打印机供应商)需要提供一些文件来授权您的应用程序。

有两种蓝牙,一种是带宽非常有限但不需要用户在设置应用程序中进行任何配对的低功耗蓝牙,另一种是需要用户配对设备但为您提供更多功能的经典蓝牙和带宽。 CoreBluetooth 支持低功耗蓝牙,您可以通过开发者帐户使用它。 Bluetooth Classic 要求您加入 Apple MFi 计划。