2016-07-09 9 views
1

私は、Bluetoothと接続してデータを送受信するテストアプリケーションを持っています。すべてがここで大丈夫です。私はStringBuilderでinputStreamからデータを操作できません

私の問題は、TextViewの前にリターンを処理する必要があることです。
「OK」を受け取った場合は、「Turn On」を返す必要があります。
"OFF"を受け取った場合、 "Turn Off"を返す必要があります。

私はデータを操作することができません。ここにいくつかのヒント?

マイコード:

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()); 
       } 

      } 
     } 
    }; 

} 

アンドロイドモニター:私の英語のためのすべてと気の毒ため

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 

TKS;)

+0

を参照してくださいどのように正確にあなたが扱うと何する必要がありますか? Log.d( "BT"、 "NOK")に変更してください: – ebyt

+1

@ebytこれを修正しました)。私は忘れてしまった IFが正当な回答を入力していないことを確認したら、正しい答えを入力していないことに注意してください。「OK」を取得し、「NOK」ではなく「OK」を削除する必要があります。 – fperz

答えて

1

が正しく文字列を比較するために、あなたのif文を変更します。

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

このSO POST How do I compare strings in Java?

+0

ご協力いただきありがとうございます。私は読むでしょう:) – fperz

関連する問題