واجهات برمجة التطبيقات لأجهزة السيارة

بدءًا من Car App API المستوى 3، يمكنك استخدام واجهات برمجة التطبيقات في Car App Library للوصول إلى خصائص المركبة وأجهزة الاستشعار.

المتطلبات

لاستخدام واجهات برمجة التطبيقات مع 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

لا تتوفّر البيانات إلا على بعض مركبات نظام التشغيل Android Automotive التي تعمل بالإصدار 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 واجهة برمجة التطبيقات.

على سبيل المثال، للتحقّق من اتجاه المركبة:

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.