arduinoからintroをアンドロイドにBluetooth経由で送信しようとしていますが、もし私が送ると56と言うと、私はアンドロイド側で8を受け取ります...とにかく私は56を受け取ることができます好ましく文字変換の小数点からasciiへの停止
Arduinoのコードを含む文字列形式で:
int level = 56;
Serial.write(level);
アンドロイドコード:
public void run() {
byte[] buffer = new byte[128];
int bytes;
while (true) {
try {
bytes = connectedInputStream.read(buffer);
String strReceived = new String(buffer, 0,bytes);
final String msgReceived =/* String.valueOf(bytes) +
" bytes received: "
+ */strReceived;
runOnUiThread(new Runnable(){
@Override
public void run() {
textStatus.setText(msgReceived);
value = msgReceived ;
}});
値は、クラス変数
静的文字列として定義されています
あなたのコードはバイトを文字列に変換しています。受信したバイトをテキストに変換したくない場合は、文字列コンストラクタを呼び出す理由が明確ではありません。 –
私はアプリの将来の段階で文字を必要とするので、なぜそれが先になったのだろうか –
警告:[new String(byte []、int、int)](https://docs.oracle.com/javase/8/) docs/api/java/lang/String.html#String-byte:A-int-int-)は、プラットフォームのデフォルトの文字セットとエンコーディングを使用します。代わりに、明示的に両方のシステムで同じものを使用する必要があります。 –