का उपयोग कर फ़ाइल भेजना क्या ओबीएक्स का उपयोग कर एंड्रॉइड ब्लूटूथ एपीआई का उपयोग कर फ़ाइल भेजने का कोई तरीका है?ब्लूटूथ ओबीएक्स ऑब्जेक्ट पुश प्रोफाइल (ओपीपी)
मुझे एक प्रिंटर को एक फ़ाइल भेजने की आवश्यकता है जो केवल ओबीएक्स ओपीपी का समर्थन करता है।
मैं कोई समस्या नहीं के साथ प्रिंटर के लिए एंड्रॉयड आशय ACTION_SEND का उपयोग कर फ़ाइल भेज सकते हैं, लेकिन मैं इसे प्रोग्राम के रूप में भेजने की जरूरत होगी ..
मैं OBEX OPP UUID का उपयोग कर ब्लूटूथ प्रिंटर से कनेक्ट कर सकते हैं (1105) विधि बनाने के साथ rfcommSocketToServiceRecord(), लेकिन फिर मुझे ओबेक्स का उपयोग कर फ़ाइल भेजने के लिए ओबेक्स विनिर्देशों का पालन करना चाहिए .. यह आउटपुट सॉकेट में बाइट्स लिखने जितना आसान नहीं है ..
लेकिन यदि ACTION_SEND का इरादा इसे संभाला जा सकता है, डेवलपर्स के लिए फाइल भेजने के लिए कोई एपीआई क्यों नहीं है?
मैं भी BlueCove की तरह किसी तीसरे पक्ष libs की जाँच की, लेकिन मैं अभी भी नहीं किया यह काम करने के लिए .. (नेक्सस वन & Galaxy Tab एक अपवाद कह रही है कि देशी पुस्तकालय bluecove_armv71 उपलब्ध नहीं है फेंक मिल .. और एलजी ऑप्टिमस एक कहता है कि bluecove_armv61 उपलब्ध नहीं है ..)
मैं अटक गया हूं, कोई विचार?
श्रमजीवी समाधान
कोई भाग्य के साथ एक ब्लूटूथ डिवाइस के लिए एक फ़ाइल भेजने की कोशिश कर किसी को भी के लिए, मैं एक काम कर समाधान (KPBird करने के लिए धन्यवाद) सामग्री प्रदाताओं का उपयोग कर देते हैं:
ले लो जावा वर्ग BluetoothSharehere से
से, निम्नलिखित कोड एक फ़ाइल एसडी कार्ड पर एक ब्लूटूथ डिवाइस के लिए भेजता है:
BluetoothDevice device;
String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg";
ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString());
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);
अद्यतन
कुछ लोगों को ऊपर समाधान के साथ समस्याओं का सामना कर रहे हैं, यह निम्नलिखित उपकरणों पर परीक्षण किया गया है:
वर्क्स पर:
- एलजी ऑप्टिमस वन (Android 2.1)
- एचटीसी डिजायर (एंड्रॉइड 2.2)
- Google नेक्सस वन (एंड्रॉइड 2.2 और 2.3)
- सैमसंग गैलेक्सी एस 2 (एंड्रॉयड 4.0.3)
- एचटीसी अमेज (एंड्रॉयड 2.3.4)
पर मुद्दों है:
- एलजी P500 (एंड्रॉयड 2.3.3)
- गैलेक्सी टैब पी 500 (एंड्रॉइड 2.2)
- Google नेक्सस एस (एंड्रॉइड 4.1।2)
आप उपकरणों जो ऊपर सूचीबद्ध नहीं हैं पर इस स्निपेट का परीक्षण करने में सक्षम हैं, तो कृपया उपकरणों (ब्रांड, नाम, एंड्रॉयड संस्करण, आदि ..) है जिसके साथ आपने इसका परीक्षण का विवरण प्रदान , और परीक्षण परिणाम, नीचे एक टिप्पणी में, मैं आपके डेटा सहित प्रश्न अपडेट कर दूंगा।
हाय ShadowCloud, उपरोक्त कोड में, एक बार contentUri से भर जाता है, जहां ब्लूटूथ डिवाइस धक्का होता है ?? मुझे इसके लिए कोई कोड नहीं दिख रहा है ... –
यह कोड ओएस पर 4.1 से – Harish