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

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

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

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
कार ऐप्लिकेशन एपीआई
fetchModel ब्रैंड, मॉडल, साल android.car.permission.CAR_INFO 3
fetchEnergyProfile ईवी कनेक्टर के टाइप, ईंधन के टाइप com.google.android.gms.permission.CAR_FUEL android.car.permission.CAR_INFO 3
fetchExteriorDimensions

यह डेटा, एपीआई 30 या इसके बाद के वर्शन पर चलने वाली कुछ AAOS गाड़ियों में ही उपलब्ध है.

गाड़ी के बाहरी डाइमेंशन लागू नहीं 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 एम्युलेटर गाइड में हार्डवेयर की स्थिति को एम्युलेट करना लेख पढ़ें.