Bắt đầu với Car App API (API Ứng dụng dành cho ô tô) cấp 3, bạn có thể dùng các API của Thư viện ứng dụng cho ô tô để truy cập vào các thuộc tính và cảm biến của xe.
Yêu cầu
Để sử dụng các API đó với Android Auto, hãy bắt đầu bằng cách thêm một phần phụ thuộc trên androidx.car.app:app-projected vào tệp build.gradle cho mô-đun Android Auto của bạn. Đối với Android Automotive OS, hãy thêm một phần phụ thuộc trên androidx.car.app:app-automotive vào tệp build.gradle cho mô-đun Android Automotive OS.
Ngoài ra, trong tệp AndroidManifest.xml, bạn phải khai báo các quyền liên quan
để yêu cầu dữ liệu ô tô mà bạn muốn sử dụng. Người dùng cũng phải
cấp các quyền này cho bạn. Bạn có thể dùng cùng một mã trên Android
Auto và Android Automotive OS, thay vì tạo các luồng phụ thuộc vào nền tảng.
Tuy nhiên, các quyền cần thiết sẽ khác nhau.
CarInfo
Bảng này mô tả các thuộc tính được cung cấp trong API CarInfo và
những quyền bạn phải yêu cầu để sử dụng các thuộc tính đó.
| Phương thức | Thuộc tính | Quyền: Android Auto |
Quyền: AAOS |
Car App API |
|---|---|---|---|---|
fetchModel |
Hãng xe, mẫu xe, năm sản xuất | android.car.permission.CAR_INFO |
3 | |
fetchEnergyProfile |
Loại đầu nối xe điện, loại nhiên liệu | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_INFO |
3 |
fetchExteriorDimensions
Dữ liệu chỉ có trên một số xe AAOS chạy API 30 trở lên hoặc cao hơn. |
Kích thước bên ngoài | Không áp dụng | android.car.permission.CAR_INFO |
7 |
| Trạng thái thẻ thu phí cầu đường, loại thẻ thu phí cầu đường | 3 | |||
| Mức pin, mức nhiên liệu, mức nhiên liệu thấp, quãng đường còn đi được | com.google.android.gms.permission.CAR_FUEL |
android.car.permission.CAR_ENERGYandroid.car.permission.CAR_ENERGY_PORTSandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| Tốc độ thô, tốc độ hiển thị (hiện trên màn hình cụm đồng hồ của ô tô) | com.google.android.gms.permission.CAR_SPEED |
android.car.permission.CAR_SPEEDandroid.car.permission.READ_CAR_DISPLAY_UNITS
|
3 | |
| Quãng đường trên công tơ mét | com.google.android.gms.permission.CAR_MILEAGE |
Dữ liệu không có sẵn cho các ứng dụng Android Automotive OS được cài đặt từ Cửa hàng Google Play. | 3 |
Ví dụ: để biết quãng đường còn đi được, hãy tạo thực thể cho đối tượng CarInfo, sau đó tạo và đăng ký 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)
Đừng cho rằng dữ liệu của ô tô luôn có sẵn. Nếu gặp lỗi,
hãy kiểm tra trạng thái của giá trị bạn đã yêu cầu để hiểu rõ hơn lý do khiến bạn không truy xuất được
dữ liệu mình yêu cầu. Để tìm hiểu thêm về định nghĩa lớp CarInfo, hãy xem tài liệu tham khảo.
CarSensors
Lớp CarSensors cho phép bạn truy cập vào gia tốc kế của xe,
con quay hồi chuyển, la bàn và dữ liệu vị trí. Tính sẵn có của các giá trị này có thể phụ thuộc vào OEM. Định dạng của dữ liệu từ gia tốc kế, con quay hồi chuyển,
và la bàn giống như định dạng bạn nhận được từ SensorManager API.
Ví dụ: để kiểm tra hướng của xe, hãy làm như sau:
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)
Để truy cập vào dữ liệu vị trí từ ô tô, bạn cũng phải khai báo và yêu cầu quyền android.permission.ACCESS_FINE_LOCATION.
Kiểm tra
Để mô phỏng dữ liệu cảm biến khi kiểm thử trên Android Auto, hãy xem phần Cảm biến và Cấu hình cảm biến trong hướng dẫn Đầu phát trung tâm trên máy tính. Để mô phỏng dữ liệu cảm biến khi kiểm thử trên Android Automotive OS, hãy xem Mô phỏng trạng thái phần cứng trong hướng dẫn Trình mô phỏng Android Automotive OS.