Java 可编程android编程

Java 可编程android编程,java,android,bluetooth-lowenergy,Java,Android,Bluetooth Lowenergy,我在应用程序中显示从Ble设备接收的数据时遇到问题。当我收到一个字符串时,我想在不同的文本框中显示前四个字节,但它没有发生 简而言之,当第一次显示发生时,它就从循环中出来,如果我发送数据两次或三次,它就会显示在第二个显示框中????请帮忙 我收到一个十六进制数据包,所以需要检查它的字节,但我主要关心的是在收到数据后,它只显示1速度,而不是其他。这里只有一种说法有效 private void onReciveData(byte[] data) { Log.d("OnReceivedata

我在应用程序中显示从Ble设备接收的数据时遇到问题。当我收到一个字符串时,我想在不同的文本框中显示前四个字节,但它没有发生

简而言之,当第一次显示发生时,它就从循环中出来,如果我发送数据两次或三次,它就会显示在第二个显示框中????请帮忙

我收到一个十六进制数据包,所以需要检查它的字节,但我主要关心的是在收到数据后,它只显示1速度,而不是其他。这里只有一种说法有效

private void onReciveData(byte[] data) {
    Log.d("OnReceivedata called");
    if (data != null) {
        recv = new String(data);
        int Rpm_int = data[3] + data[4] * 256;
        String speed_int=null;
        display1speed.setText("" + speed_int);
        display2rpm.setText("" + Rpm_int);
    }
}

为什么要转换为字符数组?如果您想要前4个字符,您可以使用“子字符串”例如:recv.subString(0,4)…请再次查看上面的编码,您可以检查此。。recv=recv.子串(3,2);display2rpm.setText(recv);以上是不工作的!问题不是很清楚。。但假设可能是因为线程的缘故,BluetoothGattCallback方法不会在UIThread上运行