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