如果requestMtu()不工作,Android BLE如何读取超过20个字节?

如果requestMtu()不工作,Android BLE如何读取超过20个字节?,android,bluetooth-lowenergy,Android,Bluetooth Lowenergy,我想用Android BLE接收一个超过20字节的包,但它不工作。所以我尝试了BluetoothGatt.requestMtu()。它返回true,但不起作用。我知道MTU交换请求只能由客户端初始化,即Android手机。我不明白为什么这个API不起作用。 我使用的手机是带有安卓8.1的OnePlus 6,它与安卓框架API无关。它属于蓝牙BLE规范。 请在此查看更多详细信息。 您将MTU设置为什么?过高的值总是会失败。如果你有一个连接,这种方法总是会返回true,但真正的成功只有在你接到onM

我想用Android BLE接收一个超过20字节的包,但它不工作。所以我尝试了
BluetoothGatt.requestMtu()
。它返回true,但不起作用。我知道MTU交换请求只能由客户端初始化,即Android手机。我不明白为什么这个API不起作用。

我使用的手机是带有安卓8.1的OnePlus 6,它与安卓框架API无关。它属于蓝牙BLE规范。 请在此查看更多详细信息。

您将MTU设置为什么?过高的值总是会失败。如果你有一个连接,这种方法总是会返回true,但真正的成功只有在你接到onMtuChange的电话时:你的手机肯定能支持至少200个MTU(用我的手机测试过),但你仍然需要另一台设备来支持,因为tooBLE只支持少量数据。因此,您必须拆分20个字节,或者使用经典的BluetoothonMtuChange返回true。我还使用iPhoneX测试更长的mtu,它工作得很好,因为它初始化了mtu交换请求。