in car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/renderer/CarHardwareRenderer.java [151:228]
public void enable(@NonNull Runnable onChangeListener) {
mRequestRenderRunnable = onChangeListener;
CarHardwareManager carHardwareManager =
mCarContext.getCarService(CarHardwareManager.class);
CarInfo carInfo = carHardwareManager.getCarInfo();
CarSensors carSensors = carHardwareManager.getCarSensors();
// Request car info subscription items.
mTollCard = null;
try {
carInfo.addTollListener(mCarHardwareExecutor, mTollListener);
mHasTollCardPermission = true;
} catch (SecurityException e) {
mHasTollCardPermission = false;
}
mEnergyLevel = null;
try {
carInfo.addEnergyLevelListener(mCarHardwareExecutor, mEnergyLevelListener);
mHasEnergyLevelPermission = true;
} catch (SecurityException e) {
mHasEnergyLevelPermission = false;
}
mSpeed = null;
try {
carInfo.addSpeedListener(mCarHardwareExecutor, mSpeedListener);
mHasSpeedPermission = true;
} catch (SecurityException e) {
mHasSpeedPermission = false;
}
mMileage = null;
try {
carInfo.addMileageListener(mCarHardwareExecutor, mMileageListener);
mHasMileagePermission = true;
} catch (SecurityException e) {
mHasMileagePermission = false;
}
// Request sensors
mCompass = null;
try {
carSensors.addCompassListener(CarSensors.UPDATE_RATE_NORMAL, mCarHardwareExecutor,
mCompassListener);
mHasCompassPermission = true;
} catch (SecurityException e) {
mHasCompassPermission = false;
}
mGyroscope = null;
try {
carSensors.addGyroscopeListener(CarSensors.UPDATE_RATE_NORMAL, mCarHardwareExecutor,
mGyroscopeListener);
mHasGyroscopePermission = true;
} catch (SecurityException e) {
mHasGyroscopePermission = false;
}
mAccelerometer = null;
try {
carSensors.addAccelerometerListener(CarSensors.UPDATE_RATE_NORMAL,
mCarHardwareExecutor,
mAccelerometerListener);
mHasAccelerometerPermission = true;
} catch (SecurityException e) {
mHasAccelerometerPermission = false;
}
mCarHardwareLocation = null;
try {
carSensors.addCarHardwareLocationListener(CarSensors.UPDATE_RATE_NORMAL,
mCarHardwareExecutor, mCarLocationListener);
mHasCarHardwareLocationPermission = true;
} catch (SecurityException e) {
mHasCarHardwareLocationPermission = false;
}
}