2011-04-21 7 views
5

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

मेरी समस्या यह है कि मैं नहीं रखना चाहता इलेक्ट्रो-चुंबकीय/अभिविन्यास सेंसर लगातार चल रहा है (बैटरी जीवन के लिए)। मैं इसे चालू करने में सक्षम होना चाहता हूं, वर्तमान मूल्य को पकड़ सकता हूं और इसे बंद कर सकता हूं। क्या ऐसा करने का कोई तरीका है?

मेरे पास है कुछ खोज किया और पाया कि मैं बहु-थ्रेडिंग का प्रयास कर सकता हूं, लेकिन मैं इसके साथ पूरी तरह से सहज नहीं हूं।

जो मैं ढूंढ रहा हूं वह कुछ है (फ़ॉर्मेटिंग की कमी के लिए खेद है, मुझे लगता है कि मैं इसे समझ नहीं सकता आउट):

private void getOrientationNOW() { 
    m_SensorManager.registerListener(mySensorEventListener, m_MagneticSensor, SensorManager.SENSOR_DELAY_FASTEST); 
    //---->Something here to get the current value from the sensor 
    m_SensorManager.unregisterListener(mySensorEventListener); 
} 

यदि यह संभव है, तो कृपया मेरी मदद करें!

सभी को अग्रिम धन्यवाद!

उत्तर

0

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

+0

मैं इसे समझता हूं, लेकिन मैं इस विधि को बाहर निकालने के बिना कैसे प्राप्त करूं? – RomanP

+0

मुझे यह संभव नहीं लगता है। यदि आप UI थ्रेड पर मान प्राप्त करने का प्रयास करते हैं तो यह एएनआर का कारण बन सकता है। – Josnidhin

+0

उस मामले में मैं इसे एक अलग थ्रेड पर कैसे चलाऊंगा? – RomanP

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