मौजूदा जगह

प्लैटफ़ॉर्म चुनें: Android iOS

Android के लिए जगहें SDK टूल का इस्तेमाल करके, उस जगह का पता लगाया जा सकता है जहां फ़िलहाल डिवाइस की जानकारी रिपोर्ट की गई है. जगहों के उदाहरणों में स्थानीय कारोबार, लोकप्रिय जगहें, और भौगोलिक जगहें शामिल हैं.

अनुमतियां

लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में किसी भी अतिरिक्त अनुमति के बारे में एलान करने की ज़रूरत नहीं है. ऐसा इसलिए होता है, क्योंकि लाइब्रेरी अपने मेनिफ़ेस्ट में उन सभी अनुमतियों के बारे में बताती है जिनका इस्तेमाल किया जाता है. हालांकि, अगर आपके ऐप्लिकेशन में PlacesClient.findCurrentPlace() का इस्तेमाल किया गया है, तो आपको रनटाइम के दौरान जगह की जानकारी की अनुमतियों के लिए अनुरोध करना होगा.

अगर आपका ऐप्लिकेशन PlacesClient.findCurrentPlace() का इस्तेमाल नहीं करता है, तो लाइब्रेरी से मिली ACCESS_FINE_LOCATION और ACCESS_COARSE_LOCATION अनुमतियां साफ़ तौर पर हटाएं. इसके लिए, अपने मेनिफ़ेस्ट में यह जानकारी जोड़ें:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/>
    ...
</manifest>

अनुमतियों के बारे में और पढ़ें और शुरुआत करने के लिए EasyPermissions का इस्तेमाल करें.

मौजूदा जगह की जानकारी पता करें

उस स्थानीय कारोबार या किसी दूसरी जगह को ढूंढने के लिए जहां फ़िलहाल डिवाइस मौजूद है, यह तरीका अपनाएं:

  1. ContextCompat.checkSelfPermission को कॉल करके पता लगाएं कि उपयोगकर्ता ने अपने डिवाइस की जगह की जानकारी ऐक्सेस करने की अनुमति दी है या नहीं. आपके ऐप्लिकेशन में कोड भी शामिल होना चाहिए, ताकि उपयोगकर्ता से अनुमति मांगी जा सके और नतीजे मैनेज किए जा सकें. ज़्यादा जानकारी के लिए, ऐप्लिकेशन अनुमतियों का अनुरोध करना देखें.
  2. एक FindCurrentPlaceRequest बनाएं और Place.Field में से List पास करें. साथ ही, यह बताएं कि आपके ऐप्लिकेशन को जगह से जुड़े किस तरह के डेटा का अनुरोध करना चाहिए.
  3. पिछले चरण में बनाए गए FindCurrentPlaceRequest को पास करके, PlacesClient.findCurrentPlace() को कॉल करें.
  4. FindCurrentPlaceResponse से PlaceLikelihood की सूची पाएं.

फ़ील्ड, 'जगह की खोज' के नतीजों से जुड़े होते हैं और इन्हें तीन बिलिंग कैटगरी में बांटा जाता है: बुनियादी, संपर्क, और माहौल. बेसिक फ़ील्ड की बिलिंग, बेसिक दर पर की जाती है. इसके लिए, कोई अतिरिक्त शुल्क नहीं लिया जाता. संपर्क और वायुमंडल फ़ील्ड का बिल ज़्यादा लिया जाता है. जगह के डेटा के अनुरोधों का बिल कैसे भेजा जाता है, इस बारे में ज़्यादा जानने के लिए, इस्तेमाल और बिलिंग देखें.

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

किसी Place ऑब्जेक्ट को फिर से पाने के लिए, PlaceLikelihood.getPlace() को कॉल करें और जगह की संभावित रेटिंग पाने के लिए PlaceLikelihood.getLikelihood() को कॉल करें. ज़्यादा वैल्यू का मतलब है कि उस जगह के मेल खाने की संभावना ज़्यादा है.

