मेरा ऐप किसी विशिष्ट समय पर जांचता है कि कोई उपयोगकर्ता किसी दिए गए स्थान पर है या नहीं। मैं अलार्म प्रबंधक का उपयोग एक सेवा इस कॉल करता है कि शुरू करने के लिए:एंड्रॉइड - विश्वसनीय रूप से वर्तमान स्थान प्राप्त करना
locationManager.requestLocationUpdates(bestProvider, 0, 0, listener);
और यह भी जाँच करता है:
locationManager.getLastKnownLocation(bestProvider);
लेकिन मैं समस्या आ रही है जब एक असली डिवाइस पर चल रहा। एक बात के लिए, getLastKnownLocation
सबसे अधिक संभावना है कि जीपीएस चालू था, जो कहीं भी हो सकता है (यानी, यह उपयोगकर्ता के वर्तमान स्थान से मील हो सकता है)। तो मैं बस requestLocationUpdates
कॉलबैक की प्रतीक्षा करूंगा, और यदि वे दो मिनट के भीतर नहीं हैं, तो श्रोता को हटा दें और छोड़ दें, है ना?
गलत, क्योंकि यदि उपयोगकर्ता का स्थान पहले से ही स्थिर है (यानी, उन्होंने हाल ही में जीपीएस का उपयोग किया है और स्थानांतरित नहीं किया है) तो मेरे श्रोता को कभी नहीं कहा जाएगा क्योंकि स्थान नहीं बदलेगा। लेकिन जीपीएस तब तक चलेगा जब तक कि मेरा श्रोता हटा नहीं जाता है, बैटरी को निकाला जाता है ...
वर्तमान स्थान के लिए पुराना स्थान गलत किए बिना वर्तमान स्थान प्राप्त करने का सही तरीका क्या है? मुझे कुछ मिनट इंतजार नहीं है।
संपादित करें: यह संभव है कि मैं श्रोताओं के बारे में गलत हूं, मुझे लगता है कि यह सोचने से थोड़ा लंबा समय ले सकता है ... कहना मुश्किल है। मैं अभी भी एक निश्चित उत्तर की सराहना करता हूं।
क्या आप कुछ उदाहरण कोड प्रदान कर सकते हैं? उदाहरण के लिए, यदि स्थान श्रोता को कॉल नहीं किया जाता है, तो आप 2 मिनट या ऐसा कुछ कैसे इंतजार करेंगे? – noah
जोड़ा गया कोड स्निपेट – Fedor