কার অ্যাপ এপিআই লেভেল ৩ দিয়ে শুরু করে, আপনি গাড়ির বৈশিষ্ট্য এবং সেন্সর অ্যাক্সেস করতে কার অ্যাপ লাইব্রেরি এপিআই ব্যবহার করতে পারেন।
আবশ্যকতা
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-তে প্রদত্ত বৈশিষ্ট্য এবং সেগুলি ব্যবহারের জন্য আপনার অনুরোধ করা অনুমতিগুলি বর্ণনা করা হয়েছে।
| পদ্ধতি | বৈশিষ্ট্য | অনুমতি: অ্যান্ড্রয়েড অটো | অনুমতি: AAOS সম্পর্কে | কার অ্যাপ এপিআই |
|---|---|---|---|---|
fetchModel | তৈরি, মডেল, বছর | android.car.permission.CAR_INFO | ৩ | |
fetchEnergyProfile | ইভি সংযোগকারীর ধরণ, জ্বালানির ধরণ | com.google.android.gms.permission.CAR_FUEL | android.car.permission.CAR_INFO | ৩ |
fetchExteriorDimensionsশুধুমাত্র API 30 বা তার পরবর্তী সংস্করণে চালিত কিছু AAOS গাড়ির ডেটা উপলব্ধ। | বাহ্যিক মাত্রা | নিষিদ্ধ | android.car.permission.CAR_INFO | ৭ |
| টোল কার্ডের অবস্থা, টোল কার্ডের ধরণ | ৩ | |||
| ব্যাটারির লেভেল, জ্বালানি লেভেল, জ্বালানি লেভেল কম, রেঞ্জ বাকি আছে | com.google.android.gms.permission.CAR_FUEL | android.car.permission.CAR_ENERGYandroid.car.permission.CAR_ENERGY_PORTSandroid.car.permission.READ_CAR_DISPLAY_UNITS | ৩ | |
| কাঁচা গতি, প্রদর্শনের গতি (গাড়ির ক্লাস্টার ডিসপ্লেতে দেখানো হয়েছে) | com.google.android.gms.permission.CAR_SPEED | android.car.permission.CAR_SPEEDandroid.car.permission.READ_CAR_DISPLAY_UNITS | ৩ | |
| ওডোমিটার দূরত্ব | com.google.android.gms.permission.CAR_MILEAGE | গুগল প্লে থেকে ইনস্টল করা অ্যান্ড্রয়েড অটোমোটিভ ওএস অ্যাপগুলিতে ডেটা উপলব্ধ নয়। | ৩ |
উদাহরণস্বরূপ, অবশিষ্ট পরিসর পেতে, একটি 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 carInfo = getCarContext().getCarService(CarHardwareManager.class).getCarInfo();
OnCarDataAvailableListener<EnergyLevel> listener = (data) -> {
if(data.getRangeRemainingMeters().getStatus() == CarValue.STATUS_SUCCESS) {
float rangeRemaining = data.getRangeRemainingMeters().getValue();
} else {
// Handle error
}
};
carInfo.addEnergyLevelListener(getCarContext().getMainExecutor(), listener);
…
// Unregister the listener when you no longer need updates
carInfo.removeEnergyLevelListener(listener);
ধরে নিবেন না যে গাড়ি থেকে ডেটা সবসময় পাওয়া যায়। যদি আপনার কাছে কোনও ত্রুটি থাকে, তাহলে আপনার অনুরোধ করা ডেটা কেন পুনরুদ্ধার করা যায়নি তা আরও ভালভাবে বুঝতে আপনার অনুরোধ করা মানের স্থিতি পরীক্ষা করুন। CarInfo ক্লাসের সংজ্ঞা সম্পর্কে আরও জানতে, রেফারেন্স ডকুমেন্টেশন দেখুন।
কার সেন্সর
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)
জাভা
CarSensors carSensors = getCarContext().getCarService(CarHardwareManager.class).getCarSensors();
OnCarDataAvailableListener<Compass> listener = (data) -> {
if (data.getOrientations().getStatus() == CarValue.STATUS_SUCCESS) {
List<Float> orientations = data.getOrientations().getValue();
} else {
// Data not available, handle error
}
};
carSensors.addCompassListener(CarSensors.UPDATE_RATE_NORMAL, getCarContext().getMainExecutor(),
listener);
…
// Unregister the listener when you no longer need updates
carSensors.removeCompassListener(listener);
গাড়ি থেকে লোকেশন ডেটা অ্যাক্সেস করতে, আপনাকে android.permission.ACCESS_FINE_LOCATION অনুমতি ঘোষণা করতে হবে এবং অনুরোধ করতে হবে।
পরীক্ষা
অ্যান্ড্রয়েড অটোতে পরীক্ষা করার সময় সেন্সর ডেটা সিমুলেট করতে, ডেস্কটপ হেড ইউনিট গাইডের সেন্সর এবং সেন্সর কনফিগারেশন বিভাগগুলি দেখুন। অ্যান্ড্রয়েড অটোমোটিভ ওএসে পরীক্ষা করার সময় সেন্সর ডেটা সিমুলেট করতে, অ্যান্ড্রয়েড অটোমোটিভ ওএস এমুলেটর গাইডে এমুলেট হার্ডওয়্যার অবস্থা দেখুন।