4

I have a requirement to have a cross-platform program --- intended for mobile devices such as Android, Brew, Bada, WinCE etc --- be able to communicate with other instances of itself via Bluetooth.

Unfortunately:

  • the Bluetooth APIs on such devices are all radically, radically different.

  • the terminology they use is also radically different.

  • what actually works is frequently radically different to what they say works.

So far I've discovered that Android will allow you to connect to or listen on RFCOMM services specified by a simple UUID, but does not allow more complicated manipulation of SDP records; Brew claims to support SPP but the API appears to allow arbitrary RFCOMM; Bada supports SPP but doesn't allow you to specify the UUID, so I have no idea how you're supposed to do service discovery or listen for two things at once...

Oh, and iOS doesn't allow Bluetooth communication at all to non-iOS devices.

So:

I can't be the first person to need to do this. Is there a known subset of Bluetooth functionality that I should be using in order to maximise portability?

David Given
  • 13,277
  • 9
  • 76
  • 123

1 Answers1

0

Device makers usually implement some bluetooth profiles such as A2DP, OBEX, etc. Depending what you want to do, you should check that all your target devices implement the required profiles.

Note that even though a device can implement an specific profile, there may not be an API that will allow you to use it.

See http://en.wikipedia.org/wiki/Bluetooth_profile.

caoquendo
  • 496
  • 4
  • 5