无法通过蓝牙

时间:2016-09-26 12:56:10

标签: java android bluetooth

我有一个字节数组,我需要将其转换为十六进制值并通过蓝牙发送它们。我发现的一切都是将字节转换为十六进制字符串,但我无法做到,因为我只能写字节数组或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: [B@3ae4f930

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());

1 个答案:

答案 0 :(得分:1)

您是否尝试过String类的getBytes()方法?如果这是你需要的,原始对象包装器(Integer等)上也有类似的方法。