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