2016-04-01 7 views
7

मैं एक क्रॉस प्लेटफार्म ऐप (एंड्रॉइड और आईओएस) पर एक टीम के साथ काम कर रहा हूं।मल्टीपायर कनेक्टिविटी: आईओएस और एंड्रॉइड

यह ऐप beacons और/या mesh networking या multipeer-connectivity की अवधारणा का उपयोग करने के लिए है। फिलहाल हमारी टीम एक कोड कोड बनाने के लिए हमारे आईडीई के रूप में ज़ैमरिन का उपयोग कर रही है।

महत्वपूर्ण अनुसंधान (स्पष्ट रूप से इतना अधिक नहीं) के बाद, मैं केवल .. निम्न संसाधनों को खोजने के लिए सक्षम किया गया है

http://altbeacon.org/

http://altbeacon.github.io/android-beacon-library

https://github.com/octoblu/meshblu

https://github.com/octoblu/MeshbluKit-iOS

https://github.com/octoblu/MeshbluKit-Android

https://github.com/CharruaLab/AltBeacon

https://blog.xamarin.com/play-find-the-monkey-with-ios-7-ibeacons/

सवालों की एक जोड़ी:

करता AltBeacon प्लेटफार्मों बीच संचार की अनुमति?

क्या एक्समरिन/सी # में मल्टीपायर/मेष नेटवर्किंग स्थापित करने का एक अंतर्निहित तरीका है?

क्या एस्टिमोट को स्टिकर/अनुमानित बीकन के उपयोग की आवश्यकता होती है, या क्या स्मार्टफोन बीकन के रूप में कार्य कर सकता है?

मैं क्या देख रहा हूँ:

  1. एक तरह से iOS और Android डिवाइस के बीच कनेक्शन स्थापित करने के लिए जब उपयोगकर्ताओं को Wi-Fi या "डाटा" संबंध नहीं है।

  2. अनिवार्य रूप से प्रत्येक डिवाइस एक दूसरे के लिए "बीकन" के रूप में कार्य करेगा।

  3. Xamarin/सी # बहुत जरूरी है (हालांकि मैं अन्य समाधान सुनेंगे अगर वे समझाने कर रहे हैं)

  4. इस परिदृश्य:

दो व्यक्तियों चलना एक-दूसरे गुजरती हैं। दोनों के पास उनके फोन पर ऐप चल रहा है। एक व्यक्ति के पास एक आईफोन होता है और दूसरे में एंड्रॉइड होता है। उनके ऐप्स पृष्ठभूमि में चल रहे हैं (उनके फोन उनके जेब या हाथ में हैं और लॉक हैं .. जिसका अर्थ है "उपयोग" में नहीं)। व्यक्तियों को एक दूसरे के अतीत चलने के रूप में अपने फोन को एक-दूसरे का पता लगाने और भेजने/एक और

पहले इस घटना को ले जा रही जगह पर एक से पाठ प्राप्त करते हैं, उपयोगकर्ता 1 एक नोट निम्न जानकारी युक्त बचाने के लिए एप्लिकेशन का इस्तेमाल किया .. ।

"पानी के फव्वारे ठीक से काम कर" 2 अपने डिवाइस पर एप्लिकेशन का इस्तेमाल किया निम्नलिखित जानकारी युक्त एक नोट को बचाने के लिए

जबकि उपयोगकर्ता ...

"हाथ रेल थोड़ा क्षतिग्रस्त "


उपयोगकर्ताओं के बाद एक दूसरे को, अगली बार जब वे अपने एप्लिकेशन को खोलने वे एक ही अद्यतन टिप्पणी पढ़ने देखना चाहिए ...

"पानी के फव्वारे ठीक से काम कर

हाथ रेल थोड़ा क्षतिग्रस्त"

बीत चुके हैं

संभव समाधान: TBD

अस्वीकृत समाधान: TBD

-

वर्तमान निष्कर्ष: Apps वर्तमान में इस तरह के FireChat, ViewRanger (मेरा मानना ​​है कि), या Xamarin उदाहरण "बंदर का पता लगाएं" के रूप में मौजूद हैं। ऐप्पल अपने स्टोर में iBeacons का उपयोग करता है और अन्य एंड्रॉइड उपकरणों के लिए AltBeacon का उपयोग करते हैं। मैंने निष्कर्ष निकाला है कि यह निश्चित रूप से संभव है लेकिन दोनों प्लेटफार्मों को एक-दूसरे के रूप में कार्य करने के दौरान इसे सर्वश्रेष्ठ तरीके से निष्पादित करने की तलाश में है।

+0

आपको क्या निष्कर्ष मिल गए हैं? क्या आपने वास्तव में एक सबूत-अवधारणा अनुप्रयोग लिखा है? – t0mm13b

+0

अच्छे प्रश्न, मैंने अपनी पोस्ट अपडेट की है। – captainrad

+0

