প্লে সার্ভিসেস টাইম এপিআই
টাইম এপিআই গুগল প্লে সার্ভিসের সঠিক সময়-রক্ষণ পরিষেবা দ্বারা সমর্থিত সময়ের সংকেতগুলিতে অ্যাক্সেস প্রদান করে।
সঠিক UTC সময় জানতে চাইলে এটি কার্যকর, কারণ ব্যবহারকারী যদি ম্যানুয়ালি সেট করে থাকেন তবে অ্যান্ড্রয়েড সিস্টেম ঘড়িটি ভুল হতে পারে।
পূর্বে, টাইম সার্ভার থেকে বহিরাগত সময় পেতে আপনার অ্যাপে একটি NTP ক্লায়েন্ট অন্তর্ভুক্ত করার প্রয়োজন হতে পারে। টাইম API ডেভেলপারদের আরও নির্ভরযোগ্য সময়ের তথ্য পেতে সাহায্য করে।
অ্যান্ড্রয়েড প্ল্যাটফর্ম API গুলি SystemClock.currentNetworkTimeClock() প্রদান করে, কিন্তু এটি শুধুমাত্র API লেভেল 33 এবং তার উপরে উপলব্ধ। TrustedTimeClient রিটার্ন করা সময়ের জন্য সঠিকতা সীমা সম্পর্কে বিকল্প এবং তথ্য প্রদান করে।
অ্যাপের পূর্বশর্ত
- আপনার অ্যাপের বিল্ড ফাইলে নিম্নলিখিত মানগুলি ব্যবহার করা হয়েছে কিনা তা নিশ্চিত করুন:
- ন্যূনতম SDK সংস্করণ
21বা তার বেশি। -
21বা তার বেশি সংস্করণের SDK সংস্করণ কম্পাইল করুন।
- ন্যূনতম SDK সংস্করণ
আপনার অ্যাপ কনফিগার করুন
- আপনার প্রোজেক্ট-লেভেল
build.gradleফাইলে, আপনারbuildscriptএবংallprojectsউভয় বিভাগেই Google এর Maven সংগ্রহস্থল এবং Maven কেন্দ্রীয় সংগ্রহস্থল অন্তর্ভুক্ত করুন:buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }
- আপনার মডিউলের অ্যাপ-লেভেল গ্র্যাডল ফাইলে, সাধারণত
app/build.gradle, Time API এর জন্য নির্ভরতা যোগ করুন:dependencies { implementation 'com.google.android.gms:play-services-time:16.0.1' }
TrustedTime ক্লায়েন্ট আরম্ভ করুন
ইন্টিগ্রেট করার সবচেয়ে সহজ উপায় হল আপনার অ্যাপ লাইফসাইকেলের শুরুতে TrustedTimeClient ইনিশিয়ালাইজ করা। আপনি এটি আপনার অ্যাপ্লিকেশনের onCreate() ক্লাসে করতে পারেন এবং ক্লায়েন্টটিকে আপনার Application সিঙ্গেলটনে রাখতে পারেন। এটি আপনাকে আপনার অ্যাপ্লিকেশন জুড়ে ক্লায়েন্ট ব্যবহার করতে দেয়।
class MyApplication : Application() { var trustedTimeClient: TrustedTimeClient? = null private set override fun onCreate() { super.onCreate() val initializeTrustedTimeClientTask = TrustedTime.createClient(this) initializeTrustedTimeClientTask.addOnCompleteListener { task -> if (task.isSuccessful) { // Stash the client trustedTimeClient = task.result } else { // Handle error, maybe retry later val exception = initializeTrustedTimeClientTask.exception } } // To use Kotlin Coroutine, you can use the await() method, see // https://developers.google.com/android/guides/tasks#kotlin_coroutine // for more info. } } }
আপনার অ্যাপের যেকোনো জায়গায় TrustedTimeClient ব্যবহার করুন
// Retrieve the TrustedTimeClient from your application class val myApp = applicationContext as MyApplication // In this example, System.currentTimeMillis() is used as a fallback if the // client is null (i.e. client creation task failed) or when there is no time // signal available. You may not want to do this if using the system clock is // not suitable for your use case. val currentTimeMillis = myApp.trustedTimeClient?.computeCurrentUnixEpochMillis() ?: System.currentTimeMillis() // trustedTimeClient.computeCurrentInstant() can be used if you'd rather use // Instant instead of long for Unix epoch times and you are able to use the APIs.