Places SDK for Android का इस्तेमाल करके, डिवाइस की मौजूदा जगह की जानकारी के आधार पर जगह की जानकारी देखी जा सकती है. जगहों के उदाहरणों में, स्थानीय कारोबार, लोकप्रिय जगहें, और भौगोलिक जगहें शामिल हैं.
अनुमतियां
लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में किसी अन्य अनुमति का एलान करने की ज़रूरत नहीं है, क्योंकि लाइब्रेरी अपने मेनिफ़ेस्ट में उन सभी अनुमतियों का एलान करती है जिनका इस्तेमाल करती है. हालांकि, अगर आपका ऐप्लिकेशन
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 का इस्तेमाल करें.
मौजूदा जगह की जानकारी पाना
वह स्थानीय कारोबार या अन्य जगह ढूंढने के लिए जहां डिवाइस फ़िलहाल मौजूद है, यह तरीका अपनाएं:
ContextCompat.checkSelfPermission
को कॉल करके, यह पता करें कि उपयोगकर्ता ने अपने डिवाइस की जगह की जानकारी ऐक्सेस करने की अनुमति दी है या नहीं. आपके ऐप्लिकेशन में, उपयोगकर्ता से अनुमति मांगने और नतीजे को मैनेज करने के लिए भी कोड होना चाहिए. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की अनुमतियां पाने का अनुरोध करना देखें.Place.Field
केList
को पास करके,FindCurrentPlaceRequest
बनाएं. साथ ही, जगह के उन डेटा टाइप की जानकारी दें जिनका अनुरोध आपके ऐप्लिकेशन को करना चाहिए.PlacesClient.findCurrentPlace()
को कॉल करें और उसमें वहFindCurrentPlaceRequest
पास करें जो आपने पिछले चरण में बनाया था.FindCurrentPlaceResponse
सेPlaceLikelihood
की सूची पाएं.
फ़ील्ड, जगह के खोज नतीजों से जुड़े होते हैं. साथ ही, इन्हें बिलिंग की तीन कैटगरी में बांटा जाता है: बुनियादी जानकारी, संपर्क, और माहौल. बुनियादी फ़ील्ड के लिए, बुकिंग के समय तय किए गए किराये के हिसाब से ही शुल्क लिया जाता है. इसके लिए, आपको अलग से कोई शुल्क नहीं देना पड़ता. संपर्क और वायुमंडल के फ़ील्ड के लिए, ज़्यादा दर से शुल्क लिया जाता है. जगह की जानकारी के डेटा के अनुरोधों के लिए बिलिंग के तरीके के बारे में ज़्यादा जानने के लिए, इस्तेमाल और बिलिंग देखें.
एपीआई, Task
में एक FindCurrentPlaceResponse
दिखाता है.
FindCurrentPlaceResponse
में, उन जगहों की जानकारी देने वाले PlaceLikelihood
ऑब्जेक्ट की सूची होती है जहां डिवाइस मौजूद हो सकता है. हर जगह के लिए, नतीजे में यह जानकारी शामिल होती है कि वह जगह सही है या नहीं. अगर डिवाइस की दी गई जगह की जानकारी से कोई जगह मैच नहीं होती है, तो हो सकता है कि सूची खाली हो.
किसी ऑब्जेक्ट को वापस पाने के लिए, PlaceLikelihood.getPlace()
को कॉल किया जा सकता है. साथ ही, किसी जगह के दिखने की संभावना की रेटिंग पाने के लिए, PlaceLikelihood.getLikelihood()
को कॉल किया जा सकता है.Place
ज़्यादा वैल्यू का मतलब है कि जगह का सबसे सही मैच होने की संभावना ज़्यादा है.
यहां दिया गया कोड सैंपल, उन जगहों की सूची दिखाता है जहां डिवाइस होने की सबसे ज़्यादा संभावना है. साथ ही, हर जगह का नाम और संभावना को लॉग करता है.
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 के बीच होगी.
उदाहरण के लिए, अगर सही जगह के तौर पर जगह A की संभावना 55% और जगह B की संभावना 35% है, तो जवाब में दो एलिमेंट होंगे. पहला, जगह A, जिसकी संभावना 0.55 है और दूसरा, जगह B, जिसकी संभावना 0.35 है.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना
जब आपका ऐप्लिकेशन, PlacesClient.findCurrentPlace()
से मिली जानकारी दिखाता है, तो उसे एट्रिब्यूशन भी दिखाने होंगे. एट्रिब्यूशन के बारे में दस्तावेज़ देखें.