ठीक है यह सौदा है। मुझे ब्लूटूथ सक्षम दोनों के साथ दो गैलेक्सी नेक्सस फोन मिले।एंड्रॉइड ब्लूटूथ IOException: कनेक्शन से इनकार कर दिया
मुझे लगता है कि मैं उपकरण का अन्वेषण और कनेक्टिविटी के लिए उपयोग एक ब्लूटूथ कनेक्शन प्रबंधन अनुप्रयोग लिखा है। यह सभी उपलब्ध यूयूआईडी भी आउटपुट करता है जो डिवाइस समर्थन कर सकते हैं।
http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm से देखते हुए निम्न मानक UUIDs गैलेक्सी नेक्सस डिवाइस से संपर्क में हैं।
- 0x1116 - NAP
- 0x112f - PBAP (फोनबुक एक्सेस प्रोफ़ाइल)
- 0x111f - HFP (हाथ मुक्त)
- 0x1105 - OPP (ऑब्जेक्ट पुश प्रोफ़ाइल)
- 0x1112 - HSP (हेडसेट प्रोफ़ाइल)
- 0x110c - AVRCP
- 0x110a - A2DP
मैं ओपीपी प्रोफाइल (UUID 00001105-0000-1000-8000-00805F9B34FB
) के माध्यम से कनेक्ट करने की कोशिश कर रहा हूं और उपकरणों के बीच ऑब्जेक्ट्स (फाइलें) दबाता हूं। मैं पूरे Android API documentation को कैसे खोजूं, जोड़ी/बॉन्ड (थ्रेडिंग इत्यादि) को खोजने और सभी ब्लूटूथ कनेक्शन प्रबंधित करने के लिए चला गया है। मैंने एसपीपी (0x1101) प्रोफाइल के माध्यम से सफलतापूर्वक कनेक्ट और लीगेसी बोर्ड डिवाइस से बात करने में कामयाब रहा है।
हालांकि, जब मैं दो गैलेक्सी नेक्सस फोन के बीच socket.connect()
का उपयोग करने का प्रयास करता हूं, तो युग्मन संवाद दिखाई देता है और मैं दोनों डिवाइसों पर Pair
बटन क्लिक करता हूं। उसके बाद, मुझे तुरंत Connection Refused IOException
मिलता है। ध्यान दें कि युग्मन के बाद एक बार फिर कभी नहीं पूछा जाता है जो सुरक्षित लिंक कैश किए जाने के बाद से समझ में आता है।
मैं इन मानक प्रोफाइल इन मानक UUIDs कारण है कि वे संपर्क में हैं का उपयोग कर कनेक्ट नहीं कर सकता है? मैं अपने ऐप से इन प्रोफाइल में से किसी से कैसे जुड़ सकता हूं और उनके साथ बातचीत कर सकता हूं? क्या ऐसा इसलिए है क्योंकि मेरा ऐप किसी तरह भरोसेमंद नहीं है? अजीब बात यह है कि एंड्रॉइड पर Share
कार्यक्षमता भी काम नहीं करती है। क्या यह एंड्रॉइड पर पूरी तरह टूटा हुआ है?
मुझे "अच्छी तरह से ज्ञात UUID एसपीपी एक 0x1101" का उपयोग करने के डॉक्स की तरह कहते हैं कि संकेत दे रही है से बचें। यह वह नहीं है जिसकी मुझे चाहत है। मुझे यह अच्छी तरह से समझ है कि यह सामान कैसे काम करता है और मैं समस्या का वास्तविक समाधान या स्पष्टीकरण ढूंढ रहा हूं।
मैं ठेठ "प्रतिबिंब" समाधान को देखा है लेकिन मुझे समझ नहीं आता क्यों यह अभी भी एंड्रॉयड पर एक समस्या है? लोग इस काम को करने के लिए प्रतिबिंब का उपयोग क्यों करते हैं? क्या हम इसे ठीक करने के लिए एंड्रॉइड पर एक बग फाइल कर सकते हैं?
उन UUIDs मानक हैं, तो किसी भी अनुप्रयोग से कनेक्ट करने और उन लोगों के साथ बातचीत करने के लिए सक्षम होना चाहिए। यह एक मुद्दा क्यों है और मुझे यह अपवाद क्यों मिलता है?
अग्रिम धन्यवाद।
अद्यतन
तो एंड्रॉयड प्रणाली में वस्तु धक्का काम करना शुरू किया किसी कारण से। मैंने वास्तव में अपने ऐप के माध्यम से कनेक्ट करने का प्रयास किया और यह काम नहीं कर रहा था। फिर, मैं संपर्क ऐप पर गया और एक संपर्क साझा करने की कोशिश की जो जादुई रूप से काम करता था। फिर, मैं अपने ऐप पर वापस गया और अब यह काम करता है ... वाह। यह बहुत अजीब है और इसके लिए एक स्पष्टीकरण होना चाहिए।
आपने सही अनुमतियां सेट की हैं? http://developer.android.com/guide/topics/connectivity/bluetooth.html#Permissions – Lars
@ लार्स बेशक उसने किया। dnkoutso: आप सॉकेट को कितनी अच्छी तरह खोल रहे हैं? क्या आप फिर से जोड़ना चाहते हैं, वह है - फिर अनपेयर फिर से जोड़ी। बीटीडब्ल्यू, क्या यह 2 स्तर है? – nullpotent
@iccthedral, 2 स्तर से आपका क्या मतलब है? मैं अक्सर दोनों डिवाइसों पर असली सेटिंग्स ऐप में जाता हूं और जोड़ी को हटा देता हूं। एक बार जब मैं 'socket.connect()' को फिर से कॉल करता हूं तो यह मुझे जोड़ों के संवाद और पासकी संख्या से भर देता है। दुर्भाग्यवश, मुझे "कनेक्शन अस्वीकार" IOException मिलने के ठीक बाद। – dnkoutso