بدءًا من 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 |
| حالة بطاقة تحصيل رسوم العبور ونوعها | 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 واجهة برمجة التطبيقات.
على سبيل المثال، للتحقّق من اتجاه المركبة:
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.