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