我有一个与蓝牙连接并接收和发送数据的测试应用程序。这里一切都很好。
我的问题是我需要在设置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?