अंतिम ज्ञात स्थान प्राप्त करना

Google Play services के लोकेशन एपीआई का इस्तेमाल करके, आपका ऐप्लिकेशन आखिरी अपडेट का अनुरोध कर सकता है उपयोगकर्ता के डिवाइस की जगह की जानकारी. ज़्यादातर मामलों में, आपकी दिलचस्पी इन चीज़ों में होती है उपयोगकर्ता की मौजूदा जगह की जानकारी, जो आम तौर पर उसकी आखिरी लोकेशन के बराबर होती है डिवाइस की जगह की जानकारी.

खास तौर पर, फ़्यूज़्ड जगह की जानकारी देने वाली कंपनी का इस्तेमाल करें. द फ़्यूज़्ड जगह की जानकारी देने वाली सेवा, Google Play services में मौजूद लोकेशन एपीआई में से एक है. यह में मौजूद लोकेशन टेक्नोलॉजी को मैनेज करता है. साथ ही, एक आसान एपीआई उपलब्ध कराता है, ताकि आपके पास बड़े लेवल पर ज़रूरी शर्तों को तय करने का विकल्प होता है. जैसे, बहुत ज़्यादा सटीक या कम पावर. यह सुविधा, डिवाइस पर बैटरी पावर का बेहतर तरीके से इस्तेमाल करने में भी मदद करती है.

ध्यान दें: जब आपका ऐप्लिकेशन बैकग्राउंड में चल रहा हो, जगह की जानकारी का ऐक्सेस यह होना चाहिए जो ऐप्लिकेशन के मुख्य फ़ंक्शन के लिए ज़रूरी है. साथ ही, उसे सही तरीके से साफ़ तौर पर बताया गया है.

इस लेसन में आपको किसी जगह की जानकारी के लिए, एक बार अनुरोध करने का तरीका बताया गया है इसका इस्तेमाल कर रहा है getLastLocation() तरीका है.

Google Play services सेट अप करना

अलग-अलग जगहों की जानकारी देने वाले एपीआई को ऐक्सेस करने के लिए, आपके ऐप्लिकेशन के डेवलपमेंट प्रोजेक्ट में शामिल हैं. Google Play services को डाउनलोड और इंस्टॉल करना SDK टूल इस्तेमाल करके बनाया गया कॉम्पोनेंट मैनेजर और लाइब्रेरी को अपने प्रोजेक्ट में जोड़ें. ज़्यादा जानकारी के लिए, यहां दी गई गाइड देखें Google Play सेट अप करना सेवाएं.

ऐप्लिकेशन की अनुमतियों के बारे में बताएं

ऐसे ऐप्लिकेशन जिनकी सुविधाएं जगह की जानकारी का इस्तेमाल करती हैं उन्हें यह ज़रूरी है जगह की जानकारी की अनुमतियों का अनुरोध किया जा सकता है, उन सुविधाओं के इस्तेमाल के उदाहरणों के हिसाब से.

जगह की जानकारी से जुड़ा क्लाइंट बनाएं

आपकी गतिविधि के onCreate() तरीके में, नीचे दिए गए कोड स्निपेट के तौर पर, Fused लोकेशन प्रोवाइडर क्लाइंट का इंस्टेंस बनाएं.

Kotlin

private lateinit var fusedLocationClient: FusedLocationProviderClient

override fun onCreate(savedInstanceState: Bundle?) {
    // ...

    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
}

Java

private FusedLocationProviderClient fusedLocationClient;

// ..

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
}

अंतिम ज्ञात स्थान प्राप्त करना

आपके द्वारा स्थान सेवाएं क्लाइंट बनाने के बाद आपको उपयोगकर्ता के डिवाइस की आखिरी जगह की जानकारी मिल सकती है. जब आपका ऐप्लिकेशन से कनेक्ट हैं, तो आप फ़्यूज़्ड लोकेशन प्रोवाइडर के getLastLocation() डिवाइस की जगह की जानकारी का पता लगाने का तरीका. लौटाए गए स्थान की शुद्धता इस कॉल का नतीजा, ऐप्लिकेशन में दी गई अनुमति की सेटिंग के हिसाब से तय किया जाता है की सूची में बताए गए तरीके का इस्तेमाल करके, जगह की जानकारी की अनुमतियों का अनुरोध करना होगा.

