String 比较从Arduino读取的消息

String 比较从Arduino读取的消息,string,bluetooth,message,equals,String,Bluetooth,Message,Equals,我从Arduino接收数据,但当我想将数据比较为“int”时,数据显示为“String” 例如: 在我的应用程序的列表视图中,我看到应用程序上的readMessage 10 这里最好的方法是尝试将readMessage转换为整数,然后将该整数与不同的数字进行比较。parseInt()方法尝试进行转换,如果转换失败,将引发异常 case MESSAGE_READ: byte[] readBuf = (byte[]) msg.obj; // construct a string fr

我从Arduino接收数据,但当我想将数据比较为“int”时,数据显示为“String”

例如:
在我的应用程序的列表视图中,我看到应用程序上的readMessage 10 这里最好的方法是尝试将
readMessage
转换为整数,然后将该整数与不同的数字进行比较。parseInt()方法尝试进行转换,如果转换失败,将引发异常

case MESSAGE_READ:
    byte[] readBuf = (byte[]) msg.obj;
    // construct a string from the valid bytes in the buffer
    String readMessage = new String(readBuf, 0, msg.arg1);

    mConversationArrayAdapter.add("Nivel de alcohol"+":  " + readMessage);

    try {
        // Convert the string to an integer. It may fail (see the catch block).
        int messageNumber = Integer.parseInt(readMessage);

        if (messageNumber == 100) {
            mensaje.setText("1.0 g/l en aliento, Aliento alcohólico, disminución mínima de los sentidos");
        }
        else if (messageNumber == 300) {
            mensaje.setText("2.4 g/l en aliento, Ebriedad incompleta, disminución significativa de los sentidos.Se recomienda interrumpir cualquier actividad física de riesgo.");
        }
        else if (messageNumber == 400) {
            mensaje.setText("3.8 g/l en aliento, Ebriedad completa en la mayoría de los estados de la República Mexicana");
        }
        else if (messageNumber == 500) {
            mensaje.setText("4.8 g/l en aliento, Limite BAC más alto aceptado en pocos países");
        }
        else if (messageNumber == 600) {
            mensaje.setText("15.0 g/l en aliento,A este nivel la mayoría de las personas pierden la conciencia");
        }
    }
    catch (NumberFormatException)
    {
        // If you got here, then readMessage was not a valid integer. You should add some error handling here.
    }
    break;

欢迎来到StackOverflow。我不太明白你在问什么。此外,您的代码似乎少了一半。我将尽可能多地修复它,但您需要更改我的更改!嗨,谢谢,我正在试着这么做,但是消息不会改变:/嗯,考虑到你写了这些消息,你不应该关心它们。你不打算看看readMessage和messageNumber是什么样子的吗?对不起,我遇到了一个问题,我收到了随机数据,如果我收到“Hello”,首先在一行中出现“H”,然后出现“ello”,我不知道为什么,我使用的是eclipse示例中的蓝牙聊天。
case MESSAGE_READ:
    byte[] readBuf = (byte[]) msg.obj;
    // construct a string from the valid bytes in the buffer
    String readMessage = new String(readBuf, 0, msg.arg1);

    mConversationArrayAdapter.add("Nivel de alcohol"+":  " + readMessage);

    if (readMessage.equals("100")) {
        mensaje.setText("1.0 g/l en aliento, Aliento alcohólico, disminución mínima de los sentidos");
    }
    else if (readMessage.equals("300")) {
        mensaje.setText("2.4 g/l en aliento, Ebriedad incompleta, disminución significativa de los sentidos.Se recomienda interrumpir cualquier actividad física de riesgo.");
    }
    else if (readMessage.equals("400")) {
        mensaje.setText("3.8 g/l en aliento, Ebriedad completa en la mayoría de los estados de la República Mexicana");
    }
    else if (readMessage.equals("500")) {
        mensaje.setText("4.8 g/l en aliento, Limite BAC más alto aceptado en pocos países");
    }
    else if (readMessage.equals("600")) {
        mensaje.setText("15.0 g/l en aliento,A este nivel la mayoría de las personas pierden la conciencia");
    }

    break;
case MESSAGE_READ:
    byte[] readBuf = (byte[]) msg.obj;
    // construct a string from the valid bytes in the buffer
    String readMessage = new String(readBuf, 0, msg.arg1);

    mConversationArrayAdapter.add("Nivel de alcohol"+":  " + readMessage);

    try {
        // Convert the string to an integer. It may fail (see the catch block).
        int messageNumber = Integer.parseInt(readMessage);

        if (messageNumber == 100) {
            mensaje.setText("1.0 g/l en aliento, Aliento alcohólico, disminución mínima de los sentidos");
        }
        else if (messageNumber == 300) {
            mensaje.setText("2.4 g/l en aliento, Ebriedad incompleta, disminución significativa de los sentidos.Se recomienda interrumpir cualquier actividad física de riesgo.");
        }
        else if (messageNumber == 400) {
            mensaje.setText("3.8 g/l en aliento, Ebriedad completa en la mayoría de los estados de la República Mexicana");
        }
        else if (messageNumber == 500) {
            mensaje.setText("4.8 g/l en aliento, Limite BAC más alto aceptado en pocos países");
        }
        else if (messageNumber == 600) {
            mensaje.setText("15.0 g/l en aliento,A este nivel la mayoría de las personas pierden la conciencia");
        }
    }
    catch (NumberFormatException)
    {
        // If you got here, then readMessage was not a valid integer. You should add some error handling here.
    }
    break;