भेज रहा है मैं एंड्रॉइड डिवाइस में ब्लूटूथ पर एक फाइल भेजने की कोशिश कर रहा हूं। मैंने डिस्कवरी, कनेक्शन किया है और ब्लूटूथ सॉकेट बनाया है। समस्या यह है कि जब मैं ब्लूटूथ सॉकेट की आउटपुट स्ट्रीम में बाइट सरणी लिख रहा हूं, तो प्राप्तकर्ता पक्ष को कुछ भी प्राप्त नहीं होता है हालांकि यह स्वीकार करता है कि कुछ भेजा जा रहा है।एंड्रॉइड ब्लूटूथ फ़ाइल
यहाँ Iam कर (बुरा ब्लूटूथ एडाप्टर है)
कृपया सलाह है।
try
{
BluetoothDevice dev = bad.getRemoteDevice(a);
bad.cancelDiscovery();
dev.createRfcommSocketToServiceRecord(new UUID(1111, 2222));
Method m = dev.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
bs = (BluetoothSocket) m.invoke(dev, Integer.valueOf(1));
bs.connect();
tmpOut = bs.getOutputStream();
}catch(Exception e)
{
}
File f = new File(filename);
byte b[] = new byte[(int) f.length()];
try
{
FileInputStream fileInputStream = new FileInputStream(f);
fileInputStream.read(b);
}catch(IOException e)
{
Log.d(TAG, "Error converting file");
Log.d(TAG, e.getMessage());
}
try {
tmpOut.write(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
इसके लिए आप क्या करते हैं: dev.createRfcommSocketToServiceRecord (नया UUID (1111, 2222)) ;? आप इसका उपयोग किए बिना यूयूआईडी का उपयोग करके ब्लूटूथ सॉकेट बनाते हैं। विधि m = dev.getClass()। GetMethod ("createRfcommSocket", नई कक्षा [] {int.class}); बीएस = (ब्लूटूथ सॉकेट) m.invoke (dev, Integer.valueOf (1)); RfComm चैनल 1 पर एक ब्लूटूथ सॉकेट खोलता है। तो केवल तभी जब आप जिस डिवाइस को फ़ाइल भेजने की कोशिश कर रहे हैं, वह इस चैनल को सुन रहा है, तो आप फ़ाइल – Weeman
फ़ाइल प्राप्त कर पाएंगे ठीक है, मैंने अभी उस पंक्ति को हटा दिया है लेकिन अभी भी काम नहीं करता है। मैंने डीबगर मोड लॉन्च किया और यह मुझे दिखाता है कि मेरा tmpOut (outputstream) शून्य है। तो क्या इसका मतलब है मेरे ब्लूटूथ सॉकेट के साथ एक समस्या? क्या डिवाइस डिफ़ॉल्ट रूप से आरएफसीओएम चैनल 1 पर सुनता है या क्या मुझे रिसीवर डिवाइस में रिसीवर भी होना चाहिए? मैं सिर्फ एक फाइल भेजना चाहता था जिसे किसी अन्य फोन की डिफ़ॉल्ट ब्लूटूथ सेवा द्वारा प्राप्त किया जा सके। – exorcist
फ़ाइल ट्रांसफर जैसे सामान्य एप्लिकेशन तथाकथित ब्लूटूथ प्रोफाइल (http://en.wikipedia.org/wiki/Bluetooth_profile) में निर्दिष्ट हैं, इसलिए यदि आप "डिफ़ॉल्ट ब्लूटूथ सेवा" का उपयोग करके फ़ाइल को स्थानांतरित करना चाहते हैं तो आपको इसे करना होगा OBEX प्रोफ़ाइल जो फ़ाइलों को ट्रांसफर करने के लिए उपयोग की जाती है (http://en.wikipedia.org/wiki/OBEX) – Weeman