0
我有一个字节数组,我需要将它转换为十六进制值并通过蓝牙发送。我发现的一切都是将字节转换为十六进制字符串,但我不能这样做,因为我只能写入字节数组或int。无法通过蓝牙写入十六进制字节
public static byte[][] commandsArray = new byte[5][5];
...
connectedThr.write(ConstantsVariables.commandsArray[i]);
...
public void write(byte[] bytes) {
try {
mmOutStream.write(bytes);
} catch (IOException e) {
Log.d("CONNECTTHREAD","Could not write: " + e.toString());
}
}
一切都发送好了,我可以写简单的字节数组。问题在于十六进制值以及如何发送它们。
UPD: 我尝试这样的代码,但我有这样的记录:
09-26 20:39:57.324 26848-26848/shkatovl.btandroid I/TEST: 28
09-26 20:39:57.324 26848-26848/shkatovl.btandroid I/TEST___2: [[email protected]
Formatter formatter = new Formatter();
formatter.format("%02x", ConstantsVariables.commandsArray[i][j]);
String hex = formatter.toString();
Log.i("TEST", hex);
Log.i("TEST___2", hex.getBytes().toString());
'我有一个字节数组,我需要将它转换为十六进制值并通过蓝牙发送它们。'AND'但我做不到,因为我只能写入字节数组或int。'这是矛盾的。你的话没有意义。但确实直接发送字节数组。没有比这更容易。 – greenapps
@greenapps我将它发送给arduino,它只接受十六进制值。 – Tryam
你的意思是你把字节值的十六进制表示放在一个字符串中。所以你必须发送字符串。发送字符串有什么问题?你应该发送字符串十六进制,因为那是字符串。你甚至可以发送hex.getBytes(),然后你可以发送这些字节,如果你不知道如何发送一个字符串。 – greenapps