अंतिम ज्ञात स्थान का अनुरोध करने के लिए, getLastLocation() तरीका. नीचे दिया गया कोड स्निपेट, अनुरोध को दिखाता है. साथ ही, जवाब:

Kotlin

fusedLocationClient.lastLocation
        .addOnSuccessListener { location : Location? ->
            // Got last known location. In some rare situations this can be null.
        }

Java

fusedLocationClient.getLastLocation()
        .addOnSuccessListener(this, new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                // Got last known location. In some rare situations this can be null.
                if (location != null) {
                    // Logic to handle location object
                }
            }
        });

कॉन्टेंट बनाने getLastLocation() तरीका, Task दिखाता है इस्तेमाल किया जा सकता है. इसकी मदद से Location किसी ऑब्जेक्ट के अक्षांश और देशांतर निर्देशांक के हिसाब से भौगोलिक स्थान. जगह से जुड़ा ऑब्जेक्ट, null में हो सकता है इन स्थितियों में:

  • डिवाइस की सेटिंग में जगह की जानकारी की सुविधा बंद है. इसका नतीजा यह हो सकता है: null भले ही अंतिम स्थान को पहले वापस लिया गया हो, क्योंकि स्थान अक्षम करने से कैश मेमोरी भी साफ़ हो जाती है.
  • डिवाइस ने कभी अपनी जगह की जानकारी रिकॉर्ड नहीं की. ऐसा हो सकता है कि किसी नए डिवाइस की जगह की जानकारी या ऐसा डिवाइस जिसे फ़ैक्ट्री सेटिंग पर वापस लाया गया हो.
  • डिवाइस पर Google Play services रीस्टार्ट हो गई है और कोई चालू नहीं है कई तरह से जांची गई सही जगह की जानकारी देने वाला क्लाइंट, जिसने इस यूआरएल के बाद जगह की जानकारी का अनुरोध किया है सेवाएं फिर से शुरू हो गईं. इस स्थिति से बचने के लिए, एक नया क्लाइंट बनाएं और आप खुद ही जगह की जानकारी अपडेट करने का अनुरोध कर सकते हैं. अधिक जानकारी के लिए, स्थान प्राप्त करना देखें अपडेट.

सबसे अच्छी जगह का अनुमान चुनें

FusedLocationProviderClient, डिवाइस को वापस पाने के कई तरीके उपलब्ध कराता है जगह की जानकारी. अपने ऐप्लिकेशन के आधार पर, इनमें से किसी एक को चुनें इस्तेमाल का उदाहरण:

  • getLastLocation() इससे जगह की जानकारी का अनुमान ज़्यादा तेज़ी से मिलता है और बैटरी के इस्तेमाल को कम से कम किया जा सकता है. आपके ऐप्लिकेशन को एट्रिब्यूट किया गया. हालांकि, यदि कोई अन्य क्लाइंट सक्रिय रूप से ऐसा नहीं करता है, तो स्थान जानकारी पुरानी हो सकती है हाल ही में जगह की जानकारी का इस्तेमाल किया.
  • getCurrentLocation() आपको लगातार एक नई और ज़्यादा सटीक जगह मिल जाती है. हालांकि, इस तरीके से इसकी वजह से, डिवाइस पर जगह की जानकारी की गिनती चालू हो सकती है

    ताज़ा जगह पाने के लिए यह सुझाया गया तरीका है, जब भी संभव हो, और दूसरे विकल्पों से ज़्यादा सुरक्षित है. जैसे, जगह की जानकारी के अपडेट पाना और उन्हें मैनेज करना आप requestLocationUpdates() का इस्तेमाल करके खुद को जोड़ सकते हैं. अगर आपके ऐप्लिकेशन से requestLocationUpdates(), आपका ऐप्लिकेशन कभी-कभी एक साथ बहुत ज़्यादा अगर जगह की जानकारी उपलब्ध न हो या अनुरोध सही तरीके से नहीं रोका गया हो, तो डिवाइस चालू करें साइन अप करने के बाद किया जा सकता है.

अन्य संसाधन

Android में अपनी मौजूदा जगह की जानकारी फ़ेच करने के बारे में ज़्यादा जानने के लिए, नीचे दी गई सामग्री:

सैंपल

  • फ़ेच करने के दौरान सबसे सही तरीके दिखाने के लिए, सैंपल ऐप्लिकेशन आपकी जगह की जानकारी.