2017-07-12 7 views
12

के पक्ष में एंड्रॉइड डिवाइसों को पक्ष में रखना संभव है, मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जिसके लिए उपकरणों को एक तरफ और/या ऊपर और नीचे एक तरफ रखा जाना चाहिए।क्या

मुझे पता है कि मैं आस-पास के एपीआई का उपयोग "आस-पास" उपकरणों का पता लगाने के लिए कर सकता हूं, हालांकि मुझे थोड़ा और अधिक "फाइनर ग्रेनेड" चाहिए।

मेरा ऐप बाएं तरफ, ऊपर, दाएं तरफ या नीचे दिए गए डिवाइस को पहचानने में सक्षम होना चाहिए। जबकि सभी डिवाइस एक टेबल पर फ्लैट लगा रहे हैं (उदाहरण के लिए)।

मुझे इस उपयोग के मामले का वर्णन करने वाले वेब पर कुछ भी नहीं मिल सकता है।

क्या यह संभव है?

अद्यतन

मेरे उपयोग के मामले है कि मैं Android उपकरणों की "अन्य उपकरण" या तो अपने बाएं या दाएं बिछाने किसी भी संख्या का पता लगाने के लिए सक्षम होना चाहता हूँ। डिवाइस प्रत्येक के बीच एक "छोटे" अंतर के साथ क्षैतिज रूप से रखे जाएंगे।

उसी तरह से आप एक शब्द या वाक्यांश का उच्चारण करने के लिए बच्चों के लेटर्ड ब्लॉक ले सकते हैं, या राशि बनाने के लिए क्रमांकित ब्लॉक।

न केवल डिवाइसों की रेखा को अपने बाएं हाथ में अपने तत्काल पड़ोसियों का पता लगाने में सक्षम होना चाहिए और दोनों उपकरणों को किसी भी अंत में सही ढंग से पता लगाना चाहिए कि वे लाइन के प्रारंभ और अंत (बाएं से दाएं पढ़ रहे हैं) ।

+1

यहां तक ​​कि अगर कोई फ़ोन था जो इस तरह की स्थिति का पता लगा सकता है, तो मेरा अनुमान है कि सभी फोन ऐसा नहीं कर सकते हैं। –

+1

क्या यह आपके लिए कुछ स्पर्श संकेतों से उपकरणों को init करने का विकल्प होगा? या क्या उन्हें अपनी स्थिति को स्वचालित रूप से जानना है? – Katharina

+2

जीपीएस एकमात्र चीज है जिसे मैं सोच सकता हूं। हालांकि, मुझे सटीकता के बारे में निश्चित नहीं है और यह एक इमारत के अंदर काम नहीं करेगा। आप इसे एनएफसी के साथ संयोजित करने में सक्षम हो सकते हैं। –

उत्तर

3

निकटता सेंसर का उपयोग करना आपके प्रश्न को हल करने का एक संभावित तरीका है। TYPE_PROXIMITY वस्तु के नजदीक से दूरी प्रदान करेगा। TYPE_MAGNETIC_FIELD x/y/z पर geomagnetic फ़ील्ड शक्ति देता है।

अधिक पढ़ने के लिए Position Sensors

+0

ऐसा नहीं लगता है, क्योंकि TYPE_PROXIMITY सेंसर यह निर्धारित करता है कि डिवाइस का चेहरा किसी ऑब्जेक्ट के करीब कितना करीब है, लेकिन बाईं तरफ, ऊपर, दाएं तरफ या नीचे दिए गए डिवाइस की पहचान न करें। TYPE_MAGNETIC_FIELD निकटतम वस्तुओं के स्थान के बारे में कोई जानकारी नहीं देता है। और यहां तक ​​कि यदि आप दूसरे डिवाइस पर एक चुंबकीय टैग डालते हैं, तो यह केवल दूरी की दूरी तय करना संभव होगा, लेकिन दिशा नहीं। –

1

