আপনার অ্যান্ড্রয়েড অ্যাপে Google Play পরিষেবা দ্বারা চালিত API অ্যাক্সেস করতে, আপনাকে API ক্লায়েন্ট অবজেক্ট ব্যবহার করতে হবে। এই অবজেক্টগুলি Google Play পরিষেবাগুলির সাথে সংযোগ পরিচালনা করে, অনুরোধগুলি সারিবদ্ধ করে এবং সংযোগ উপলব্ধ হলে সেগুলিকে ক্রমানুসারে কার্যকর করে। আপনি প্রয়োজন অনুসারে নতুন API ক্লায়েন্ট তৈরি করতে পারেন, কারণ এগুলি তৈরি করা সস্তা।
শুরু করুন
শুরু করার আগে, আপনার অ্যাপ প্রজেক্টে গুগল প্লে পরিষেবা সেট আপ করতে ভুলবেন না।
অনুমোদনের প্রয়োজন নেই এমন কোনও পরিষেবা অ্যাক্সেস করতে, পরিষেবার ক্লায়েন্ট অবজেক্টের একটি উদাহরণ তৈরি করুন, একটি Context অথবা একটি Activity অবজেক্ট পাস করে। প্রয়োজনে, ব্যবহারকারীদের যেকোনো API কল কার্যকর করার আগে Google Play পরিষেবা আপগ্রেড করার জন্য অনুরোধ করা হবে।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে Fused Location Provider ব্যবহার করে ডিভাইসের শেষ পরিচিত অবস্থানটি পেতে হয়:
কোটলিন
// Code required for requesting location permissions omitted for brevity. val client = LocationServices.getFusedLocationProviderClient(this) // Get the last known location. In some rare situations, this can be null. client.lastLocation.addOnSuccessListener { location : Location? -> location?.let { // Logic to handle location object. } }
জাভা
// Code required for requesting location permissions omitted for brevity. FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(this); // Get the last known location. In some rare situations, this can be null. client.getLastLocation() .addOnSuccessListener(this, location -> { if (location != null) { // Logic to handle location object. } });
ব্যবহারকারীর অনুমোদন প্রয়োজন এমন API অ্যাক্সেস করতে, Google ব্যবহারকারীর ডেটা অ্যাক্সেস অনুমোদনের নির্দেশিকা অনুসরণ করুন। যদি আপনি এমন একটি API ব্যবহার করেন যার জন্য GoogleSignInAccount অবজেক্ট প্রয়োজন, তাহলে AuthorizationResult#toGoogleSignInAccount() পদ্ধতিটি ব্যবহার করুন।
API উপলব্ধতা পরীক্ষা করুন
Google Play পরিষেবা API-এর উপর নির্ভরশীল কোনও বৈশিষ্ট্য সক্রিয় করার আগে, checkApiAvailability() এ কল করে ডিভাইসে API উপলব্ধ কিনা তা পরীক্ষা করুন।
নিম্নলিখিত কোড স্নিপেটটি দেখায় যে কীভাবে ফিউজড লোকেশন প্রোভাইডার উপলব্ধ কিনা তা পরীক্ষা করবেন:
কোটলিন
fun getLastLocationIfApiAvailable(context: Context?): Task<Location>? { val client = getFusedLocationProviderClient(context) return GoogleApiAvailability.getInstance() .checkApiAvailability(client) .onSuccessTask { _ -> client.lastLocation } .addOnFailureListener { _ -> Log.d(TAG, "Location unavailable.")} }
জাভা
public Task<Location> getLastLocationIfApiAvailable(Context context) { FusedLocationProviderClient client = getFusedLocationProviderClient(context); return GoogleApiAvailability.getInstance() .checkApiAvailability(client) .onSuccessTask(unused -> client.getLastLocation()) .addOnFailureListener(e -> Log.d(TAG, "Location unavailable.")); }