2011-11-07 17 views
8

में ब्लूटूथ के माध्यम से हेक्स मान भेजने के लिए मैं ब्लूटूथ के माध्यम से एंड्रॉयड में एक हेक्स स्ट्रिंग भेजने के लिए/SPP मैं इस कोशिश की हैं:कैसे एंड्रॉयड

बाहर = sock.getOutputStream();

out.write(myHexString.getBytes()); 

लेकिन काम नहीं किया ...

कोई मदद:

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

इस स्ट्रिंग भेजने के लिए?

+1

आपका इस से अधिक संदर्भ प्रदान करने के लिए जा रहा है। साक क्या है? क्या यह एक ब्लूटूथ कनेक्शन है? एक गंदे साक? आप ब्लूटूथ डिवाइस से कैसे जुड़ रहे हैं? क्या आप ब्लूटूथ डिवाइस से जुड़े हैं? कृपया अधिक कोड प्रदान करें। इसके अलावा "यह काम नहीं किया" इस मुद्दे के बारे में पर्याप्त जानकारी नहीं देता है। पोस्ट त्रुटियों के साथ-साथ बेहतर विवरण यह कैसे काम नहीं करता है। – Jack

उत्तर

10

समस्या इस के साथ हल:

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

इस समाधान को देखकर: आपका पिछला समाधान काम नहीं कर सका। मूल्यों को एक स्ट्रिंग में कनवर्ट करने और सी-लाइक स्ट्रिंग भेजने के लिए आपने वहां क्या किया था। लेकिन यदि आप वास्तविक मूल्य भेजना चाहते हैं, तो यह दृष्टिकोण बस गलत था (मूल्य '0x55' भेजने के बजाय आप अनुक्रम' {0x30, 0x78, 0x35, 0x35} 'भेज देंगे जो' 0x55 "' –

+1

हाँ, मैंने इसे बाइनरी नहीं भेजा था। धारावाहिक बंदरगाह के लिए मेरे टर्मिनल में, मैंने अंतर देखा। धन्यवाद! – hnzjo

+0

यह पूरी तरह से काम करता है! क्या मैं इस जवाब को एक हज़ार बार उखाड़ सकता हूं? –