ऐसा नहीं लगता है, यदि आपके पास केवल 2 डिवाइस हैं, लेकिन यदि आपके पास किसी भी सिग्नल (ऑडियो, कंपन, बीटी या वाईफ़ाई रेडियो इत्यादि) के बाहरी स्रोत (ज्ञात स्थिति के साथ) हैं, जिन्हें पर्याप्त उपकरणों के साथ पता लगाया जा सकता है शुद्धता, और उपकरणों समय सिंक्रनाइज़ है, आप इस तस्वीर पर की तरह दोनों उपकरणों पर संकेत शुरू (या सिग्नल की शक्ति) के इस की तुलना समय कर सकते हैं:

Example

या, यदि आप में से एक के लिए कुछ सेंसर जोड़ सकते हैं डिवाइस, आप "अन्य डिवाइस लोकेटर" बना सकते हैं, उदाहरण के लिए this ध्वनि लोकेटर।

अद्यतन

एक अद्यतन तैयार करने में, इस मुद्दे भी व्याख्या करने योग्य नहीं है: यह निर्धारित करने के लिए जो दो उपकरणों के किनारे पर हैं संभव है, लेकिन आप निर्धारित नहीं कर सकता जो एक बाईं तरफ है और जो सही पर है पक्ष। यह आवश्यक है कि कम से कम एक डिवाइस जानता है कि, उदाहरण के लिए, बाईं ओर है - उदाहरण के लिए, अन्य डिवाइस, ध्वनि उत्पन्न करता है, अन्य इसे प्राप्त करते हैं और आगमन के समय के अंतर के अनुसार अपना आदेश निर्धारित करते हैं। लेकिन समय के एंकर पॉइंट और सिंक्रनाइज़ेशन आवश्यक हैं।

+0

@ हेक्टर इस विचार के साथ चल रहा है ("ज्ञात" सिग्नल का समय पता करें) _might_ लाइन में पहली मशीन रखने का प्रयास करें किसी प्रकार का "बीप" उत्सर्जित करें, और शेष डिवाइस इसके लिए सुनें ... यह _might_ उनके सापेक्ष आदेश को निर्धारित करने के लिए पर्याप्त हो। ध्वनि के लिए प्रचार समय (मुझे कल्पना है) बीटी/वाईफ़ाई से बहुत कम हो सकता है कि आप मतभेदों को हल करने में सक्षम होने की अधिक संभावना रखते हैं। यह _if_ को नहीं बताएगा कि उन्हें एक पंक्ति में व्यवस्थित किया गया है, लेकिन अगर वे हैं तो आदेश दे सकते हैं। – TripeHound

+0

@TripeHound "यह उनके सापेक्ष आदेश को निर्धारित करने के लिए पर्याप्त हो सकता है" - केवल दूरी से, दिशा (स्थान) द्वारा नहीं, उदाहरण के लिए: बाईं ओर और दाईं ओर दाईं ओर दो डिवाइस एक सिग्नल प्राप्त करेंगे। –

+0

यही कारण है कि मैंने ध्वनि को निकालने के लिए _end_ डिवाइस बनाने का सुझाव दिया ... अन्य सभी (अगर सीधी रेखा में) इसे _slightly_ अलग-अलग समय पर सुनेंगे। और जैसा कि मैंने कहा, यह एक मूर्खता में डिवाइस _weren't_ अगर बेवकूफ हो सकता है। यह ओपी कर सकते हैं सबसे अच्छा हो सकता है। (एक और जटिल विकल्प, यदि मूल विचार बिल्कुल काम करने के लिए किया जा सकता है, तो सभी उपकरणों के लिए थोड़ा आवृत्तियों पर बीप उत्सर्जित करने के लिए होगा, तो रिश्तेदार स्थिति के बारे में कुछ विचार पाने के लिए एक-दूसरे के बीच "त्रिकोण" करना संभव हो सकता है)। – TripeHound

2

