Search code examples
bluetoothrfcommsppmacos-montereyiobluetooth

Cannot create a Bluetooth SPP connection on MacOS Monterey


Since upgrading to macOS Monterey, we have been unable to create a Bluetooth SPP connection to any hardware device.

  • The SPP service does not appear to be supported. When listing the services for the device, the SPP service is not listed at all, as it was in previous OS versions.

  • SPP Connection to the device is blocked by the operating system (except in extreme cases where we open a socket connection while the device is still connecting to other Bluetooth services)

We are using a headphone-type device that successfully pairs and connects to the computer with A2DP, HFP and a few other standard services. However, it is unable to connect to SPP service, which was previously available up until Big Sur. Has anyone else faced a similar issue -- and are there currently workarounds to establish a stable Bluetooth SPP connection on macOS Monterey?


Solution

  • After communications with Apple support, the issue has been resolved as of Monterey 12.3 Beta 4.

    1 - RFCOMM handles are now properly returned.

    2 - IOBluetooth.recentDevices() still does not return devices, which was part of the problem described above, but can be circumvented by leveraging IOBluetooth.pairedDevices() instead.