@MGriboedoff

Android, bluetooth, HEX, отправить несколько байт в одном пакете?

private boolean connected = false;
private BluetoothSocket sock;
private InputStream in;
private OutputStream out;

zee = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(
        "XX:XX:XX:XX:XX:XX");
    m = zee.getClass().getMethod("createRfcommSocket",
        new Class[] { int.class });
    sock = (BluetoothSocket) m.invoke(zee, Integer.valueOf(1));
    sock.connect();
    in = sock.getInputStream();
    out = sock.getOutputStream();

char[] test = { 0x55, 0x0, 0x0, 0x0, 0x0, 0x50, 0x2, 0x0,
        0x30, 0xD7 };

for(int k=0; k < test.lenght; k++){
new DataOutputStream(sock.getOutputStream()).writeByte(test[k]);
}




for(int k=0; k < test.lenght; k++){
new DataOutputStream(sock.getOutputStream()).writeByte(test[k]);
}


Этот замечательный код отправляет по байтам, но мне нужно отправить все одним пакетом.
Как мне послать данные в HEX не по байтно, а одним пакетом?
  • Вопрос задан
  • 668 просмотров
Решения вопроса 2
svd71
@svd71
Посмoтрите на другие методы OutputStream:

docs.oracle.com/javase/7/docs/api/java/io/OutputSt...

write(byte[] b) - Writes b.length bytes from the specified byte array to this output stream.

write(byte[] b, int off, int len) - Writes len bytes from the specified byte array starting at offset off to this output stream.
Ответ написан
Комментировать
@MGriboedoff Автор вопроса
Вот так у меня отправилось.

byte[] test = { 0x03, 0x40, 0x00, (byte)ch2, (byte)0xC1, (byte)0xC0 };
 outStream.write(test);


Фуф)) Это пол беды... дальше я уже разберусь.

Теперь задача получать все из потока на бекграунде... там же разбирать это (контрольная сумма и т.д.) и собирать, чтобы потом забирать.

Вообщем как организовать слушателя потока, пока есть Socket я не пока вообще не понимаю... и собтсвенно как проверить рабочий ли мой Socket тоже.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы