这个问题已经在Stack Overflow in 2013上问过了,但是还需要更新。macOS的核心蓝牙功能被改变,使其更符合自macOS 10.13以来的iOS。
这个问题的答案是
CoreBluetooth是一个用于蓝牙LE通信的iOS框架。IOBluetooth是一个OS框架
这不再是真的了,核心蓝牙并不完全是一个iOS框架,尽管IOBluetooth是macOS专有的
CoreBluetooth用于访问蓝牙低能API。IOBluetooth是用于蓝牙经典接口的
这也不是真实的,因为核心蓝牙并不是专为BLE。
CoreBluetooth文档声明:
与蓝牙低能和BR/EDR (“经典”)设备通信。
这似乎是直截了当的;核心蓝牙是用于蓝牙通信,包括BLE和经典。
IOBluetooth文档声明:
获得对蓝牙设备的用户空间访问。
但这并不特别有启发性。
在CoreBluetooth on macOS 10.13+的时代,IOBluetooth和CoreBluetooth在macOS上的主要现代用例是什么?
发布于 2021-08-15 17:58:40
CoreBluetooth在BR/EDR和L2CAP上支持BLE、GATT。尽管它是总结,但它不支持大多数经典的配置文件。特别是它只支持BR/EDR上的GATT。它不支持其他协议。(关贸总协定对BR/EDR在我的经验中是非常罕见的。我从未遇到过真正支持它的设备。)它不支持SDP,也不能用于发现大多数经典设备。
IOBluetooth支持各种经典协议,包括SDP、RFCOMM和L2CAP。它支持像音频和HCI设备这样的东西。据我所知,它并不直接支持BLE;它嵌入了CoreBluetooth。(我相信它可以对BLE做一些非常低级的发现,但这不是你想要使用的。)
我不认为这种情况在10.13就发生了根本的变化。最重要的改变(我认为主要是为了支持催化剂)是核心蓝牙在平台之间变得更加统一。我不认为这从根本上改变了框架的用途。
https://stackoverflow.com/questions/68793810
复制相似问题