TTL 出力デバイスからシリアル データを取得し、それを JY-MCU ドングルに渡し、Android フォンで読み取ろうとしています。データは、4 桁の ASCII 10 進数として送信され、その後にキャリッジ リターンとライン フィードが続きます。
BluetoothChat を使用すると、送信された番号は電話で正しく表示されますが、アプリ内で番号を操作し、操作の結果を画面に送信したいです。
データを送信するのではなく、読み取るだけで済みます。
のコードを見て、MESSAGE_READ で作成された文字列を値に変換し、この整数を操作して文字列に戻し、この結果をディスプレイに送信BluetoothChat.java
する必要があると思いました。Integer
これはこれについて正しい方法ですか?Integer.parseInt()
and ()を使用してみString.valueOf
ましたが、成功しませんでした。
私がやろうとしていることを示すコードの簡単なセクションを投稿できますが、誰かが最初に指摘できる簡単な間違いを犯している可能性があると思いました。
提案をありがとうデビッド
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf,0, msg.arg1);
//remove any leading zero's
String readMessages = readMessage.replaceAll("^0*", "");
//remove any leading zero's
// Declare Integer
int newMessage;
// give the integer a value
newMessage = Integer.valueOf(readMessages);
// try some simple division
newMessage = newMessage / 100;
// back to a string
String finalMessage = Integer.toString(newMessage);
// display the result
mConversationArrayAdapter.add(mConnectedDeviceName+": " + finalMessage);
スタックトレース
01-25 18:09:12.905: E/AndroidRuntime(5413): 致命的な例外: メイン 01-25 18:09:12.905: E/AndroidRuntime(5413): java.lang.NumberFormatException: 無効な int: "" 01-25 18:09:12.905: E/AndroidRuntime(5413): java.lang.Integer.invalidInt(Integer.java:138) 01-25 18:09:12.905: E/AndroidRuntime(5413): java.lang.Integer で.parseInt(Integer.java:359) 01-25 18:09:12.905: E/AndroidRuntime(5413): java.lang.Integer.parseInt(Integer.java:332) で