In general, you should make sure to do only one operation at a time. All operations are asynchronous and you should wait for completion before you start the next operation. That is why all Android BLE libraries queue operations.