Car Hardware APIs

از سطح ۳ «میانای برنامه‌سازی کاربردی برنامه ماشین» می‌توانید از «میاناهای برنامه‌سازی کاربردی کتابخانه برنامه ماشین» برای دسترسی به حسگرها و ویژگی‌های خودرو استفاده کنید.

الزامات

برای استفاده از این «میاناهای برنامه‌سازی کاربردی» با 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

addTollListener

removeTollListener

وضعیت کارت عوارض، نوع کارت عوارض 3

addEnergyLevelListener

removeEnergyLevelListener

میزان شارژ باتری، میزان سوخت، میزان سوخت کم است، محدوده باقی‌مانده com.google.android.gms.permission.CAR_FUEL android.car.permission.CAR_ENERGY

android.car.permission.CAR_ENERGY_PORTS

android.car.permission.READ_CAR_DISPLAY_UNITS
3

addSpeedListener

removeSpeedListener

سرعت خام، سرعت نمایش (نشان‌داده‌شده در نمایشگر خوشه خودرو) com.google.android.gms.permission.CAR_SPEED android.car.permission.CAR_SPEED

android.car.permission.READ_CAR_DISPLAY_UNITS
3

addMileageListener

removeMileageListener

فاصله مسافت‌شمار 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 مراجعه کنید.