Android BLE записывает данные на несколько ч / б BLE одновременно

Я работаю над приложением для Android, в котором я использую API BLE для Android для подключения к сенсорным устройствам. Все идет хорошо, но я подключаю 4 ч / б устройства BLE к своему приложению для Android, но когда я пытаюсь записать некоторые данные на всех 4 BLe устройств одновременно, он записывает данные только на одном устройстве, и я не могу записывать данные на всех устройствах одновременно.

Вот мой код для записи данных на одном устройстве BLE:

if(btWriteGattChar == null)
            return;
        btWriteGattChar.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
        btWriteGattChar.setValue(dat);
        mBluetoothGatt[tabIndex].writeCharacteristic(btWriteGattChar);

Приведенный выше код работает с одним устройством BLE, но не позволяет мне записывать одни и те же данные на всех остальных устройствах.

Пожалуйста, дайте мне знать, где я делаю неправильный шаг, чтобы записать одни и те же данные на нескольких устройствах BLE.


person Ricky Khatri    schedule 08.12.2014    source источник
comment
Возможно, вы писали на то же bluetoothDevice. Еще раз проверьте, пишете ли вы на одно и то же устройство, используя метод bluetoothdevice.getAddress (), который возвращает аппаратный адрес каждого удаленного устройства.   -  person Osman Esen    schedule 08.12.2014


Ответы (1)


Нет, ты просто не можешь этого сделать. Это не указано в документе, но все операции BLE фактически синхронны.

Сам api является асинхронным, но стек BLE может делать это только по одному. Например, после вызова writeCharacteristic вы должны дождаться onCharacteristicWrite, прежде чем записывать его на другое устройство / характеристику, иначе вы получите неопределенное поведение. Вы можете или можете не писать последующую характеристику, если не ждете обратного вызова.

Это верно по крайней мере до 4.4.4. Однако я не проверял, исправлено ли это в версии 5.0 и новее. В любом случае, если ваше приложение поддерживает версию ОС до 5.0, вы должны это учитывать.

person reTs    schedule 16.12.2014