Roland デバイスに sysex メッセージを送信するアプリケーションを作成しようとしています。私は例を見つけて、自分のニーズに合わせて少し変更しようとしました:
protected void transmitSYSEX(String byteString)
{
SysexMessage sysx = new SysexMessage();
int lengthInBytes = byteString.length() / 2;
byte sysxMsg[] = new byte[lengthInBytes];
String message = "";
for (int i = 0; i < lengthInBytes; i++)
{
sysxMsg[i] = (byte) Integer.parseInt(
byteString.substring(i * 2, i * 2 + 1), 16);
}
for (int i = 0 ; i < sysxMsg.length ; i++)
message += sysxMsg[i];
textView.setText(message);
try
{
sysx.setMessage(sysxMsg, sysxMsg.length);
}
catch (InvalidMidiDataException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
out_queue.add(sysx);
}
byteString は、次の 16 進メッセージを含む文字列です: F0411000004F1200020201070272F7 ただし、行 textView.setText(message) での私のコントロールの出力は、次の文字列を返します: 15410041000000715
どこが間違っているのかよくわかりません.textViewメッセージは入力メッセージと同じであるべきではありませんか?
よろしく /M