1
votes

I am developing an iOS bluetooth app that needs to pair with a peripheral device.

What frame work do I need to use to interact with a device that has support for the following protocols/profiles:

A2DP HFP HSP

Are either of these possible with an iOS device without being a member of the the MFI program?

How do I support these profiles: https://support.apple.com/kb/HT3647

Do I do that using corebluetooth?

2
All bluetooth peripheral support goes through the CoreBluetooth framework (that's as much as I know)borrrden
oh ok. thats the only framework that exposes any bluetooth apis right?stackOverFlew
Yes, that's correct so if you can't do it there then you can't do it at all without jailbreaking.borrrden
sorry to bother again, but from some reading it seems that that is not the only way. Audio input can be routed to bluetooth. So can the audio output? stackoverflow.com/questions/2375837/… Others state that this is not possible: stackoverflow.com/questions/8305986/… stackoverflow.com/questions/14082182/… Docs: developer.apple.com/library/ios/#documentation/Audio/Conceptual/…stackOverFlew
Bluetooth headset is the one exception, but you can only select to route audio there. If you need more low level interaction then you have to use CoreBluetooth. Basically if you are even using the words "profile" and "protocol" then you need to use CoreBluetooth.borrrden

2 Answers

1
votes

These are standard profiles that are supported inherently by iOS. You don't need to add any software to make the phone work with these. At the same time apps running on the phone will have limited access to what device they can use or are using but for example the audio routing can be obtained.

All in all, as long as the device implements the profiles correctly, any application will be able to use it, not just yours.

1
votes

There are two completely different methods of doing Bluetooth communications. One is with the classic Bluetooth profiles and the latest is using BLE (Bluetooth Low Energy).

Classic Bluetooth can be used with the ExternalAccessory framework and GameKit framework.

BLE uses CoreBluetooth.

The classic profiles supported are listed here:

http://support.apple.com/kb/HT3647