2013-05-31 7 views
24

के साथ एंड्रॉइड चेक लोकेशन सेवाएं सक्षम हैं आप यह निर्धारित कर सकते हैं कि कोई भी प्रदाता स्थान प्रबंधक के साथ उपलब्ध है या नहीं, लेकिन क्या यह Google play Services location api के साथ किया जा सकता है?प्ले सेवा स्थान एपीआई

जब कुछ भी सक्षम नहीं होता है, वास्तव में "मेरे स्थान तक पहुंच" बंद है, सभी एपीआई कॉल (कनेक्ट(), requestLocationUpdates()) सफल होते हैं, लेकिन आपको कभी भी ऑनलाक्शन चेंज() नहीं मिलता है।

मूर्खतापूर्ण लगता है कि स्थान प्रबंधक और स्थान क्लाइंट दोनों का उपयोग करना होगा।

मुझे लगता है कि मैं क्या जरूरत है किसी तरह से पता चला है कि onLocationChanged (0 कहा जाता हो कभी नहीं होगा है।

उत्तर

26

मैं डॉक्स कंघी कर दिया है और यह भी किसी भी तरह से LocationClient उपयोग करने के लिए करता है, तो स्थान का पता लगाने के नहीं मिला है सेवाएं सक्षम हैं। onConnected, onDisconnected, और onConnectionFailed कि क्या स्थान सेवाएं सक्षम है या नहीं कर रहे हैं के लिए जोड़ा जा करने के लिए नहीं है।

मैं वर्तमान में LocationClient का उपयोग कर के स्थान अनुरोध कर रहा हूँ, लेकिन अगर स्थान का पता लगाने के पुराने locationManager.isProviderEnabled(String provider) विधि का उपयोग सेवाएं सक्षम हैं। यह मेरे लिए इष्टतम है, भले ही स्थान क्लाइंट ने एक तरीका प्रदान किया हो, यह कोई डी नहीं बनाता है जीपीएस और नेटवर्क के बीच अलगाव और मैं वास्तव में अनुरोध करने में सक्षम होना चाहता हूं कि उपयोगकर्ता जीपीएस सक्षम करे।

कार्यान्वित करके रजिस्टर एक LocationCallback और onLocationAvailability() ओवरराइड या LocationServices.FusedLocationApi.getLocationAvailability() फोन उपलब्धता की स्थिति को पुनः प्राप्त करने:

if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    //GPS Provider disabled 
    return false; 
} 
+2

धन्यवाद - शायद Google से कोई भी इसे देखेगा और इसे ठीक करेगा – user1248322

+0

मुझे यह बहुत ही अजीब लगता है! – Bear

+5

'अगर (lm.isProviderEnabled (LocationManager.GPS_PROVIDER) || lm.isProviderEnabled (LocationManager.NETWORK_PROVIDER)) {} 'मुझे लगता है कि सबसे पूरा दृष्टिकोण है। – Diolor

12

अब पता लगाने के लिए अगर स्थान अद्यतन उपलब्ध नहीं है के बाद से Google Play सेवाओं 7.3.0 एक विश्वसनीय तरीका है। यदि यह गलत है, तो आप जानते हैं कि स्थान अपडेट तब तक वितरित नहीं किए जा रहे हैं जब तक डिवाइस कॉन्फ़िगरेशन में कुछ बदलाव न हो।

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

+0

डॉक्टर कहते हैं: स्थान डेटा की उपलब्धता देता है। जब स्थान उपलब्ध है() सत्य लौटाता है, तो getLastLocation (GoogleApiClient) द्वारा लौटाया गया स्थान सक्रिय स्थानRequests द्वारा निर्दिष्ट संकेतों के भीतर उचित रूप से अद्यतित होगा। मेरी समझ में यह दिखाने के लिए कि क्या कुछ स्थान डेटा वर्तमान में उपलब्ध है, न कि स्थान सेवाएं सक्षम हैं या नहीं। – lujop

4

Google Play Services 7.0 introducedSettins Api जहां आप अपनी आवश्यक स्थान सेटिंग के लिए पूछ सकते हैं और फिर सक्षम होने पर पूछ सकते हैं या उपयोगकर्ता को सक्षम करने के लिए कह सकते हैं।

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