एक विचार, मामले में यह आपके उपयोग के मामले के लिए प्रासंगिक है:

  • सेटअप चरण
    • "युग्मन मोड" में प्रत्येक डिवाइस पर अपने अनुप्रयोग शुरू करते हैं।
    • प्रत्येक डिवाइस एक क्यूआर कोड दिखाएगा जिसमें डिवाइस के साथ संचार करने के लिए आवश्यक कुंजी शामिल है (उदाहरण के लिए फायरबेस के माध्यम से), और स्क्रीन विवरण: पिक्सल में आकार। यह स्क्रीन सीमाओं पर एक आयत भी खींचा जाएगा।
    • इस लेआउट के बाहर एक अलग फोन आपके ऐप को "मास्टर" के रूप में चलाएगा, ऊपर से फोन की एक तस्वीर ले जाएगा।
    • अब आपको स्क्रीन और उनके स्थानों, अभिविन्यास की पहचान करने और विश्लेषण के लिए क्यूआर कोड निकालने के लिए एक एल्गोरिदम लिखना होगा। आसान नहीं है, लेकिन करने योग्य।
  • इंटरेक्शन चरण
    • अब सभी फोन (इस पर दो से अधिक फोन काम करना चाहिए) स्क्रीन सहयोग इसी फिल्म के कुछ हिस्सों को दिखाने के लिए, उदाहरण के लिए कर सकते हैं।
-1

मैं एक तरह से लगता है लेकिन यह एक थोड़ा काम की आवश्यकता हो सकती। सबसे पहले जांचें कि 2 डिवाइस डिवाइस अभिविन्यास प्राप्त कर रहे हैं और पिच, रोल इत्यादि की जांच करने के लिए एक्सेलेरोमीटर या रोटेशन वेक्टर का उपयोग कर रहे हैं

जब आप सुनिश्चित हैं कि वे एक डिवाइस से डेटा को बीटी या वाईफ़ाई का उपयोग करके एक से दूसरे में डेटा भेज रहे हैं । डेटा भेजने का समय शामिल होना चाहिए। अन्य डिवाइस पर पीछे हटने का समय भी जांचें, आपको डेटा भेजने और पुनः प्राप्त करने के लिए विलंबता की जांच करनी चाहिए। यदि आप उपकरणों के बीच छोटी दूरी के अंतर के लिए एमएस में एक उल्लेखनीय समय अंतर कर सकते हैं तो यह जांचना आसान होगा कि वे कितने करीब हैं। इसके अलावा आप बीटी या वाईफाई सिग्नल के लिए यात्रा का समय प्राप्त करने के लिए उपयोगकर्ताओं को अपने डिवाइस को 1 मीटर या निश्चित दूरी एक दूसरे से पकड़ने के लिए कह सकते हैं।

1

अपने उपयोग के मामले को कम करके, आस-पास एपीआई, अन्य तकनीकों का उपयोग करके मेजबान डिवाइस से घिरे उपकरणों की संख्या को ढूंढना संभव है। लेकिन प्रत्येक पक्ष कितने डिवाइस खोजें !!! मुझे नहीं लगता कि यह मौजूदा मोबाइल हार्डवेयर और प्रौद्योगिकी के साथ संभव है। क्योंकि, सभी कारकों पर विचार करके, चुंबकीय सेंसर केवल कम से कम संभव समाधान हैं। लेकिन मौजूदा मोबाइल में ऐसी कोई क्षमता नहीं है।

उपरोक्त उत्तरों के आधार पर मैंने निम्नलिखित बिंदु बनाया है। TYPE_ACCELEROMETER, TYPE_LINEAR_ACCELERATION, TYPE_MAGNETIC_FIELD, TYPE_ORIENTATION ये सेंसर डिवाइस के चारों ओर चुंबकीय क्षेत्र (चुंबक पर कंपास प्रतिक्रिया) पर प्रतिक्रिया कर रहे हैं। आप TYPE_MAGNETIC_FIELD का उपयोग कर एक ऐप आज़मा सकते हैं, परीक्षण करें कि इसके करीब होने पर यह अन्य डिवाइस पर कैसे प्रतिक्रिया करेगा (मुझे लगता है कि यह प्रतिक्रिया करेगा)।

लेकिन बात मैं यहाँ बनाने के लिए कोशिश कर रहा हूँ, यदि आप तीन उपकरणों एक बार ओर और दूसरी तरफ 4 उपकरणों डाल MAGNETIC_FIELD सेंसर पढ़ता रिश्तेदार चुंबकीय क्षेत्र है। इसलिए हम यह नहीं पहचान सकते कि डिवाइस प्रत्येक पक्ष कैसे हो सकता है, जब तक कि आपने कुछ वैज्ञानिक गणना नहीं की हो।

