कार हार्डवेयर एपीआई

Car App API के लेवल 3 से, वाहन की प्रॉपर्टी और सेंसर का डेटा ऐक्सेस करने के लिए, Car App Library के एपीआई का इस्तेमाल किया जा सकता है.

ज़रूरी शर्तें

Android Auto के साथ एपीआई का इस्तेमाल करने के लिए, सबसे पहले अपने 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 एपीआई में दी गई प्रॉपर्टी और उनका इस्तेमाल करने के लिए ज़रूरी अनुमतियों के बारे में बताया गया है.

तरीके प्रॉपर्टी अनुमतियां:
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 के सिर्फ़ उन वाहनों पर उपलब्ध है जो एपीआई 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 यह डेटा, Google Play से इंस्टॉल किए गए Android Automotive OS ऐप्लिकेशन के लिए उपलब्ध नहीं है. 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 OS पर टेस्ट करते समय, सेंसर डेटा को सिम्युलेट करने के लिए, Android Automotive OS एम्युलेटर गाइड में हार्डवेयर की स्थिति को एम्युलेट करना देखें.