I have problems with BLE on Samsung devices. I have a peripheral that has both Bluetooth Lower Energy and Bluetooth classic channels. First, I connected the audio channel to my phone and connected the BLE channel to my app on the phone. The peripheral then started transmitting data to the phone via BLE notifications and the phone plays several tracks simultaneously. The peripheral sends a 178-byte packet with an interval of 72ms. Each packet has a sequence number in the header from 0 to 255 and repeats. When the RSSI is stable (< -60), everything is fine, but when the distance between the peripheral and the phone increases, the RSSI becomes weak, and data is lost. The payload received on the phone was interrupted (I checked the sequence number). After that, I brought the phone and the peripheral closer, RSSI became strong again, but the data loss continued. But if I stop playing music, the data loss disappears immediately. When I press playback, the data loss continued.
Checking the HCI snoop log on the phone, I see that when data is lost, the 178 bytes payload data is split into multiple 32 bytes packets and reassembled. This issue only occurs on Samsung devices. I tested on Vivo, Oppo, and even iPhone and did not encounter this phenomenon.
Is there any way to remove this packet splitting mechanism on Samsung devices? And if I can’t get rid of it, is there any way to reconfigure the mechanism to not split packets like the original?
Has anyone encountered this problem? Please suggest me, thanks.