Android BLE传输被下一行中断

时间:2019-01-25 20:41:16

标签: java android bluetooth-lowenergy

我正在开发一个Android应用程序,该应用程序需要将数据从加速度计发送到arduino。问题在于,仅在下一次传输开始的中途发送字符串。我尝试过的任何事情,例如SystemClock.sleep();没有帮助,这意味着任何下一行都会中断字符串的传输。

    public void onSensorChanged(SensorEvent event) {
        acceler[0]=event.values[0];
        acceler[1]=event.values[1];
        acceler[2]=event.values[2];
        transmit();
    }

    private void transmit() {
        String str =":" + acceler[0] + " " + acceler[1] + " " + acceler[2] + "\n\r";
        final byte[] tx = str.getBytes();
        if(mConnected) {
            TXcharact.setValue(tx);
            mBluetoothLeService.writeCharacteristic(TXcharact);

        }
    }

1 个答案:

答案 0 :(得分:0)

这取决于BLE规范,但是您的str似乎太长,无法立即发送。

Maximum packet length for Bluetooth LE?

  

“ BLE最多允许您传输20个字节。”

     

“您是对的,BLE规范不允许写操作超过20个字节。”

因此,将它们拆分并使用一些等待队列来存储它们。