आईओएस पर डिवाइस पृष्ठभूमि में एक बीकन के रूप में कार्य नहीं कर सकता है। इसके अलावा iBeacons आदि केवल 3 पहचानकर्ता विज्ञापन। वे जानकारी का आदान-प्रदान नहीं करते हैं। आपको बीएलई परिधीय और केंद्रीय भूमिकाओं को लागू करने की आवश्यकता होगी। आईओएस पर यह कोर ब्लूटूथ के माध्यम से है। मैं ज़ैमरिन का उपयोग नहीं करता लेकिन मैंने कोर ब्लूटूथ प्रश्नों को देखा है, इसलिए यह समर्थित है। मुझे लगता है कि उचित एंड्रॉइड पुस्तकालयों के माध्यम से एंड्रॉइड पर एक्समरिन के लिए भी यह सच है, हालांकि मुझे नहीं पता कि सी # कोड कितना पोर्टेबल होगा। मुझे संदेह है कि आपको प्रत्येक प्लेटफार्म – Paulw11

उत्तर

3

के वर्णन से आपका दृश्य ios एक यह 2 आसान चरणों को बंद कर सकता है:

  1. की खोज-पास के डिवाइसों
  2. खोज

आवश्यक पर सरल डाटा आदान: इस एक्स-मंच iOS और काम करना चाहिए एंड्रॉयड

मैं मान लें कि इसका संपर्क करने का सबसे अच्छा तरीका बीएलई का उपयोग करना है, जो दोनों प्लेटफार्मों (दूसरों की तुलना में कुछ बेहतर) द्वारा समर्थित है।

आईओएस पर एक डिवाइस एक ही समय में बीएलई सेंट्रल और बीएलई परिधीय दोनों के रूप में कार्य कर सकता है, एंड्रॉइड पर स्थिति अधिक जटिल है क्योंकि सभी डिवाइस बीएलई पेरिफेरल राज्य का समर्थन नहीं करते हैं। एंड्रॉइड बीएलई स्टैक भी अस्थिर है।

यदि आपका उपयोग केस सुविधा संचालित है, तो मैं फ्रेमवर्क और पुस्तकालयों को देखने का सुझाव दूंगा जो आपको इसे प्राप्त कर सकते हैं, बिना इसे खरोंच से बनाने की आवश्यकता के।

उदाहरण के लिए: http://www.p2pkit.io, http://www.intromi.co और http://www.underdark.io या आसपास

गूगल के साथ Xamarin साथ मूल कोड का उपयोग आप सरल एक पुल (बाइंडिंग: https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/) बना सकते हैं के संबंध।

अस्वीकरण: मैं यूपीए के लिए काम करता हूं, एंड्रॉइड और आईओएस के लिए p2pkit.io विकसित करता हूं।

+0

बहुत बढ़िया! वास्तव में इसे पोस्ट करने से पहले अंडरडार्क का उपयोग करना शुरू कर दिया। अब p2pkit.io और intromi.co की जांच कर रहा है। मैं इसे कुछ दिनों में उत्तर के रूप में देखूंगा क्योंकि यह अब मेरे लिए सबसे उपयोगी जानकारी प्रदान करता है। – captainrad

2

"क्या मैं देख रहा हूँ: एक तरह से iOS और Android डिवाइस के बीच कनेक्शन स्थापित करने के लिए जब उपयोगकर्ताओं को Wi-Fi या है" डेटा एक दूसरे के लिए बीकन ""। कनेक्शन अनिवार्य रूप से प्रत्येक डिवाइस एक के रूप में कार्य करेंगे। " Xamarin/सी # बहुत जरूरी है (हालांकि मैं अन्य समाधान सुनेंगे अगर वे समझाने कर रहे हैं) "

BLE (ब्लूटूथ निम्न ऊर्जा) क्या आप के लिए, इसके बारे में अभी नहीं iBeacon हिस्सा देख रहे है।

आईबीकॉन बीएलई स्टैक के शीर्ष पर बनाया गया है, बीएलई विज्ञापन पैकेट के "निर्माता विशिष्ट डेटा" (जो ऐप्पल किया) सेट करके। iBeacon बीएलई "प्रसारण" मोड में काम करता है और यह केवल तीन डेटा फ़ील्ड यूयूआईडी, प्रमुख (16-बिट), मामूली (16-बिट) स्थानांतरित करता है। इसके अतिरिक्त आरएसएसआई (संकेत शक्ति संचरित/गणना की जाती है)।

बुरी बात यह है कि यदि आप आईओएस कोर स्थान या किसी अन्य आईबीकॉन लाइब्रेरी का उपयोग करते हैं तो यह यूयूआईडी, प्रमुख, नाबालिग, आरएसएसआई के साथ काम करेगा। आप मानक iBeacon प्रोटोकॉल पर किसी भी additonal डेटा स्थानांतरित नहीं कर सकते हैं।

  1. जो आप देख रहे हैं वह एंड्रॉइड पर आईओएस या ब्लूटूथ लो एनर्जी लाइब्रेरी के लिए कोरब्लूटूथ है।
  2. आप शायद गैट/ATT BLE परतों का उपयोग (के बाद से existing में से कोई भी शायद आपके अनुरोध करने के लिए फिट अभ्यस्त)
  3. आप अपने BLE से अधिक एप्लिकेशन विकसित करने की आवश्यकता अपने कस्टम प्रोफाइल बनाने के लिए प्रोफाइल सेटअप

रखें मन है कि BLE कम बिजली और कम गति संचार होता है, जहां 20 बाइट हर 25-30ms

आशा इस मदद करता है अप करने के लिए (कई विभिन्न प्लेटफार्मों पर मेरे परीक्षण से) उम्मीद कर सकते हैं ...

संबंधित मुद्दे

 संबंधित मुद्दे