我有一个与蓝牙连接并接收和发送数据的测试应用程序。这里一切都很好。

我的问题是我需要在设置TextView之前处理返回值。
如果收到“确定”,则需要返回“打开”。
如果收到“关闭”,则需要返回“关闭”。

我无法操纵数据。这里有一些提示吗?

我的代码:

void appendLog(){
    bluetoothIn = new Handler() {
        public void handleMessage(Message msg) {

            if (msg.what == handlerState) {
                String readMessage = (String) msg.obj;

                recDataString.append(readMessage);
                int endOfLineIndex = recDataString.indexOf("\r\n");

                while ((endOfLineIndex= recDataString.indexOf("\r\n")) > 0){
                    String dataInPrint = recDataString.substring(0, endOfLineIndex);

                    txtString.setText(dataInPrint);

                    Log.d("BT", "Received: " + dataInPrint);
                    String aux = dataInPrint.toString();

                    // If i received "OK" I need return in TV "Turn on"
                    if(aux == "OK"){
                        Log.d("BT", "OK");
                        //txtString.setText("Turn on");
                    }else{
                        Log.d("BT, "NOK");
                        //txtString.setText("Turn off");
                    }

                    recDataString.delete(0, recDataString.length());
                }

            }
        }
    };

}


Android Monitor:

07-08 21:06:19.000 29972-29972/com.test D/BT: Received: OK
07-08 21:06:19.000 29972-29972/com.test D/BT: NOK


谢谢所有人,抱歉我的英语;)

最佳答案

更改您的if语句以正确比较字符串。

if(aux.equals("OK")){
    Log.d("BT", "OK");
    //txtString.setText("Turn on");
}else{
    Log.d("BT", "NOK");
    //txtString.setText("Turn off");
}


看到这个帖子
How do I compare strings in Java?

10-04 23:05
查看更多