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 ?
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.
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.