दूसरा बिंदु यह है कि किसी ने TYPE_PROXIMITY सेंसर का सुझाव दिया, लेकिन यह इस उद्देश्य को पूरा करने के लिए नहीं है। वर्तमान मोबाइल, किसी डिवाइस की दृश्य स्क्रीन के सापेक्ष सेमी में ऑब्जेक्ट की निकटता को मापता है। यह सेंसर आमतौर पर यह निर्धारित करने के लिए प्रयोग किया जाता है कि किसी व्यक्ति के कान में हैंडसेट आयोजित किया जा रहा है या नहीं।

एक और कम से कम संभावना स्थान सेंसर का उपयोग कर रही है, यह आपके डिवाइस निर्देशांक से संबंधित निर्देशांक की पहचान कर सकती है, आप एनएफसी का उपयोग कर होस्ट के साथ प्रत्येक डिवाइस निर्देशांक के बीच संवाद करते हैं। लेकिन समस्या यह है कि, आपके उपयोग के मामले में कहा गया है कि वे डिवाइस एक-दूसरे के बहुत करीब हैं, इसलिए यह स्थान सेवा का उपयोग करके मापनीय दूरी नहीं है।

निष्कर्ष निकालने के लिए, मौजूदा मोबाइल हार्डवेयर के साथ मेजबान डिवाइस के प्रत्येक पक्ष की प्रत्येक डिवाइस की संख्या की पहचान करना संभव नहीं है। यह बाहरी सेंसर का उपयोग करके संग्रहीत किया जा सकता है जो मोबाइल क्षमता को बढ़ाएगा।उदाहरण के लिए, एक फोन केस जो ऐसी क्षमता से लैस है, यह अन्य उपयोग-मामलों और एप्लिकेशन के लिए भी विंडो खुल जाएगा।

2
  1. अपना खुद का मॉक जीपीएस (स्थानीय पीएस सटीक होना) बनाना। मेरे पास इसके लिए कोई लिंक नहीं है लेकिन यह निश्चित रूप से संभव है। देखें कि जीपीएस कैसे एक विचार प्राप्त करने के लिए काम करता है। वाईफ़ाई और ब्लूटूथ सिग्नल हैं। लेकिन आप जानते हैं कि सिग्नल और क्या है?

एक: ध्वनि

प्रत्येक फोन बारी में एक बड़ी बीप बनाने के लिए और रिसीवर का उपयोग कर ऑडियो ताकत को मापने हैं। यह वाईफाई/ब्लूटूथ से बेहतर काम कर सकता है। एक बार जब आप फोन की प्रत्येक जोड़ी के बीच सापेक्ष दूरी मापते हैं, तो यह केवल संबंधित स्थिति

  1. एक संभावित वैकल्पिक समाधान: छवि प्रसंस्करण का उपयोग करने के लिए केवल एक अच्छा एल्गोरिदम लेता है। OpenCV for Android जैसे कुछ प्राप्त करें और एक फोन के रूप में एक फोन सेटअप करें। यह केवल 2 डी लेआउट के लिए काम करेगा।

  2. एक और "विचार" - कैमरों का उपयोग करें। प्रत्येक कोने में 4 क्यूआर कोड के साथ अपनी सतह के शीर्ष पर एक बोर्ड चिपकाएं। (यह आपके फोन के किनारों और अभिविन्यास की पहचान करने में मदद करेगा)। यदि आप 3 डी लेआउट की तलाश में हैं और फोन के बीच पर्याप्त जगह है, तो आप हर फोन के पीछे एक क्यूआर चिपका सकते हैं और प्रत्येक फोन की स्क्रीन पर क्यूआर दिखा सकते हैं।

इनमें से

सभी समाधान कर रहे हैं। शायद आप व्यक्तिगत इस्तेमाल कर सकते हैं। शायद आप एक संयोजन का उपयोग कर सकते हैं। कौन जानता है।