멀티 디바이스를 연결한다는 것은 각 디바이스별로 상태를 관리할 것이고,
BluetoothGattCallback 도 멀티 객체를 관리한다는 이야기가 되겠네요. 여러 대의 Devices에서 오는 신호를 계속 뿌려주고 있다면, 제대로 연결된 것으로 맞는 것 같습니다.
그런 상태라면, writeCharacteristic()을 사용할 때 입니다. 제가 Ping을 보내는 것과 사용자가 버튼을 눌러서 send data를 하는 경우에 서로 같은 시간에 보내면 데이터가 날라가는 현상이 있었습니다.
혹시 writeCharacteristic() 이후에 BLE단말에서 응답이 온다면, 해당 응답이 온 다음에 다음 데이터를 보내는 형태가 되어야 할 것 같습니다.
이렇게 적어놓고 보니, 이상하네요. 마지막에 연결된 데이터만 전송이 된다는 것과 앞에서 readCharacteristic()이 잘된다는 게 사실 조금 충돌 나는 현상인데요...
다시 질문한다면, BLE_GATT 연결을 관리하는 Service가 N개로 따로 관리 되어야 하고요,
그 서비스를 루프를 돌아서 writeCharacteristic() 해야 합니다.
혹시 다 제대로 구성되어 있는데, 마지막 BLE_GATT Service로만 데이터를 write하는 거 아닌가요?
제대로 만들려면, 메시징 큐도 추가해야 합니다만...