API Hardware Mobil

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

addTollListener

removeTollListener

Status kartu tol, jenis kartu tol 3

addEnergyLevelListener

removeEnergyLevelListener

Level baterai, tingkat bahan bakar, tingkat bahan bakar rendah, jarak yang tersisa 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

Kecepatan mentah, kecepatan tampilan (ditampilkan di tampilan cluster mobil) com.google.android.gms.permission.CAR_SPEED android.car.permission.CAR_SPEED

android.car.permission.READ_CAR_DISPLAY_UNITS
3

addMileageListener

removeMileageListener

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.