CoreBluetooth和ExternalAccessory框架有什么区别?

11

苹果提供以下两个框架与iOS中附近的蓝牙设备通信。

CoreBluetooth:

Core Bluetooth框架提供了所需的类,使您的iOS和Mac应用程序能够与配备有蓝牙低功耗无线技术的设备通信。

ExternalAccessory:

外接配件框架支持通过Apple Lightning或30针连接器连接的iOS设备与外部硬件进行通信,或使用蓝牙进行无线通信。

我之前使用过CoreBluetooth框架成功地与蓝牙设备通信。然而,我现在正在尝试与蓝牙打印机通信,但它在扫描附近设备时没有出现。使用ExternalAccessory框架,则可以找到它。

这两个框架在与蓝牙设备通信方面有何不同?为什么不同的蓝牙设备需要使用不同的框架?

2个回答

6

蓝牙有两种,一种是蓝牙LE (低功耗蓝牙),带宽非常有限,但在设置应用程序中不需要进行用户配对。另一种是经典蓝牙,需要用户配对设备,但提供更多功能和带宽。CoreBluetooth支持蓝牙LE,并且您可以使用它来进行开发。而经典蓝牙则需要加入苹果的MFi计划。


我想我明白了。所以经典蓝牙设备即使通过设置进行配对,也不会在CoreBluetooth的扫描中显示?加入MFi计划是所有与经典蓝牙设备通信的应用程序的法律要求,还是只有当您想要看起来“真实”并发布到应用商店时才需要? - Extragorey
1
如果您不打算发布您的应用程序,那么您可以使用外部附件框架来连接设备。 - Paulw11
对于外部附件:如果我不想在应用商店上发布它,那么info.plist中的协议密钥是否也是必需的? - Fehler40

5

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

外部配件框架允许使用诸如串行端口协议(SPP)等配置文件与“传统”蓝牙设备进行通信。为了使用外部配件框架与设备进行通信,该设备必须在MFi计划下获得认证。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接