用于发送数据的蓝牙格式

时间:2016-10-01 20:17:55

标签: android bluetooth arduino bluetooth-lowenergy

目前我正在处理我的应用程序,它将在收到特定类型的数据后运行一些代码

所以当我按下按钮时,我的arduino将发送以下信息: 对于按钮1

  ble_write(0x0A);
  ble_write(0x01);
  ble_write(0x00);
按钮2的

:     ble_write字符(0x0A);     ble_write(0×02);     ble_write(0×00);

我的手机收到数据但问题是,当我按下按钮2时,它只会输出代码1 toast而不是代码2.这是我的应用程序的代码。

 for (int i = 0; i < data.length; i += 3) {
        if (data[i] == 0x0A) {
            if (data[i + 1] == 0x01)
                Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
        } else if (data[i] == 0x02) {
                Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();

        }
    }

我觉得因为for循环它只占用一个字节并且总是将其视为代码1。

代码基于:https://github.com/RedBearLab/Android/blob/master/Examples/Android%20Studio%20Examples/SimpleControls/src/com/redbear/simplecontrols/SimpleControls.java

我有点难以处理这个问题,任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

只需移动花括号吗?

for (int i = 0; i < data.length; i += 3) {
        if (data[i] == 0x0A) {
            if (data[i + 1] == 0x01) { // <- added {
                Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
            } else if (data[i + 1] == 0x02) { // added '+ 1'
                Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();
            }
        } //<- added }
}

或者我错过了什么?

答案 1 :(得分:0)

最后,我决定通过标准字符集将接收到的数据(byte [])更改为字符串格式。 (UTF_8)