如何将音频HEX文件发送到Ble设备

时间:2015-07-14 11:12:55

标签: android-bluetooth android-ble

我有一个工作的设备与android。 它通过Android应用程序精确地发送和接收数据。 但是现在我的问题是我想将一些音频HEX文件发送到我的BLE设备。 它的大于20字节。 我如何将这样的数据发送到BLE设备。 ??

3 个答案:

答案 0 :(得分:4)

对于高于20字节的发送数据,您需要更改MTU交换。

对于API LEVEL 21,您可以使用 requestMtu Android Developer),它与外围设备协商,您可以定义直到512字节。

MTU值在外围侧定义。请记住,您可以发送的数据大小是MTU-3字节。

对于小于21的API LEVEL,MTU是预先定义的,您无法修改。

答案 1 :(得分:2)

大小限制可以不等于20,我认为MTU大小是可协商的,因此你永远不应该对大小的任何假设进行硬编码。

要做到正确,首先在onCharacteristicReadRequest中,您可以简单地检查偏移并将该点的所有数据提供给响应。

然后在onDescriptorWriteRequest中,如果preparedWrite设置为true,则需要存储获得的值,并在调用onExecuteWrite()后将它们组合起来。

可在以下网址获得的示例实施:https://github.com/DrJukka/BLETestStuff/blob/master/MyBLETest/app/src/main/java/org/thaliproject/p2p/mybletest/BLEAdvertiserLollipop.java

答案 2 :(得分:0)

您可以继续进行的一种方法是将音频十六进制分割成小块数据。您可以使用串行端口配置文件发送这些数据块。一旦收到所有数据,您就可以使用一些合并算法进行组合和存储(谷歌)它),然后将其恢复为音频hex文件。