java - onLocationChanged isn't called even though the GPS provider is availble -
मैं MyCustomLocationListener
का उपयोग करके उपकरण वर्तमान स्थान प्राप्त करने का प्रयास करता हूं।
मेरा कोड यहाँ से गुजरता है और संकेत दिया जीपीएस और नेटवर्क प्रदाताओं दोनों उपलब्ध हैं
// जीपीएस स्थिति isGPSEnabled = androidLocationManager .isProviderEnabled (LocationManager.GPS_PROVIDER) हो रही है। // हो रही नेटवर्क स्थिति है NetworkEnabled = androidLocationManager .isProviderEnabled (LocationManager.NETWORK_PROVIDER); If (! IsGPSEnabled & amp;! IsNetworkEnabled) {// कोई नेटवर्क प्रदाता लॉग सक्षम नहीं है। (MyLogger.TAG, "गैर प्रदाता सक्षम हैं"); showEnableGpsDialog (); वापसी; } If (isGPSEnabled) {androidLocationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0, saveToSharedPrefListener); लॉग डी। (MyLogger.TAG, "जीपीएस सक्षम"); } अगर (isNetworkEnabled) {अगर (androidLocationManager == नल) {androidLocationManager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER, 0, 0, saveToSharedPrefListener); लॉग डी। (MyLogger.TAG, "नेटवर्क सक्षम"); }}
लेकिन तब onLocationChanged
को कभी भी बुलाया नहीं जाता जब मैं इनडोर।
केवल जब मैं एक नकली जीपीएस का उपयोग करता हूं
अनुप्रयोग, onLocationChanged
कहा जाता है।
मैं एक fallback कैसे लिख सकते हैं (\ टाइमआउट बाहर के साथ) आह्वान के लिए मजबूर करने onLocationChanged
मैं अन्य एपीआई requestSingleUpdate
का उपयोग करता था :
इन दोनों में इनडोर काम करने के मामले में क्या अंतर है?
अगर (isGPSEnabled) {और एंड्रॉइड स्थान प्रबंधक। अनुरोध स्थान अद्यतन (स्थान प्रबंधक। जीपीएस_प्रोवीडियर, 0, 0, सेव टायर्ड पर्फलिस्टनर); लॉग डी। (MyLogger.TAG, "जीपीएस सक्षम"); }
और
अगर (BaseApplication.getCurrentActivity ()! = नल) {locationManager.requestSingleUpdate (LocationManager.GPS_PROVIDER, saveToSharedPrefListener, BaseApplication.getCurrentActivity () .getMainLooper ());
मुझे लगता है कि नेटवर्क स्थान प्रदाता को स्थान अपडेट के लिए कभी भी अनुरोध नहीं किया जाता है, आपकी नल- कोड में जाँच, अन्यथा आप एक अपवाद देखना होगा:
अगर (isNetworkEnabled) {अगर (androidLocationManager == नल) {androidLocationManager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER, 0, 0, saveToSharedPrefListener); लॉग डी। (MyLogger.TAG, "नेटवर्क सक्षम"); }}
Comments
Post a Comment