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

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

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

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 बनाएं और रजिस्टर करें:

Kotlin

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)

Java

CarInfo carInfo = getCarContext().getCarService(CarHardwareManager.class).getCarInfo();

OnCarDataAvailableListener<EnergyLevel> listener = (data) -> {
  if(data.getRangeRemainingMeters().getStatus() == CarValue.STATUS_SUCCESS) {
    float rangeRemaining = data.getRangeRemainingMeters().getValue();
  } else {
    // Handle error
  }
};

carInfo.addEnergyLevelListener(getCarContext().getMainExecutor(), listener);

// Unregister the listener when you no longer need updates
carInfo.removeEnergyLevelListener(listener);

यह न मानें कि कार से मिला डेटा हर समय उपलब्ध होता है. अगर आपको कोई गड़बड़ी मिलती है, तो जिस वैल्यू का अनुरोध किया गया है उसका स्टेटस देखें. इससे आपको यह समझने में मदद मिलेगी कि आपके अनुरोध किए गए डेटा को क्यों नहीं पाया जा सका. CarInfo क्लास की परिभाषा के बारे में ज़्यादा जानने के लिए, रेफ़रंस दस्तावेज़ देखें.

CarSensors

CarSensors क्लास से, आपको वाहन के एक्सलरोमीटर, जाइरोस्कोप, कंपास, और जगह की जानकारी के डेटा का ऐक्सेस मिलता है. ये वैल्यू उपलब्ध हैं या नहीं, यह ओईएम पर निर्भर कर सकता है. एक्सलरोमीटर, जाइरोस्कोप, और कंपास से मिले डेटा का फ़ॉर्मैट वही होता है जो आपको SensorManager एपीआई से मिलता है.

उदाहरण के लिए, वाहन की दिशा देखने के लिए:

Kotlin

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)

Java

CarSensors carSensors = getCarContext().getCarService(CarHardwareManager.class).getCarSensors();

OnCarDataAvailableListener<Compass> listener = (data) -> {
  if (data.getOrientations().getStatus() == CarValue.STATUS_SUCCESS) {
    List<Float> orientations = data.getOrientations().getValue();
  } else {
    // Data not available, handle error
  }
};

carSensors.addCompassListener(CarSensors.UPDATE_RATE_NORMAL, getCarContext().getMainExecutor(),
    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 एम्युलेटर गाइड में हार्डवेयर की स्थिति का अनुकरण करना लेख पढ़ें.