Car App API লেভেল ৩ থেকে শুরু করে, আপনি গাড়ির প্রপার্টি ও সেন্সর অ্যাক্সেস করতে Car App Library API ব্যবহার করতে পারবেন।
প্রয়োজনীয়তা
Android Auto-এর সাথে API ব্যবহার করতে, আপনার Android
Auto মডিউলের build.gradle ফাইলে
androidx.car.app:app-projected-এর উপর নির্ভরতা যোগ করার মাধ্যমে শুরু করুন। Android Automotive OS-এর জন্য, আপনার Android
Automotive OS মডিউলের build.gradle ফাইলের জন্য
androidx.car.app:app-automotive-এর উপর নির্ভরতা যোগ করুন।
এছাড়াও, আপনি যে গাড়ির ডেটা ব্যবহার করতে চান তার জন্য অনুরোধ করতে, আপনার AndroidManifest.xml ফাইলে, আপনাকে অবশ্যই প্রাসঙ্গিক
অনুমতি ঘোষণা করতে হবে। এছাড়াও, ব্যবহারকারীকে আপনাকে এইসব অনুমতি
দিতে হবে। আপনি প্ল্যাটফর্ম-নির্ভর ফ্লো তৈরি করার পরিবর্তে Android Auto এবং Android Automotive OS-এ একই কোড ব্যবহার করতে পারবেন।
তবে, প্রয়োজনীয় অনুমতি আলাদা আলাদা হয়।
CarInfo
এই সারণীটি CarInfo API-তে প্রদত্ত প্রপার্টি এবং সেগুলি ব্যবহার করার জন্য আপনাকে
অনুরোধ করতে হবে এমন অনুমতির বিবরণ দেয়।
| পদ্ধতি | প্রপার্টি | অনুমতি: Android Auto |
অনুমতি: AAOS |
Car App API |
|---|---|---|---|---|
fetchModel |
প্রস্তুতকারক, মডেল, বছর | android.car.permission.CAR_INFO |
3 | |
fetchEnergyProfile |
EV কানেক্টরের ধরন, জ্বালানির ধরন | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_INFO |
3 |
fetchExteriorDimensions
API 30 বা তার পরের যেকোনও ভার্সনে চলে এমন কিছু AAOS গাড়িতেই শুধু ডেটা উপলভ্য। |
বাইরের ডাইমেনশন | N/A | android.car.permission.CAR_INFO |
7 |
| টোল কার্ড স্টেট, টোল কার্ডের ধরন | 3 | |||
| ব্যাটারি লেভেল, ফুয়েল লেভেল, ফুয়েল লেভেল কম, রেঞ্জ বাকি আছে | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_ENERGYandroid.car.permission.CAR_ENERGY_PORTSandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| র স্পিড, ডিসপ্লে স্পিড (গাড়ির ক্লাস্টার ডিসপ্লেতে দেখানো হয়) | com.google.android.gms.permission.CAR_SPEED |
android.car.permission.CAR_SPEEDandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| ওডোমিটার দূরত্ব | com.google.android.gms.permission.CAR_MILEAGE |
Google Play থেকে ইনস্টল করা Android Automotive OS অ্যাপের জন্য ডেটা উপলভ্য নেই। | 3 |
যেমন, বাকি রেঞ্জ পেতে, একটি
CarInfo অবজেক্ট ইনস্ট্যানশিয়েট করুন, তারপর একটি OnCarDataAvailableListener তৈরি ও রেজিস্টার করুন:
val carInfo = carContext.getCarService(CarHardwareManager::class.java).carInfo val listener = OnCarDataAvailableListener<EnergyLevel> { data -> if (data.rangeRemainingMeters.status == CarValue.STATUS_SUCCESS) { val rangeRemaining = data.rangeRemainingMeters.value } else { // Handle error } } carInfo.addEnergyLevelListener(carContext.mainExecutor, listener) // ... // Unregister the listener when you no longer need updates carInfo.removeEnergyLevelListener(listener)
গাড়ির ডেটা সবসময় উপলভ্য থাকবে বলে ধরে নেবেন না। আপনি কোনও সমস্যা দেখতে পেলে,
আপনার অনুরোধ করা ভ্যালুর স্ট্যাটাস চেক করে দেখুন যাতে আপনি আরও ভালভাবে বুঝতে পারেন যে কেন
আপনার অনুরোধ করা ডেটা পাওয়া যায়নি। CarInfo
ক্লাস সংজ্ঞা সম্পর্কে আরও জানতে, রেফারেন্স ডকুমেন্টেশন দেখুন।
CarSensors
CarSensors ক্লাস আপনাকে গাড়ির অ্যাক্সিলরোমিটার,
জাইরোস্কোপ, কম্পাস ও লোকেশন ডেটা অ্যাক্সেস করতে দেয়। এইসব ভ্যালুর উপলভ্যতা OEM-এর উপর
নির্ভর করতে পারে। অ্যাকসিলরোমিটার, জাইরোস্কোপ এবং
কম্পাস থেকে পাওয়া ডেটার ফর্ম্যাট SensorManager API থেকে পাওয়া ডেটার মতোই হয়।
যেমন, গাড়ির দিকনির্দেশ চেক করতে:
val carSensors = carContext.getCarService(CarHardwareManager::class.java).carSensors val listener = OnCarDataAvailableListener<Compass> { data -> if (data.orientations.status == CarValue.STATUS_SUCCESS) { val orientation = data.orientations.value } else { // Data not available, handle error } } carSensors.addCompassListener(CarSensors.UPDATE_RATE_NORMAL, carContext.mainExecutor, listener) // ... // Unregister the listener when you no longer need updates carSensors.removeCompassListener(listener)
গাড়ি থেকে লোকেশন ডেটা অ্যাক্সেস করতে, আপনাকে অবশ্যই
android.permission.ACCESS_FINE_LOCATION অনুমতি ঘোষণা ও অনুরোধ করতে হবে।
পরীক্ষা
Android Auto-তে পরীক্ষা করার সময় সেন্সর ডেটা সিমুলেট করতে, Desktop Head Unit গাইড থেকে সেন্সর ও সেন্সর কনফিগারেশন বিভাগ দেখুন। Android Automotive OS-এ পরীক্ষা করার সময় সেন্সর ডেটা সিমুলেট করতে, Android Automotive OS এমুলেটর গাইডে হার্ডওয়্যার স্টেট এমুলেট করা দেখুন।