0

iOS natively supports several Bluetooth profiles as described here http://support.apple.com/kb/HT3647. The question is how do I programmatically communicate with the native iOS Bluetooth profiles?

For example, let's say that I want to create an app that remotely controls media playback on another iOS device via Bluetooth. The app would have Play, Pause, and Stop buttons. This is analogous to a physical Bluetooth peripheral that has media playback buttons. Since iOS supports the AVRCP Bluetooth profile, there must be a way to communicate with it programmatically to tell the remote iOS device to play, pause, or stop media playback.

But the iOS SDK does not discuss how to communicate with the native, built-in supported Bluetooth profiles. Instead it describes how to create an app that acts as a Central or Peripheral, which is not what I need. I need to be able to communicate with the native iOS Bluetooth functionality, without an app acting as a Central, just like a physical Bluetooth peripheral does when it connects to an iOS device.

Oak
  • 165
  • 2
  • 14
  • 1
    You don't interact with Legacy Bluetooth devices using Core Bluetooth. In the case of AVRCP, the user pairs the device using settings and then you can access it via the audio session framework. For example, http://stackoverflow.com/questions/10873267/not-receiving-remote-control-events – Paulw11 Oct 21 '14 at 18:34
  • But how does a physical Bluetooth peripheral communicate with an iOS device? A physical keyboard, for example, first pairs with the iOS device, and then can control playback on the iOS device via its play, pause, and stop buttons. So I would like to do the same thing as the physical Bluetooth peripheral, but in software (an iOS app on another iOS device). – Oak Oct 22 '14 at 12:19
  • To do that you would need your other iOS device to act as an HID (*Human Interface Device*) over Bluetooth. This isn't supported. – Paulw11 Oct 22 '14 at 12:21
  • Okay, it sounds like that only a physical Bluetooth peripheral can do this. I assume physical devices can do this through Apple's MFi program? – Oak Oct 22 '14 at 14:08
  • No, the standard profiles, HID, Audio streaming, headset/handsfree are not covered by MFi. You could probably do what you want with the same app running on both devices and communicating via Bluetooth or WiFi - you could use the Multipeer framework – Paulw11 Oct 22 '14 at 19:40
  • But what I don't understand is how a physical Bluetooth device can do this, but software can't. What allows a physical Bluetooth device to change the volume on an iPad, for example. And why can't the same be done via software? – Oak Nov 05 '14 at 19:52
  • iOS does not provide API access to the Bluetooth hardware at the level required to act as a legacy Bluetooth device. – Paulw11 Nov 05 '14 at 20:07

0 Answers0