Mulai dari level 3 Car App API, Anda dapat menggunakan Car App Library API untuk mengakses properti dan sensor kendaraan.
Persyaratan
Untuk menggunakan API dengan Android Auto, mulailah dengan menambahkan dependensi pada androidx.car.app:app-projected ke file build.gradle untuk modul Android Auto Anda. Untuk Android Automotive OS, tambahkan dependensi pada androidx.car.app:app-automotive ke file build.gradle untuk modul Android Automotive OS Anda.
Selain itu, dalam file AndroidManifest.xml, Anda harus mendeklarasikan izin yang relevan untuk meminta data mobil yang ingin Anda gunakan. Pengguna juga harus
memberikan izin ini kepada Anda. Anda dapat menggunakan kode yang sama di Android
Auto dan Android Automotive OS, alih-alih membuat alur yang bergantung pada platform.
Namun, izin yang diperlukan berbeda.
CarInfo
Tabel ini menjelaskan properti yang disediakan di CarInfo API dan
izin yang harus Anda minta untuk menggunakannya.
| Metode | Properti | Izin: Android Auto |
Izin: AAOS |
Car App API |
|---|---|---|---|---|
fetchModel |
Merek, model, tahun | android.car.permission.CAR_INFO |
3 | |
fetchEnergyProfile |
Jenis konektor EV, jenis bahan bakar | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_INFO |
3 |
fetchExteriorDimensions
Data hanya tersedia di beberapa kendaraan AAOS yang menjalankan API 30 atau yang lebih tinggi. |
Dimensi eksterior | T/A | android.car.permission.CAR_INFO |
7 |
| Status kartu tol, jenis kartu tol | 3 | |||
| Level baterai, tingkat bahan bakar, tingkat bahan bakar rendah, jarak yang tersisa | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_ENERGYandroid.car.permission.CAR_ENERGY_PORTSandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| Kecepatan mentah, kecepatan tampilan (ditampilkan di tampilan cluster mobil) | com.google.android.gms.permission.CAR_SPEED |
android.car.permission.CAR_SPEEDandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| Jarak odometer | com.google.android.gms.permission.CAR_MILEAGE |
Data tidak tersedia untuk aplikasi Android Automotive OS yang diinstal dari Google Play. | 3 |
Misalnya, untuk mendapatkan jarak yang tersisa, buat instance objek CarInfo, lalu buat dan daftarkan 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)
Jangan menganggap bahwa data mobil tersedia setiap saat. Jika Anda mendapatkan error,
periksa status nilai yang Anda minta untuk lebih memahami alasan
data yang Anda minta tidak dapat diambil. Untuk mempelajari definisi class CarInfo
lebih lanjut, lihat dokumentasi referensi.
CarSensors
Class CarSensors memberi Anda akses ke data akselerometer,
giroskop, kompas, dan lokasi kendaraan. Ketersediaan nilai ini mungkin bergantung pada OEM. Format data dari akselerometer, giroskop,
dan kompas sama dengan yang Anda dapatkan dari SensorManager API.
Misalnya, untuk memeriksa arah kendaraan:
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)
Untuk mengakses data lokasi dari mobil, Anda juga harus mendeklarasikan dan meminta izin android.permission.ACCESS_FINE_LOCATION.
Uji
Untuk menyimulasikan data sensor saat menguji di Android Auto, lihat bagian Sensor dan Konfigurasi sensor di panduan Desktop Head Unit. Untuk menyimulasikan data sensor saat menguji di Android Automotive OS, lihat Mengemulasi status hardware di panduan emulator Android Automotive OS.