नीचे दिया गया कोड सैंपल, उन जगहों की सूची दिखाता है जहां डिवाइस के मौजूद होने की संभावना सबसे ज़्यादा होती है. साथ ही, यह हर जगह का नाम और संभावना लॉग करता है.

Kotlin



// Use fields to define the data types to return.
val placeFields: List<Place.Field> = listOf(Place.Field.NAME)

// Use the builder to create a FindCurrentPlaceRequest.
val request: FindCurrentPlaceRequest = FindCurrentPlaceRequest.newInstance(placeFields)

// Call findCurrentPlace and handle the response (first check that the user has granted permission).
if (ContextCompat.checkSelfPermission(this, permission.ACCESS_FINE_LOCATION) ==
    PackageManager.PERMISSION_GRANTED) {

    val placeResponse = placesClient.findCurrentPlace(request)
    placeResponse.addOnCompleteListener { task ->
        if (task.isSuccessful) {
            val response = task.result
            for (placeLikelihood: PlaceLikelihood in response?.placeLikelihoods ?: emptyList()) {
                Log.i(
                    TAG,
                    "Place '${placeLikelihood.place.name}' has likelihood: ${placeLikelihood.likelihood}"
                )
            }
        } else {
            val exception = task.exception
            if (exception is ApiException) {
                Log.e(TAG, "Place not found: ${exception.statusCode}")
            }
        }
    }
} else {
    // A local method to request required permissions;
    // See https://developer.android.com/training/permissions/requesting
    getLocationPermission()
}

      

Java


// Use fields to define the data types to return.
List<Place.Field> placeFields = Collections.singletonList(Place.Field.NAME);

// Use the builder to create a FindCurrentPlaceRequest.
FindCurrentPlaceRequest request = FindCurrentPlaceRequest.newInstance(placeFields);

// Call findCurrentPlace and handle the response (first check that the user has granted permission).
if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    Task<FindCurrentPlaceResponse> placeResponse = placesClient.findCurrentPlace(request);
    placeResponse.addOnCompleteListener(task -> {
        if (task.isSuccessful()){
            FindCurrentPlaceResponse response = task.getResult();
            for (PlaceLikelihood placeLikelihood : response.getPlaceLikelihoods()) {
                Log.i(TAG, String.format("Place '%s' has likelihood: %f",
                    placeLikelihood.getPlace().getName(),
                    placeLikelihood.getLikelihood()));
            }
        } else {
            Exception exception = task.getException();
            if (exception instanceof ApiException) {
                ApiException apiException = (ApiException) exception;
                Log.e(TAG, "Place not found: " + apiException.getStatusCode());
            }
        }
    });
} else {
    // A local method to request required permissions;
    // See https://developer.android.com/training/permissions/requesting
    getLocationPermission();
}

      

संभावित वैल्यू के बारे में नोट:

  • इस संभावना से इस बात की संभावना का पता चलता है कि किसी एक अनुरोध के लिए, नतीजों के तौर पर दिखाई गई जगहों की सूची में, उस जगह से सबसे ज़्यादा मेल खाते हैं या नहीं. आप अलग-अलग अनुरोधों के दौरान मिलने वाली संभावनाओं की तुलना नहीं कर सकते.
  • संभावना की वैल्यू 0.0 और 1.0 के बीच होगी.

उदाहरण के लिए, इस बात की 55% संभावना दिखाने के लिए कि सही जगह जगह A है और 35% जगह B है, जवाब में दो सदस्य हैं, जगह A की संभावना 0.55 है और जगह B 0.35 होने की संभावना है.

अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं

जब आपका ऐप्लिकेशन, PlacesClient.findCurrentPlace() से मिली जानकारी दिखाता है, तो ऐप्लिकेशन को एट्रिब्यूशन भी दिखाने चाहिए. एट्रिब्यूशन से जुड़ा दस्तावेज़ देखें.