BLE:使用Android / iOS阅读长篇特征值

具有正常特性只读取MTU大小(20字节)的数据将被读取。 我的客户将提供更大尺寸(大约100字节)的特性。

我看到BLE提供了一个“长读”function,直到达到特征的大小。 ( https://bluegiga.zendesk.com/entries/25053373–REFERENCE-BLE-master-slave-GATT-client-server-and-data-RX-TX-basics )

attclient_read_long命令 – 启动客户端首次向服务器发送正常读取请求的过程,如果服务器返回长度等于BLE MTU(22个字节)的属性值,则客户端继续发送“读取长”请求直到读取其余的属性。 这仅适用于读取长度超过22个字节的属性。 为简单起见,构build您的GATT服务器通常比较简单,因此不存在长属性。 请注意,BLE协议仍然要求数据打包到最大。 22字节的块,所以使用“读取长”不会节省传输时间。

但是我怎样才能在Android中使用这个function呢? BluetoothGatt类只提供一个简单的“Read()” – 与iOS相同。

增加MTU是不可能的,因为我们需要支持AP Level <21的设备(在API 21增加了MTU)