I am writing an iOS application that should receive data from a Bluetooth device (classic Bluetooth, not BLE). I need a pretty fast data transfer, 1 Mbps or faster, if possible. This already works with SPP on Android.
Apple only supports some of the Bluetooth profiles listed here: https://support.apple.com/en-us/HT204387 I think that these profiles are only supported in the MFI program. MFI is too difficult to handle, so I would really like to avoid it. SPP is, of course, unavailable.
Of these profiles, PAN and possibly A2DP and HFP seem to be used for mass data transfer. A2DP or HFP will be hacked because they are not really intended for non-audio data. This seems to leave PAN.
How can an iOS app transfer data from a classic Bluetooth device using PAN? . I need the application to connect and somehow establish a data connection. This can be IP overrun (e.g., bind or reverse bind using PAN) or non-IP. I want something that behaves the same as an SPP profile, in other words a bi-directional serial communication between two parties.
Note. The Bluetooth device on the other side of this device can do whatever it takes (I am writing device firmware at the same time using the bluetooth stack, possibly a TI dual-mode stack). Extra reward if you can give me an example of PAN binding using any Bluetooth stack (TI, Synergy, dotstack, etc.).
See also: It is possible to communicate via Bluetooth PAN in iOS with paired devices
source share