У меня есть рабочее устройство с Android. он отправляет и получает данные точно через приложение Android. Но теперь моя проблема в том, что я хочу отправить некоторые аудио-файлы HEX на мое устройство BLE. И его больше, чем 20 байт. Как я могу отправить такие данные на устройство BLE. ??Как отправить аудиофайл HEX на устройство Ble
ответ
Для отправки данных, превышающих 20 байтов, вам необходимо изменить MTU-обмен.
Для API уровня 21, вы можете использовать requestMtu (Android Developer), он ведет переговоры с периферийным устройством, и вы не можете определить до 512 байт.
Значение MTU определено на периферийной стороне. Помните, что размер данных, который вы можете отправить, - это байты MTU-3.
Для уровня API LEVEL менее 21 MTU предварительно определен и вы не можете изменять.
Ограничение по размеру может отличаться от 20, я полагаю, что размер MTU является оборотным, поэтому вы никогда не должны жестко кодировать какие-либо предположения о размерах.
Чтобы получить это право, во-первых, внутри onCharacteristicReadRequest вы просто проверяете смещение и даете все данные из этой точки в ответ.
затем в onDescriptorWriteRequest, если для подготовленногоWrite установлено значение true, вам необходимо сохранить полученные значения и объединить их после вызова onExecuteWrite().
Пример реализации доступны на: https://github.com/DrJukka/BLETestStuff/blob/master/MyBLETest/app/src/main/java/org/thaliproject/p2p/mybletest/BLEAdvertiserLollipop.java
BTW, вчера проверял и выяснил, что я могу установить размер MTU до 517 байт. 518 дал некоторую ошибку уже. –
Одним из способов вы можете продолжить, чтобы разделить аудио шестигранник на небольшие кусочки данных .Вы можете использовать профиль последовательного порта, чтобы отправить эти куски данных .Once получены все данные вы можете комбинировать и хранить с помощью некоторого алгоритма слияния (google it), а затем возвращать его обратно в звуковой шестнадцатеричный файл.
Нет. Я не могу. Я использую профили GATT. –
- 1. Как отправить массив байтов на устройство BLE
- 2. Как отправить байт [] на устройство BLE без пользовательского UUID
- 3. Android как периферийное устройство BLE
- 4. Отправить Hex с php на устройство, используя socket_sendto
- 5. Идентифицируйте устройство BLE, которое уведомляет
- 6. UWP BLE устройство сопряжения
- 7. Невозможно обнаружить устройство BLE
- 8. Как отправить данные на внешнее устройство
- 9. Как отправить аудиофайл на сервер в android
- 10. JQuery Mobile Как отправить аудиофайл на сервер
- 11. Устройство BLE не может отправить несколько уведомлений GATT в строке
- 12. iOS приложение сканирует устройство BLE на фоне
- 13. Подключить устройство BLE к Android a Отправить данные (nUART)
- 14. Как отправить данные Hex?
- 15. отправить команду над устройством BLE
- 16. отправить аудиофайл по http
- 17. Как создать периферийное устройство Android BLE?
- 18. chrome.bluetooth.getDevices не обнаруживает устройство BLE
- 19. BLE (устройство включения BlueTooth) ios
- 20. Сканирование BLE устройство не работает
- 21. Написание отрицательного целого числа как 0xnn hex на периферийное устройство
- 22. BLE Отправка запроса Blob через устройство Android
- 23. Как отключить периферийное устройство BLE вручную?
- 24. отправить устройство на устройство gcm уведомление
- 25. PHP: php_serial.class.php Отправить String/Hex
- 26. Как отправить hex с Python
- 27. iOS BLE Bluetooth - отправка/получение данных HEX
- 28. Android/iOS - BLE - пробуждение завершенного приложения, когда устройство BLE подключается
- 29. Как отправить сигнал RGB на устройство BLE с помощью приложения iPhone?
- 30. Отправить как hex в PHP
Я боролся с этим часами, записывая 512 байт и получая 509. Не могли бы вы объяснить, почему максимальный размер данных должен быть MTU - 3 байта? – Omer
В основном http://stackoverflow.com/questions/36435575/bluetoothgatt-negotiating-new-mtu-succeeds-but-new-size-cannot-be-used-3-bytes – Omer