-1

I just got started in developing with bluetooth for android, and I keep wondering why are there so many bluetooth profiles and why are they useful?

If the whole purpose of bluetooth communication is to send messages (bits) back and forth, shouldn't the core bluetooth stack have a standardized way of doing it without the need for different profiles that work with different types of data. I mean...data is just streams of bits.

I am working with the bluetooth health device profile (HDP) which not all bluetooth stacks implement. But those that do implement it (like bluez) pass me streams of bits. For those that do not support HDP, I tried to listen using a more generic profile like SPP, but I can't get the data... why?

Arne Claassen
  • 14,088
  • 5
  • 67
  • 106
user1378063
  • 263
  • 1
  • 6
  • 9
  • That question is definitely holywar starter, it is not technical and should be removed. The answer is that it is really old technology and there are a lot legacy code there... Create more specific question that describes problem more specific – Viktor Yakunin Apr 29 '15 at 17:40
  • @ViktorYakunin, I don't think this question would start any wars. It only displays the poster's ignorance on the subject... and it's entirely off-topic for this site. – 323go Apr 29 '15 at 19:29

1 Answers1

0

You are also probably wondering why are there so many different data connection cables, since they all just send bits.

For any Bluetooth profile that assigns an RfComm channel number (such as AVRCP and HFP support profiles), you actually can connect to the specified RfComm channel number using SPP, send any necessary profile negotiation responses required to not get your connection dropped, and then send/receive raw data streams. Of course, the profile at the other end is expecting any "raw data" you send to fit the profile designated format and structure.