BluetoothChat サンプル コードに基づいてアプリを開発しています。16 進値を含むバイト配列を出力ストリームに書き込めるようにする必要があります。入力ストリームのバイト配列を解析し、16 進数値を読み取る必要もあります。これは、バイト配列に16進値を単純に書き込むための私のコードです
byte[] data = new byte [3];
data[0] = (byte) 0x53;
data[1] = (byte) 0x1C;
data[2] = (byte) 0X06;
ただし、デバッグをステップ実行して「データ」を監視すると、デバッガーは値を data[0]=83、data[1]=28、data[2]=6 として表示します。すべての値が ascii に変換されるのはなぜですか? 入力ストリームを読み取るときに byte[] バッファを見ると、同じことが起こっています。
// Read from the InputStream
bytes = mmInStream.read(buffer);
16 進値を含むバイト配列を送信しましたが、byte[] バッファに ascii 値が表示されています。Bluetooth経由で生の16進値を読み書きするにはどうすればよいですか? 読み取り/書き込みストリームの一部は、コマンド用に 15 バイト未満の短いストリームになります。しかし、16 進バイトとしてエンコードされた大きなファイルを読み取る必要もあります。その入力ストリームに関する提案はありますか? BufferedInputStream を使用する必要がありますか?