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
পাস করে। -
FindCurrentPlaceResponse
থেকেPlaceLikelihood
এর তালিকা পান।
ক্ষেত্রগুলি স্থান অনুসন্ধান ফলাফলের সাথে মিলে যায়, এবং তিনটি বিলিং বিভাগে বিভক্ত: মৌলিক, যোগাযোগ এবং বায়ুমণ্ডল৷ বেসিক ফিল্ড বেস রেটে বিল করা হয়, এবং কোন অতিরিক্ত চার্জ লাগে না। যোগাযোগ এবং বায়ুমণ্ডল ক্ষেত্র একটি উচ্চ হারে বিল করা হয়. স্থান ডেটার অনুরোধগুলি কীভাবে বিল করা হয় সে সম্পর্কে আরও তথ্যের জন্য, ব্যবহার এবং বিলিং দেখুন।
API একটি Task
একটি FindCurrentPlaceResponse
প্রদান করে। FindCurrentPlaceResponse
PlaceLikelihood
বস্তুর একটি তালিকা রয়েছে যেখানে ডিভাইসটি অবস্থিত হওয়ার সম্ভাবনা রয়েছে। প্রতিটি স্থানের জন্য, ফলাফলে সেই স্থানটি সঠিক হওয়ার সম্ভাবনার একটি ইঙ্গিত অন্তর্ভুক্ত থাকে। প্রদত্ত ডিভাইস অবস্থানের সাথে সম্পর্কিত কোনো পরিচিত স্থান না থাকলে তালিকাটি খালি হতে পারে।
আপনি একটি Place
অবজেক্ট পুনরুদ্ধার করতে PlaceLikelihood.getPlace()
এবং জায়গার সম্ভাব্য রেটিং পেতে PlaceLikelihood.getLikelihood()
কল করতে পারেন। একটি উচ্চ মান মানে হল একটি বৃহত্তর সম্ভাবনা যে জায়গাটি সেরা ম্যাচ।
নিম্নলিখিত কোড নমুনাটি সেই জায়গাগুলির তালিকা পুনরুদ্ধার করে যেখানে ডিভাইসটি অবস্থিত হওয়ার সম্ভাবনা সবচেয়ে বেশি, এবং প্রতিটি স্থানের নাম এবং সম্ভাবনা লগ করে।
কোটলিন
// 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() }
জাভা
// 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()
থেকে প্রাপ্ত তথ্য প্রদর্শন করে, তখন অ্যাপটিকে অবশ্যই অ্যাট্রিবিউশনও প্রদর্শন করতে হবে। বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।