2011-11-07 14 views
8

chcę wysłać ciąg szesnastkowy w Android poprzez Bluetooth/SPP Próbowałem to:Jak wysłać Hex Values ​​przez Bluetooth w Androidzie

out = sock.getOutputStream();

String myHexString = Integer.toHexString(80) + " " 
     + Integer.toHexString(2) + " " + Integer.toHexString(0) 
     + " " + Integer.toHexString(48); 

aby wysłać to wyrażenie:

out.write(myHexString.getBytes()); 

ale nie działa ...

pomocy?

+1

zamierzasz dać więcej kontekstu niż to. Co to jest skarpeta? Czy to jest połączenie Bluetooth? Brudna skarpetka? W jaki sposób łączysz się z urządzeniem Bluetooth? CZY jesteś podłączony do urządzenia Bluetooth? Podaj więcej kodu. Również "to nie działało" nie daje wystarczających informacji na temat problemu. Opublikuj również błędy lub lepszy opis JAK to nie zadziałało. – Jack

Odpowiedz

10

problem rozwiązany z tym:

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]); 
} 
+0

Widząc to rozwiązanie: Twoje poprzednie rozwiązanie nie mogło działać. To, co tam zrobiłeś, to przekonwertowanie wartości na ciąg znaków i wysłanie łańcucha C-Like. Ale jeśli chcesz wysłać rzeczywiste wartości, to podejście było po prostu błędne (zamiast wysłać wartość "0x55" wysłałeś sekwencję '{0x30, 0x78, 0x35, 0x35}' która jest '" 0x55 "') –

+1

Tak, nie wysłałem go binarnie. W moim terminalu dla portu szeregowego widziałem różnicę. Dziękuję Ci! – hnzjo

+0

Działa doskonale! Czy mogę odpowiedzieć na to pytanie tysiąc razy? –

Powiązane problemy