GATT over SPP profile for bluetooth communication?

My God picture My God · Jun 10, 2014 · Viewed 17.3k times · Source

This is confusing me for days.

In the beginning when I was implementing the functionality, I used GATT profile for BLE bluetooth communication.

Then I came up with BluetoothSocket. This uses the SPP profile for bluetooth communication.

There is mentioned:

The most common type of Bluetooth socket is RFCOMM, which is the type supported by the Android APIs. RFCOMM is a connection-oriented, streaming transport over Bluetooth. It is also known as the Serial Port Profile (SPP).

My requirement is -

1) To scan and then connect my android device with the Black Box using BLE bluetooth.

2) Then initiate communication. The bytes will be sent between both.

Any ideas ?

Answer

Zomb picture Zomb · Jun 11, 2014

In the use case that you have mentioned BLE is probably your best bet. This is a Bluetooth 4.0 feature, while SPP is a 2.1 feature. I will try and list out the pros and cons to using BLE with a comparison with SPP.

  • BLE is low energy. It is going to require less energy compared to SPP.
  • BLE is much faster to establish the connection the SPP, so your responses will be much faster.
  • BLE is good only if you want to transfer small amounts of data, once you start transferring large amounts of data, you will find that SPP is a much better candidate.

With this being said, the way you would go about it is in the following way: You will use the BluetoothAdapter to get a reference to a BluetoothDevice, which you will then use to get BluetoothGatt using connectGatt. You will not use BluetoothSocket if you want to use BLE. Using this BluetoothGatt object you can connect to the device and read/write characteristics.