از سطح ۳ «میانای برنامهسازی کاربردی برنامه ماشین» میتوانید از «میاناهای برنامهسازی کاربردی کتابخانه برنامه ماشین» برای دسترسی به حسگرها و ویژگیهای خودرو استفاده کنید.
الزامات
برای استفاده از این «میاناهای برنامهسازی کاربردی» با Android Auto، ابتدا وابستگی به
androidx.car.app:app-projected را به فایل build.gradle برای واحد Android
Auto اضافه کنید. برای «سیستمعامل Android Automotive»، وابستگی به
androidx.car.app:app-automotive را به فایل build.gradle برای واحد «سیستمعامل Android Automotive»
اضافه کنید.
علاوهبراین، در فایل AndroidManifest.xml، باید اجازههای مربوطه را اعلام کنید تا دادههای خودرویی را که میخواهید استفاده کنید درخواست کنید. کاربر باید این اجازهها را نیز به شما اعطا کند. میتوانید از کد یکسان در Android Auto و سیستم عامل Android Automotive استفاده کنید، بهجای اینکه جاریسازیهای وابسته به پلاتفرم ایجاد کنید.
بااینحال، اجازههای لازم متفاوت است.
CarInfo
این جدول ویژگیهای ارائهشده در میانای برنامهسازی کاربردی CarInfo و
اجازههایی را که باید برای استفاده از آنها درخواست کنید شرح میدهد.
| روشها | مشخصات | اجازهها: Android Auto |
اجازهها: AAOS |
Car App API |
|---|---|---|---|---|
fetchModel |
سازنده، مدل، سال | android.car.permission.CAR_INFO |
3 | |
fetchEnergyProfile |
انواع رابط خودرو برقی، انواع سوخت | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_INFO |
3 |
fetchExteriorDimensions
دادهها فقط در برخیاز خودروهای AAOS که از API 30 یا بالاتر استفاده میکنند دردسترس است. |
ابعاد بیرونی | موجود نیست | 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 |
دادهها برای برنامههای «سیستمعامل Android Automotive» که از Google Play نصب شدهاند دردسترس نیست. | 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 به شما امکان دسترسی به شتابسنج خودرو،
ژیروسکوپ، قطبنما، و دادههای مکان را میدهد. دردسترس بودن این مقادیر ممکن است به سازنده اصلی محصول بستگی داشته باشد. قالب دادههای شتابسنج، ژیروسکوپ،
و قطبنما همان قالبی است که از 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، بخشهای حسگرها و پیکربندی حسگر راهنمای «واحد سرصفحه رایانه» را ببینید. برای شبیهسازی دادههای حسگر هنگام آزمایش در سیستمعامل Android Automotive، به شبیهسازی وضعیت سختافزار در راهنمای شبیهساز سیستمعامل Android Automotive مراجعه کنید.