2014-09-12 8 views
12

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

कुछ उदाहरण:

  • मैं ऊर्ध्वाधर आंदोलन में दिलचस्पी है (उपयोगकर्ता फोन को खींचती) की तरह 'अनदेखी' फोन मेज पर देता है या हाथ में पकड़ा है, तो (शायद उलटा) ।
  • क्षैतिज आंदोलन में भी रुचि रखते हैं (जैसे उपयोगकर्ता शरीर से दूर फोन को धक्का देता है) उपयोगकर्ता को फोन कैसे आयोजित करता है 'अनदेखा' भी करता है।

पृष्ठभूमि यह है कि मैं पहचानना चाहता हूं कि उपयोगकर्ता जेब से फोन खींचता है (जैसे 30-40 सेमी ऊपर खींचता है और क्षैतिज कुछ सेंटीमीटर भी)।

मुझे लगता है कि मुझे उपयोगकर्ता निष्पादन और दृष्टिकोण से संयोजन प्राप्त करना होगा। लेकिन मुझे सही गणित नहीं मिला ..

+0

क्या आप शेक आंदोलन का पता लगाना चाहते हैं? – Vidhi

+1

नहीं। मैं 'स्पेस' में आंदोलनों का पता लगाना चाहता हूं जैसे फ़ोन को कुछ सेंटीमीटर ऊपर या सामने खींच लिया गया है, भले ही उपयोगकर्ता फोन कैसे रखता हो। – Thorsten

+0

"मुझे लगता है कि मुझे उपयोगकर्ता निष्पादन और रवैया से संयोजन प्राप्त करना होगा। लेकिन मुझे सही गणित नहीं मिला .." क्या आप इस कथन को स्पष्ट कर सकते हैं? (यानी हमें दिखाएं कि आपने पहले से क्या प्रयास किया है) –

उत्तर

0

यदि आपका ऐप अग्रभूमि में है तो आप ऐसा करने में सक्षम हो सकते हैं। UIDeviceOrientationLandscapeLeft और UIDeviceOrientationLandscapeRight और UIDeviceOrientationPortraitUpsideDown/UIDeviceOrientationPortrait का उपयोग करके, यह पता लगा सकता है कि फ़ोन किस परिदृश्य में है, और वहां से आप समायोजन की गणना कैसे कर रहे हैं समायोजित करते हैं।

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

1

सुनिश्चित नहीं है कि "सही गणित" से आपका क्या मतलब है। लेकिन मैं एक्सेलेरोमीटर को पढ़ता हूं और सभी 3 दिशाओं (x/y/z) के लिए पूर्ण मान को जोड़ता हूं। यह आपको त्वरण के लिए एक नंबर देगा, फोन के अभिविन्यास से स्वतंत्र या आंदोलन की दिशा से स्वतंत्र होगा।

आरएमएस त्वरण की गणना करने के लिए भी बेहतर होगा, यानी x/y/z त्वरण के वर्गों को योग करें और योग के वर्ग रूट की गणना करें।

इस विधि की स्पष्ट कमी यह है कि यह आपको आंदोलन की दिशा पर कोई जानकारी नहीं देता है। आप हिलने से एक रैखिक आंदोलन को अलग करने के लिए कुछ थ्रेसहोल्ड या फ़िल्टरिंग जोड़ सकते हैं (उदाहरण के लिए दो त्वरण घटनाओं के बीच समय को मापकर)।

इसके अतिरिक्त, आप ऊंचाई का परिवर्तन निर्धारित कर सकते हैं (यह फोन अभिविन्यास से स्वतंत्र है) हालांकि मुझे संदेह है कि 30 का अंतर ... 40 सेमी ठीक से मापा जा सकता है।

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