We have an iOS app that we are re-doing for Android. We typically connect with ZD4xx family printers via wifi, BLE or BT classic, depending on customer requirements. Typically all 3 of those interfaces are active. On iOS we are able to reliably discover and connect to the printers via BLE, but on Android, the connect attempt usually fails. If we disable the BT classic interface on the printer, the BLE connections usually succeed (but that is not a viable solution for us). The behavior is the same with different Android platforms and Android OS versions that we have tried.
Our speculation is that the reason may be that the printer is advertising the BLE and BT classic with the same MAC address on both interfaces, and that this confuses the Android Bluetooth stack. We speculate that if BLE and BT classic were advertising with different MAC addresses, the problem would go away.
Our questions are: Has anyone else has observed this problem? Has anyone found a solution? Is there any way to programmatically set a different MAC address for the two Bluetooth interfaces?