java - 安卓。如何知道允许的 block 大小(蓝牙)?

标签 java android kotlin bluetooth stream

我通过蓝牙将数据发送到另一台设备。

 val writeCharacteristic = service.getCharacteristic(WRITE_CHARACTERISTIC_UUID)
 writeCharacteristic.value = data.toByteArray()
 val isSendSuccessful = bluetoothGatt.writeCharacteristic(writeCharacteristic)

但是如果我尝试发送太长的字节数组,那么它就不起作用。因此,我将其分成一些 block 并发送。我需要知道当前设备允许的 block 大小(我认为不同设备的大小可能不同)。我该怎么做?

最佳答案

默认负载大小为 20 字节。 在 Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP 上,您可以询问设备的最大尺寸,并提供您自己的最大尺寸 gatt.requestMtu(MAX_MTU) 并且您可以在 public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) 回调中得到答案,例如使用时here .

关于java - 安卓。如何知道允许的 block 大小(蓝牙)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61893716/

相关文章:

java - JPA用户注册

android - Facebook AudienceNetwork loaded failure : No fill, Error Message "No fill",FaceBook android Advertise 是什么原因?

android - 从 kotlin 代码中删除 getter 和 setter

android - 协程在取消时注销接收者

java - 正则表达式查找包含数字的行,以文本开头,但从出现的地方删除文本

java - String.replaceAll() 和正则表达式

Java 8 一对多分组

android - 在下拉微调器上使用自定义项填充 arrayadapter

java - 我的警报对话框自定义布局出现问题

kotlin - Kodein 清理/销毁方法