संक्षिप्त उत्तर हां है, बिना युग्मन के ब्लूटूथ का उपयोग करना संभव है। हालाँकि, यह अभी भी एक पॉइंट-टू-पॉइंट लिंक होने वाला है। युग्मन का उपयोग नहीं करने (मुख्य रूप से सुरक्षा की कमी और ऑपरेशन के इस मोड के लिए अच्छे समर्थन की कमी) के साथ संभावित मुद्दे भी हैं। क्या यह किया जा सकता है यह आपके रिसीवर के ब्लूटूथ हार्डवेयर पर निर्भर करता है। मैं मान रहा हूं कि आप ब्लूटूथ कम-ऊर्जा के बजाय 'मानक' ब्लूटूथ का उपयोग कर रहे हैं (जो पूरी तरह से अलग है और विशेष रूप से मोबाइल फोन में अच्छी तरह से समर्थित नहीं है)। यदि आप कम-ऊर्जा का उपयोग कर रहे हैं, तो आप ट्रांसमीटर एक कम-ऊर्जा उपकरण होंगे और आप रिसीवर कुछ ऐसा होगा जो संदेशों के लिए सुनता है। मैंने इसका उपयोग नहीं किया है, इसलिए मैं आपको इस बारे में कोई जानकारी नहीं दे सकता, इसलिए मैं 'सामान्य' ब्लूटूथ के साथ रहूँगा।
जैसा कि मैंने देखा, इसे दूर करने के लिए दो मुद्दे हैं:
पिन बाँधना बंद करना
स्वचालित कनेक्शन दीक्षा
मैं पहले नंबर 2 को कवर करूँगा क्योंकि मुझे यह आभास हो जाता है कि यह वही है जिसमें आप वास्तव में दिलचस्पी ले रहे हैं (माफी माँगता हूँ अगर मैं यह गलत पढ़ रहा हूँ)। फोन या अन्य 'मास्टर' डिवाइस से ऐसा करने के लिए, उसे दूरस्थ ब्लूटूथ डिवाइसों को लगातार खोजना होगा। जब यह उस एक को पहचान लेता है जो लागू होता है, तो यह स्वचालित रूप से इससे जुड़ जाएगा और कुछ डेटा या अन्य भेजेगा जो कि कार्रवाई की आवश्यकता होगी। दूसरों ने इस प्रक्रिया के लिए ब्लूटूथ के अनुकूल नाम के उपयोग का उल्लेख किया है और यह निश्चित रूप से इसे करने का एक तरीका है। ब्लूटूथ फ्रेंडली नामों (विशेषकर लेकिन Microsoft ब्लूटूथ स्टैक के साथ विशेष रूप से नहीं) के मेरे अनुभव यह है कि वे स्कैनिंग की एक मजबूत विधि नहीं हैं। आप संभवतः ब्लूटूथ डिवाइस क्लास का उपयोग करने के लिए बेहतर काम करेंगे, जो अद्वितीय डिवाइस पते के रूप में एक ही समय में प्रसारित किया जाता है। इस डिवाइस क्लास में मोबाइल फोन, लैपटॉप, डेस्कटॉप आदि जैसी चीजों के लिए बड़ी संख्या में पूर्व-निर्दिष्ट प्रविष्टियाँ हैं। यदि आप एक गैर-मानक डिवाइस कक्षाओं (जैसे 00:00:00) का उपयोग करते हैं, तो आप तुरंत सक्षम हो जाएंगे। ब्लूटूथ उपकरणों के विशाल बहुमत को फ़िल्टर करने के लिए। फिर आप शेष डिवाइस से कनेक्ट कर सकते हैं और अपनी कार्रवाई शुरू करने के लिए किसी प्रकार का अनुरोध-स्वीकार संचार कर सकते हैं। यदि आप इसे उपयुक्त रूप से अस्पष्ट करते हैं (या दूसरे विचार के रूप में मैत्रीपूर्ण नाम की जांच करते हैं), तो इसे किसी भी गलत उपकरण को स्पष्ट रूप से फ़िल्टर करना चाहिए।
नंबर 1 के बारे में, यदि आप क्षणिक कनेक्शन बना रहे हैं, तो पिन पेयरिंग विशेष रूप से तर्कसंगत नहीं है, लेकिन यह अभी भी सबसे अच्छा तरीका हो सकता है कि आप क्या करना चाहते हैं। यदि आप पिन पेयरिंग से बचना चाहते हैं, तो इसे बंद किया जा सकता है और अन-पेयर कनेक्शन बनाया जा सकता है। आप यह कैसे करते हैं यह ब्लूटूथ रिसीवर कार्यान्वयन पर निर्भर करता है, लेकिन यहां कुछ उदाहरण दिए गए हैं:
- Bluegiga WT12: SET BT AUTH * कमांड का उपयोग करें
- राष्ट्रीय सेमीकंडक्टर LMX9838: सुरक्षा मोड 1 (कोई जोड़ी) के साथ GAP_SET_SECURITY_MODE कमांड का उपयोग करें
आदि।
डिवाइस से कनेक्ट करना फिर युग्मन के बिना किया जा सकता है। यदि कनेक्शन शुरू करने वाला उपकरण रिसीवर के समान है, तो यह बहुत सीधा है। यदि आप विंडोज पीसी का उपयोग कर रहे हैं, तो आप श्रमसाध्य के माध्यम से एक नई कनेक्शन प्रक्रिया बना सकते हैं और "पिन का उपयोग न करें" चुनें, हालांकि विंडोज संभवतः कनेक्ट होने पर आपसे पिन मांगेगा (0000 आमतौर पर काम करता है, लेकिन यह बहुत परतदार है)। यदि आप अजगर के साथ अजगर का उपयोग कर रहे हैं, तो यह बहुत आसान है:
import bluetooth
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((<insert MAC address>, <insert port number>))
यदि, हालांकि, आप मोबाइल फोन से कनेक्ट करना चाहते हैं, तो यह बहुत अधिक जटिल हो जाता है। Android SDK वास्तव में अनपेक्षित कनेक्शन का समर्थन नहीं करता है:
RFCOMM कनेक्शन स्थापित करने से पहले वर्तमान Android ब्लूटूथ API के उपकरणों की आवश्यकता होती है। (जब आप ब्लूटूथ APIs के साथ एन्क्रिप्टेड कनेक्शन शुरू करते हैं तो पेयरिंग स्वचालित रूप से की जाती है।)
( http://developer.android.com/guide/topics/connectivity/bluaxy.html से )। इस के आसपास तरीके हैं, लेकिन वे बहुत जटिल हैं और अच्छी तरह से समर्थित नहीं हैं। यदि आप एक iPhone का उपयोग कर रहे हैं, तो ब्लूटूथ कनेक्टिविटी कीड़े (लाइसेंस आदि) की एक पूरी अलग-अलग कैन है, इसलिए मैं अभी के लिए छोड़ दूँगा।
कहा कि सब के बाद, बहुत ज्यादा हर एपीआई मैं कभी देखा है अनुमति देता है बाँधना औरबाहर ले जाने के लिए अनुचित (अजगर / pybluez के उल्लेखनीय अपवाद के साथ, लेकिन यह विंडोज पर माइक्रोसॉफ्ट स्टैक के आसपास सिर्फ एक आवरण है, इसलिए आप हमेशा निम्न स्तर के फ़ंक्शन को सीधे कॉल कर सकते हैं)। इसलिए, जब आपने एक उपकरण को सही डिवाइस वर्ग के साथ देखा है, तो न केवल स्वचालित रूप से युग्मित करें (पूर्वनिर्धारित युग्मन पिन संख्या के साथ), कनेक्शन बनाएं, आवश्यक डेटा भेजें, डिस्कनेक्ट करें और फिर अप्रकाशित करें। इसमें से किसी को भी किसी भी उपयोगकर्ता के हस्तक्षेप की आवश्यकता नहीं होगी और जब तक आप इसे हजारों बार नहीं कर रहे हैं (जो संभावित रूप से EEPROM पहनने के साथ समस्या पैदा कर सकता है), तो इससे आपको कोई समस्या नहीं होनी चाहिए। ब्लूटूथ के उपयोग की एक गैर-मानक विधि के रूप में अच्छी तरह से काम करने के लिए विभिन्न एपीआई प्राप्त करने की कोशिश करने से यह आपको बहुत परेशानी से बचाएगा।