2011-11-07 7 views
8

Bluetooth aracılığıyla Hex değerleri nasıl gönderilir ben bu çalıştı ı/SPP bluetooth üzerinden android bir altıgen dizesi göndermek istiyorum: dışarı = sock.getOutputStreamAndroid

();

out.write(myHexString.getBytes()); 

ama işe yaramadı ...

herhangi bir yardım:

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

bu dize göndermek için? Bununla çözüldü

+1

Sizin bundan daha fazla içerik sağlamak zorunda olacak. Çorap nedir? Bluetooth bağlantısı mı? Kirli çorap mı? Bluetooth cihazına nasıl bağlanıyorsunuz? Bluetooth cihazına bağlandınız mı? Lütfen daha fazla kod sağlayın. Ayrıca "işe yaramadı" sorun hakkında yeterli bilgi vermez. Yazma hataları ya da NASIL'ın daha iyi bir açıklaması işe yaramadı. – Jack

cevap

10

sorun:

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

Bu çözüm görmek: Önceki çözümünüz işe yaramadı. Yaptıklarınız değerleri bir dizgeye dönüştürmek ve C-Like dizesini göndermek oldu. Ama eğer gerçek değerleri göndermek istiyorsanız, bu yaklaşım basitçe yanlıştı ('0x55' değerini göndermek yerine "0x55, 0x78, 0x35, 0x35}" dizisini "0x55" 'dir) –

+1

Evet, ikili göndermedim. Seri port için terminalimde, farkı gördüm. Teşekkür ederim! – hnzjo

+0

Mükemmel çalışıyor! Bu cevabı bin kere üstlenebilir miyim? –