package android.car {

  public final class Car {
    method public void connect() throws java.lang.IllegalStateException;
    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection, android.os.Handler);
    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection);
    method public void disconnect();
    method public int getCarConnectionType();
    method public java.lang.Object getCarManager(java.lang.String) throws android.car.CarNotConnectedException;
    method public boolean isConnected();
    method public boolean isConnecting();
    field public static final java.lang.String APP_FOCUS_SERVICE = "app_focus";
    field public static final java.lang.String AUDIO_SERVICE = "audio";
    field public static final java.lang.String CABIN_SERVICE = "cabin";
    field public static final java.lang.String CAMERA_SERVICE = "camera";
    field public static final int CONNECTION_TYPE_EMBEDDED = 5; // 0x5
    field public static final java.lang.String HVAC_SERVICE = "hvac";
    field public static final java.lang.String INFO_SERVICE = "info";
    field public static final java.lang.String PACKAGE_SERVICE = "package";
    field public static final java.lang.String PERMISSION_CAR_CABIN = "android.car.permission.CAR_CABIN";
    field public static final java.lang.String PERMISSION_CAR_CAMERA = "android.car.permission.CAR_CAMERA";
    field public static final java.lang.String PERMISSION_CAR_CONTROL_AUDIO_VOLUME = "android.car.permission.CAR_CONTROL_AUDIO_VOLUME";
    field public static final java.lang.String PERMISSION_CAR_HVAC = "android.car.permission.CAR_HVAC";
    field public static final java.lang.String PERMISSION_CAR_PROJECTION = "android.car.permission.CAR_PROJECTION";
    field public static final java.lang.String PERMISSION_CAR_RADIO = "android.car.permission.CAR_RADIO";
    field public static final java.lang.String PERMISSION_CONTROL_APP_BLOCKING = "android.car.permission.CONTROL_APP_BLOCKING";
    field public static final java.lang.String PERMISSION_FUEL = "android.car.permission.CAR_FUEL";
    field public static final java.lang.String PERMISSION_MILEAGE = "android.car.permission.CAR_MILEAGE";
    field public static final java.lang.String PERMISSION_MOCK_VEHICLE_HAL = "android.car.permission.CAR_MOCK_VEHICLE_HAL";
    field public static final java.lang.String PERMISSION_SPEED = "android.car.permission.CAR_SPEED";
    field public static final java.lang.String PERMISSION_VENDOR_EXTENSION = "android.car.permission.CAR_VENDOR_EXTENSION";
    field public static final java.lang.String PROJECTION_SERVICE = "projection";
    field public static final java.lang.String RADIO_SERVICE = "radio";
    field public static final java.lang.String SENSOR_SERVICE = "sensor";
    field public static final java.lang.String TEST_SERVICE = "car-service-test";
    field public static final java.lang.String VENDOR_EXTENSION_SERVICE = "vendor_extension";
    field public static final int VERSION = 1; // 0x1
  }

  public final class CarAppFocusManager {
    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int);
    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback);
    method public void addFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int) throws android.car.CarNotConnectedException;
    method public boolean isOwningFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int) throws android.car.CarNotConnectedException;
    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int);
    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener);
    method public int requestAppFocus(int, android.car.CarAppFocusManager.OnAppFocusOwnershipCallback) throws android.car.CarNotConnectedException, java.lang.SecurityException;
    field public static final int APP_FOCUS_REQUEST_FAILED = 0; // 0x0
    field public static final int APP_FOCUS_REQUEST_SUCCEEDED = 1; // 0x1
    field public static final int APP_FOCUS_TYPE_NAVIGATION = 1; // 0x1
    field public static final int APP_FOCUS_TYPE_VOICE_COMMAND = 2; // 0x2
  }

  public static abstract interface CarAppFocusManager.OnAppFocusChangedListener {
    method public abstract void onAppFocusChanged(int, boolean);
  }

  public static abstract interface CarAppFocusManager.OnAppFocusOwnershipCallback {
    method public abstract void onAppFocusOwnershipGranted(int);
    method public abstract void onAppFocusOwnershipLost(int);
  }

  public final class CarInfoManager {
    method public java.lang.String getManufacturer() throws android.car.CarNotConnectedException;
    method public java.lang.String getModel() throws android.car.CarNotConnectedException;
    method public java.lang.String getModelYear() throws android.car.CarNotConnectedException;
    method public java.lang.String getVehicleId() throws android.car.CarNotConnectedException;
  }

  public class CarNotConnectedException extends java.lang.Exception {
    ctor public CarNotConnectedException();
    ctor public CarNotConnectedException(java.lang.String);
    ctor public CarNotConnectedException(java.lang.String, java.lang.Throwable);
    ctor public CarNotConnectedException(java.lang.Exception);
  }

  public final class CarProjectionManager {
    method public void onCarDisconnected();
    method public void registerProjectionRunner(android.content.Intent) throws android.car.CarNotConnectedException;
    method public void registerProjectionListener(android.car.CarProjectionManager.CarProjectionListener, int) throws android.car.CarNotConnectedException;
    method public void unregisterProjectionRunner(android.content.Intent);
    method public void unregisterProjectionListener();
    field public static final int PROJECTION_LONG_PRESS_VOICE_SEARCH = 2; // 0x2
    field public static final int PROJECTION_VOICE_SEARCH = 1; // 0x1
  }

  public static abstract interface CarProjectionManager.CarProjectionListener {
    method public abstract void onVoiceAssistantRequest(boolean);
  }

  public final class VehicleAreaType {
    field public static final int VEHICLE_AREA_TYPE_DOOR = 4; // 0x4
    field public static final int VEHICLE_AREA_TYPE_MIRROR = 5; // 0x5
    field public static final int VEHICLE_AREA_TYPE_NONE = 0; // 0x0
    field public static final int VEHICLE_AREA_TYPE_SEAT = 3; // 0x3
    field public static final int VEHICLE_AREA_TYPE_WINDOW = 2; // 0x2
    field public static final int VEHICLE_AREA_TYPE_ZONE = 1; // 0x1
  }

  public final class VehicleDoor {
    field public static final int DOOR_HOOD = 268435456; // 0x10000000
    field public static final int DOOR_REAR = 536870912; // 0x20000000
    field public static final int DOOR_ROW_1_LEFT = 1; // 0x1
    field public static final int DOOR_ROW_1_RIGHT = 4; // 0x4
    field public static final int DOOR_ROW_2_LEFT = 16; // 0x10
    field public static final int DOOR_ROW_2_RIGHT = 64; // 0x40
    field public static final int DOOR_ROW_3_LEFT = 256; // 0x100
    field public static final int DOOR_ROW_3_RIGHT = 1024; // 0x400
  }

  public final class VehicleMirror {
    field public static final int MIRROR_DRIVER_CENTER = 4; // 0x4
    field public static final int MIRROR_DRIVER_LEFT = 1; // 0x1
    field public static final int MIRROR_DRIVER_RIGHT = 2; // 0x2
  }

  public final class VehicleSeat {
    field public static final int SEAT_ROW_1_CENTER = 2; // 0x2
    field public static final int SEAT_ROW_1_LEFT = 1; // 0x1
    field public static final int SEAT_ROW_1_RIGHT = 4; // 0x4
    field public static final int SEAT_ROW_2_CENTER = 32; // 0x20
    field public static final int SEAT_ROW_2_LEFT = 16; // 0x10
    field public static final int SEAT_ROW_2_RIGHT = 64; // 0x40
    field public static final int SEAT_ROW_3_CENTER = 512; // 0x200
    field public static final int SEAT_ROW_3_LEFT = 256; // 0x100
    field public static final int SEAT_ROW_3_RIGHT = 1024; // 0x400
  }

  public final class VehicleWindow {
    field public static final int WINDOW_FRONT_WINDSHIELD = 1; // 0x1
    field public static final int WINDOW_REAR_WINDSHIELD = 2; // 0x2
    field public static final int WINDOW_ROOF_TOP = 4; // 0x4
    field public static final int WINDOW_ROW_1_LEFT = 16; // 0x10
    field public static final int WINDOW_ROW_1_RIGHT = 32; // 0x20
    field public static final int WINDOW_ROW_2_LEFT = 256; // 0x100
    field public static final int WINDOW_ROW_2_RIGHT = 512; // 0x200
    field public static final int WINDOW_ROW_3_LEFT = 4096; // 0x1000
    field public static final int WINDOW_ROW_3_RIGHT = 8192; // 0x2000
  }

  public final class VehicleZone {
    field public static final int ZONE_ALL = -2147483648; // 0x80000000
    field public static final int ZONE_ROW_1_ALL = 8; // 0x8
    field public static final int ZONE_ROW_1_CENTER = 2; // 0x2
    field public static final int ZONE_ROW_1_LEFT = 1; // 0x1
    field public static final int ZONE_ROW_1_RIGHT = 4; // 0x4
    field public static final int ZONE_ROW_2_ALL = 128; // 0x80
    field public static final int ZONE_ROW_2_CENTER = 32; // 0x20
    field public static final int ZONE_ROW_2_LEFT = 16; // 0x10
    field public static final int ZONE_ROW_2_RIGHT = 64; // 0x40
    field public static final int ZONE_ROW_3_ALL = 2048; // 0x800
    field public static final int ZONE_ROW_3_CENTER = 512; // 0x200
    field public static final int ZONE_ROW_3_LEFT = 256; // 0x100
    field public static final int ZONE_ROW_3_RIGHT = 1024; // 0x400
    field public static final int ZONE_ROW_4_ALL = 32768; // 0x8000
    field public static final int ZONE_ROW_4_CENTER = 8192; // 0x2000
    field public static final int ZONE_ROW_4_LEFT = 4096; // 0x1000
    field public static final int ZONE_ROW_4_RIGHT = 16384; // 0x4000
  }

  public final class VehicleZoneUtil {
    method public static int getFirstZone(int);
    method public static int getNextZone(int, int) throws java.lang.IllegalArgumentException;
    method public static int getNumberOfZones(int);
    method public static int[] listAllZones(int);
    method public static int zoneToIndex(int, int) throws java.lang.IllegalArgumentException;
  }

}

package android.car.app.menu {

  public abstract class CarMenuCallbacks {
    ctor public CarMenuCallbacks();
    method public abstract android.car.app.menu.RootMenu getRootMenu(android.os.Bundle);
    method public abstract void onCarMenuClosed();
    method public abstract void onCarMenuClosing();
    method public abstract void onCarMenuOpened();
    method public abstract void onCarMenuOpening();
    method public abstract void onItemClicked(java.lang.String);
    method public abstract boolean onItemLongClicked(java.lang.String);
    method public abstract boolean onMenuClicked();
    method public abstract void subscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
    method public abstract void unsubscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
  }

  public class CarMenuConstants {
    ctor public CarMenuConstants();
  }

  public static class CarMenuConstants.MenuItemConstants {
    ctor public CarMenuConstants.MenuItemConstants();
    field public static final int FLAG_BROWSABLE = 1; // 0x1
    field public static final int FLAG_FIRSTITEM = 2; // 0x2
    field public static final java.lang.String KEY_EMPTY_PLACEHOLDER = "android.car.app.menu.empty_placeholder";
    field public static final java.lang.String KEY_FLAGS = "android.car.app.menu.flags";
    field public static final java.lang.String KEY_ID = "android.car.app.menu.id";
    field public static final java.lang.String KEY_LEFTICON = "android.car.app.menu.leftIcon";
    field public static final java.lang.String KEY_REMOTEVIEWS = "android.car.app.menu.remoteViews";
    field public static final java.lang.String KEY_RIGHTICON = "android.car.app.menu.rightIcon";
    field public static final java.lang.String KEY_RIGHTTEXT = "android.car.app.menu.rightText";
    field public static final java.lang.String KEY_TEXT = "android.car.app.menu.text";
    field public static final java.lang.String KEY_TITLE = "android.car.app.menu.title";
    field public static final java.lang.String KEY_WIDGET = "android.car.app.menu.widget";
    field public static final java.lang.String KEY_WIDGET_STATE = "android.car.app.menu.widget_state";
    field public static final int WIDGET_CHECKBOX = 1; // 0x1
    field public static final int WIDGET_TEXT_VIEW = 2; // 0x2
  }

  public static abstract class CarMenuConstants.MenuItemConstants.MenuItemFlags implements java.lang.annotation.Annotation {
  }

  public static abstract class CarMenuConstants.MenuItemConstants.WidgetTypes implements java.lang.annotation.Annotation {
  }

  public abstract class CarUiEntry {
    ctor public CarUiEntry(android.content.Context, android.content.Context);
    method public abstract void closeDrawer();
    method public abstract android.view.View getContentView();
    method public abstract int getFragmentContainerId();
    method public abstract java.lang.CharSequence getSearchBoxText();
    method public abstract void hideMenuButton();
    method public abstract void hideTitle();
    method public abstract void onPause();
    method public abstract void onRestoreInstanceState(android.os.Bundle);
    method public abstract void onResume();
    method public abstract void onSaveInstanceState(android.os.Bundle);
    method public abstract void onStart();
    method public abstract void onStop();
    method public abstract void openDrawer();
    method public abstract void restoreMenuDrawable();
    method public abstract void setAutoLightDarkMode();
    method public abstract void setBackground(android.graphics.Bitmap);
    method public abstract void setCarMenuCallbacks(android.car.app.menu.CarMenuCallbacks);
    method public abstract void setDarkMode();
    method public abstract void setLightMode();
    method public abstract void setMenuButtonBitmap(android.graphics.Bitmap);
    method public abstract void setMenuButtonColor(int);
    method public abstract void setScrimColor(int);
    method public abstract void setSearchBoxColors(int, int, int, int);
    method public abstract void setSearchBoxEditListener(android.car.app.menu.SearchBoxEditListener);
    method public abstract void setSearchBoxEndView(android.view.View);
    method public abstract void setTitle(java.lang.CharSequence);
    method public abstract void showMenu(java.lang.String, java.lang.String);
    method public abstract void showSearchBox(android.view.View.OnClickListener);
    method public abstract void showTitle();
    method public abstract void showToast(java.lang.String, long);
    method public abstract android.widget.EditText startInput(java.lang.String, android.view.View.OnClickListener);
    method public abstract void stopInput();
    field protected final android.content.Context mAppContext;
    field protected final android.content.Context mUiLibContext;
  }

  public class RootMenu {
    ctor public RootMenu(java.lang.String);
    ctor public RootMenu(java.lang.String, android.os.Bundle);
    method public android.os.Bundle getBundle();
    method public java.lang.String getId();
  }

  public abstract class SearchBoxEditListener {
    ctor public SearchBoxEditListener();
    method public abstract void onEdit(java.lang.String);
    method public abstract void onSearch(java.lang.String);
  }

  public abstract class SubscriptionCallbacks {
    ctor public SubscriptionCallbacks();
    method public abstract void onChildChanged(java.lang.String, android.os.Bundle);
    method public abstract void onChildrenLoaded(java.lang.String, java.util.List<android.os.Bundle>);
    method public abstract void onError(java.lang.String);
  }

}

package android.car.cluster.renderer {

  public class DisplayConfiguration implements android.os.Parcelable {
    ctor public DisplayConfiguration(android.os.Parcel);
    ctor public DisplayConfiguration(android.graphics.Rect);
    ctor public DisplayConfiguration(android.graphics.Rect, android.graphics.Rect);
    method public int describeContents();
    method public android.graphics.Rect getPrimaryRegion();
    method public android.graphics.Rect getSecondaryRegion();
    method public boolean hasSecondaryRegion();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.cluster.renderer.DisplayConfiguration> CREATOR;
  }

  public abstract class InstrumentClusterRenderer {
    ctor public InstrumentClusterRenderer();
    method protected abstract android.car.cluster.renderer.NavigationRenderer createNavigationRenderer();
    method public synchronized android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
    method public final synchronized void initialize();
    method public abstract void onCreate(android.content.Context);
    method public abstract void onStart();
    method public abstract void onStop();
  }

  public abstract class InstrumentClusterRenderingService extends android.app.Service {
    ctor public InstrumentClusterRenderingService();
    method protected abstract android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
    method public android.os.IBinder onBind(android.content.Intent);
    method protected void onKeyEvent(android.view.KeyEvent);
  }

  public abstract class NavigationRenderer {
    ctor public NavigationRenderer();
    method public abstract android.car.navigation.CarNavigationInstrumentCluster getNavigationProperties();
    method public abstract void onNextTurnChanged(int, java.lang.CharSequence, int, int, android.graphics.Bitmap, int);
    method public abstract void onNextTurnDistanceChanged(int, int, int, int);
    method public abstract void onStartNavigation();
    method public abstract void onStopNavigation();
  }

}

package android.car.content.pm {

  public class AppBlockingPackageInfo implements android.os.Parcelable {
    ctor public AppBlockingPackageInfo(java.lang.String, int, int, int, android.content.pm.Signature[], java.lang.String[]);
    ctor public AppBlockingPackageInfo(android.os.Parcel);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.content.pm.AppBlockingPackageInfo> CREATOR;
    field public static final int FLAG_SYSTEM_APP = 1; // 0x1
    field public static final int FLAG_WHOLE_ACTIVITY = 2; // 0x2
    field public final java.lang.String[] activities;
    field public final int flags;
    field public final int maxRevisionCode;
    field public final int minRevisionCode;
    field public final java.lang.String packageName;
    field public final android.content.pm.Signature[] signatures;
  }

  public class CarAppBlockingPolicy implements android.os.Parcelable {
    ctor public CarAppBlockingPolicy(android.car.content.pm.AppBlockingPackageInfo[], android.car.content.pm.AppBlockingPackageInfo[]);
    ctor public CarAppBlockingPolicy(android.os.Parcel);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.content.pm.CarAppBlockingPolicy> CREATOR;
    field public final android.car.content.pm.AppBlockingPackageInfo[] blacklists;
    field public final android.car.content.pm.AppBlockingPackageInfo[] whitelists;
  }

  public abstract class CarAppBlockingPolicyService extends android.app.Service {
    ctor public CarAppBlockingPolicyService();
    method protected abstract android.car.content.pm.CarAppBlockingPolicy getAppBlockingPolicy();
    method public android.os.IBinder onBind(android.content.Intent);
    field public static final java.lang.String SERVICE_INTERFACE = "android.car.content.pm.CarAppBlockingPolicyService";
  }

  public final class CarPackageManager {
    method public boolean isActivityAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
    method public boolean isActivityBackedBySafeActivity(android.content.ComponentName) throws android.car.CarNotConnectedException;
    method public boolean isServiceAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
    method public void setAppBlockingPolicy(java.lang.String, android.car.content.pm.CarAppBlockingPolicy, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException, java.lang.SecurityException;
    field public static final int FLAG_SET_POLICY_ADD = 2; // 0x2
    field public static final int FLAG_SET_POLICY_REMOVE = 4; // 0x4
    field public static final int FLAG_SET_POLICY_WAIT_FOR_CHANGE = 1; // 0x1
  }

}

package android.car.hardware {

  public class CarPropertyConfig<T> implements android.os.Parcelable {
    method public int describeContents();
    method public int getAreaCount();
    method public int[] getAreaIds();
    method public int getAreaType();
    method public int getFirstAndOnlyAreaId();
    method public T getMaxValue(int);
    method public T getMaxValue();
    method public T getMinValue(int);
    method public T getMinValue();
    method public int getPropertyId();
    method public java.lang.Class<T> getPropertyType();
    method public boolean hasArea(int);
    method public boolean isGlobalProperty();
    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int, int);
    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig> CREATOR;
  }

  public static class CarPropertyConfig.AreaConfig<T> implements android.os.Parcelable {
    method public int describeContents();
    method public T getMaxValue();
    method public T getMinValue();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig.AreaConfig<java.lang.Object>> CREATOR;
  }

  public static class CarPropertyConfig.Builder<T> {
    method public android.car.hardware.CarPropertyConfig.Builder<T> addArea(int);
    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreaConfig(int, T, T);
    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreas(int[]);
    method public android.car.hardware.CarPropertyConfig<T> build();
  }

  public class CarPropertyValue<T> implements android.os.Parcelable {
    ctor public CarPropertyValue(int, T);
    ctor public CarPropertyValue(int, int, T);
    ctor public CarPropertyValue(android.os.Parcel);
    method public int describeContents();
    method public int getAreaId();
    method public int getPropertyId();
    method public T getValue();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyValue> CREATOR;
  }

  public class CarSensorEvent implements android.os.Parcelable {
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.CarSensorEvent> CREATOR;
    field public static final int DRIVE_STATUS_FULLY_RESTRICTED = 31; // 0x1f
    field public static final int DRIVE_STATUS_LIMIT_MESSAGE_LEN = 16; // 0x10
    field public static final int DRIVE_STATUS_NO_CONFIG = 8; // 0x8
    field public static final int DRIVE_STATUS_NO_KEYBOARD_INPUT = 2; // 0x2
    field public static final int DRIVE_STATUS_NO_VIDEO = 1; // 0x1
    field public static final int DRIVE_STATUS_NO_VOICE_INPUT = 4; // 0x4
    field public static final int DRIVE_STATUS_UNRESTRICTED = 0; // 0x0
    field public static final int GEAR_DRIVE = 100; // 0x64
    field public static final int GEAR_EIGHTH = 8; // 0x8
    field public static final int GEAR_FIFTH = 5; // 0x5
    field public static final int GEAR_FIRST = 1; // 0x1
    field public static final int GEAR_FOURTH = 4; // 0x4
    field public static final int GEAR_NEUTRAL = 0; // 0x0
    field public static final int GEAR_NINTH = 9; // 0x9
    field public static final int GEAR_PARK = 101; // 0x65
    field public static final int GEAR_REVERSE = 102; // 0x66
    field public static final int GEAR_SECOND = 2; // 0x2
    field public static final int GEAR_SEVENTH = 7; // 0x7
    field public static final int GEAR_SIXTH = 6; // 0x6
    field public static final int GEAR_TENTH = 10; // 0xa
    field public static final int GEAR_THIRD = 3; // 0x3
    field public static final int INDEX_ENVIRONMENT_PRESSURE = 1; // 0x1
    field public static final int INDEX_ENVIRONMENT_TEMPERATURE = 0; // 0x0
    field public static final int INDEX_FUEL_LEVEL_IN_DISTANCE = 1; // 0x1
    field public static final int INDEX_FUEL_LEVEL_IN_PERCENTILE = 0; // 0x0
    field public static final int INDEX_FUEL_LOW_WARNING = 0; // 0x0
    field public final float[] floatValues;
    field public final int[] intValues;
    field public int sensorType;
    field public long timestamp;
  }

  public static class CarSensorEvent.EnvironmentData {
    field public float pressure;
    field public float temperature;
    field public long timestamp;
  }

  public final class CarSensorManager {
    method public android.car.hardware.CarSensorEvent getLatestSensorEvent(int) throws android.car.CarNotConnectedException;
    method public int[] getSupportedSensors() throws android.car.CarNotConnectedException;
    method public boolean isSensorSupported(int) throws android.car.CarNotConnectedException;
    method public static boolean isSensorSupported(int[], int);
    method public boolean registerListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener);
    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int);
    field public static final int SENSOR_RATE_FAST = 1; // 0x1
    field public static final int SENSOR_RATE_FASTEST = 0; // 0x0
    field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
    field public static final int SENSOR_RATE_UI = 2; // 0x2
    field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
    field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
    field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
    field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
    field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
    field public static final int SENSOR_TYPE_RPM = 3; // 0x3
    field public static final int SENSOR_TYPE_VENDOR_EXTENSION_END = 1879048191; // 0x6fffffff
  }

  public static abstract interface CarSensorManager.OnSensorChangedListener {
    method public abstract void onSensorChanged(android.car.hardware.CarSensorEvent);
  }

  public final class CarVendorExtensionManager {
    method public <E> E getGlobalProperty(java.lang.Class<E>, int) throws android.car.CarNotConnectedException;
    method public java.util.List<android.car.hardware.CarPropertyConfig> getProperties() throws android.car.CarNotConnectedException;
    method public <E> E getProperty(java.lang.Class<E>, int, int) throws android.car.CarNotConnectedException;
    method public void registerCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback) throws android.car.CarNotConnectedException;
    method public <E> void setGlobalProperty(java.lang.Class<E>, int, E) throws android.car.CarNotConnectedException;
    method public <E> void setProperty(java.lang.Class<E>, int, int, E) throws android.car.CarNotConnectedException;
    method public void unregisterCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback);
  }

  public static abstract interface CarVendorExtensionManager.CarVendorExtensionCallback {
    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
    method public abstract void onErrorEvent(int, int);
  }

}

package android.car.hardware.cabin {

  public final class CarCabinManager {
    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
    method public static boolean isZonedProperty(int);
    method public synchronized void registerCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback) throws android.car.CarNotConnectedException;
    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
    method public synchronized void unregisterCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback);
    field public static final int ID_DOOR_LOCK = 3; // 0x3
    field public static final int ID_DOOR_MOVE = 2; // 0x2
    field public static final int ID_DOOR_POS = 1; // 0x1
    field public static final int ID_MIRROR_FOLD = 4102; // 0x1006
    field public static final int ID_MIRROR_LOCK = 4101; // 0x1005
    field public static final int ID_MIRROR_Y_MOVE = 4100; // 0x1004
    field public static final int ID_MIRROR_Y_POS = 4099; // 0x1003
    field public static final int ID_MIRROR_Z_MOVE = 4098; // 0x1002
    field public static final int ID_MIRROR_Z_POS = 4097; // 0x1001
    field public static final int ID_SEAT_BACKREST_ANGLE_1_MOVE = 8201; // 0x2009
    field public static final int ID_SEAT_BACKREST_ANGLE_1_POS = 8200; // 0x2008
    field public static final int ID_SEAT_BACKREST_ANGLE_2_MOVE = 8203; // 0x200b
    field public static final int ID_SEAT_BACKREST_ANGLE_2_POS = 8202; // 0x200a
    field public static final int ID_SEAT_BELT_BUCKLED = 8195; // 0x2003
    field public static final int ID_SEAT_BELT_HEIGHT_MOVE = 8197; // 0x2005
    field public static final int ID_SEAT_BELT_HEIGHT_POS = 8196; // 0x2004
    field public static final int ID_SEAT_DEPTH_MOVE = 8207; // 0x200f
    field public static final int ID_SEAT_DEPTH_POS = 8206; // 0x200e
    field public static final int ID_SEAT_FORE_AFT_MOVE = 8199; // 0x2007
    field public static final int ID_SEAT_FORE_AFT_POS = 8198; // 0x2006
    field public static final int ID_SEAT_HEADREST_ANGLE_MOVE = 8217; // 0x2019
    field public static final int ID_SEAT_HEADREST_ANGLE_POS = 8216; // 0x2018
    field public static final int ID_SEAT_HEADREST_FORE_AFT_MOVE = 8219; // 0x201b
    field public static final int ID_SEAT_HEADREST_FORE_AFT_POS = 8218; // 0x201a
    field public static final int ID_SEAT_HEADREST_HEIGHT_MOVE = 8215; // 0x2017
    field public static final int ID_SEAT_HEADREST_HEIGHT_POS = 8214; // 0x2016
    field public static final int ID_SEAT_HEIGHT_MOVE = 8205; // 0x200d
    field public static final int ID_SEAT_HEIGHT_POS = 8204; // 0x200c
    field public static final int ID_SEAT_LUMBAR_FORE_AFT_MOVE = 8211; // 0x2013
    field public static final int ID_SEAT_LUMBAR_FORE_AFT_POS = 8210; // 0x2012
    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 8213; // 0x2015
    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_POS = 8212; // 0x2014
    field public static final int ID_SEAT_MEMORY_SELECT = 8193; // 0x2001
    field public static final int ID_SEAT_MEMORY_SET = 8194; // 0x2002
    field public static final int ID_SEAT_TILT_MOVE = 8209; // 0x2011
    field public static final int ID_SEAT_TILT_POS = 8208; // 0x2010
    field public static final int ID_WINDOW_LOCK = 12293; // 0x3005
    field public static final int ID_WINDOW_MOVE = 12290; // 0x3002
    field public static final int ID_WINDOW_POS = 12289; // 0x3001
    field public static final int ID_WINDOW_VENT_MOVE = 12292; // 0x3004
    field public static final int ID_WINDOW_VENT_POS = 12291; // 0x3003
  }

  public static abstract interface CarCabinManager.CarCabinEventCallback {
    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
    method public abstract void onErrorEvent(int, int);
  }

}

package android.car.hardware.camera {

  public class CarCamera {
    ctor public CarCamera(android.car.hardware.camera.ICarCamera, int);
    method public android.graphics.Rect getCameraCrop() throws android.car.CarNotConnectedException;
    method public android.graphics.Rect getCameraPosition() throws android.car.CarNotConnectedException;
    method public android.car.hardware.camera.CarCameraState getCameraState() throws android.car.CarNotConnectedException;
    method public int getCapabilities() throws android.car.CarNotConnectedException;
    method public void setCameraCrop(android.graphics.Rect) throws android.car.CarNotConnectedException;
    method public void setCameraPosition(android.graphics.Rect) throws android.car.CarNotConnectedException;
    method public void setCameraState(android.car.hardware.camera.CarCameraState) throws android.car.CarNotConnectedException;
    field public static final java.lang.String TAG;
    field public final int mCameraType;
  }

  public final class CarCameraManager {
    method public void closeCamera(android.car.hardware.camera.CarCamera);
    method public int getCameraCapabilities(int) throws android.car.CarNotConnectedException;
    method public int[] getCameraList() throws android.car.CarNotConnectedException;
    method public android.car.hardware.camera.CarCamera openCamera(int) throws android.car.CarNotConnectedException;
    field public static final int ANDROID_OVERLAY_SUPPORT_FLAG = 1; // 0x1
    field public static final int CAMERA_CROP_SUPPORT_FLAG = 2; // 0x2
    field public static final int CAMERA_POSITIONING_SUPPORT_FLAG = 4; // 0x4
    field public static final int CAR_CAMERA_TYPE_NONE = 0; // 0x0
    field public static final int CAR_CAMERA_TYPE_RVC = 1; // 0x1
  }

  public class CarCameraState implements android.os.Parcelable {
    ctor public CarCameraState(android.car.hardware.camera.CarCameraState);
    ctor public CarCameraState(boolean, boolean);
    method public int describeContents();
    method public boolean getCameraIsOn();
    method public boolean getOverlayIsOn();
    method public void setCameraIsOn(boolean);
    method public void setOverlayIsOn(boolean);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.camera.CarCameraState> CREATOR;
  }

  public abstract interface ICarCamera implements android.os.IInterface {
    method public abstract android.graphics.Rect getCameraCrop(int) throws android.os.RemoteException;
    method public abstract int[] getCameraList() throws android.os.RemoteException;
    method public abstract android.graphics.Rect getCameraPosition(int) throws android.os.RemoteException;
    method public abstract android.car.hardware.camera.CarCameraState getCameraState(int) throws android.os.RemoteException;
    method public abstract int getCapabilities(int) throws android.os.RemoteException;
    method public abstract void setCameraCrop(int, android.graphics.Rect) throws android.os.RemoteException;
    method public abstract void setCameraPosition(int, android.graphics.Rect) throws android.os.RemoteException;
    method public abstract void setCameraState(int, android.car.hardware.camera.CarCameraState) throws android.os.RemoteException;
  }

}

package android.car.hardware.hvac {

  public final class CarHvacManager {
    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
    method public static boolean isZonedProperty(int);
    method public synchronized void registerCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback) throws android.car.CarNotConnectedException;
    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
    method public synchronized void unregisterCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback);
    field public static final int ID_MIRROR_DEFROSTER_ON = 1; // 0x1
    field public static final int ID_OUTSIDE_AIR_TEMP = 3; // 0x3
    field public static final int ID_STEERING_WHEEL_TEMP = 2; // 0x2
    field public static final int ID_TEMPERATURE_UNITS = 4; // 0x4
    field public static final int ID_WINDOW_DEFROSTER_ON = 20481; // 0x5001
    field public static final int ID_ZONED_AC_ON = 16393; // 0x4009
    field public static final int ID_ZONED_AIR_RECIRCULATION_ON = 16395; // 0x400b
    field public static final int ID_ZONED_AUTOMATIC_MODE_ON = 16394; // 0x400a
    field public static final int ID_ZONED_DUAL_ZONE_ON = 16397; // 0x400d
    field public static final int ID_ZONED_FAN_DIRECTION = 16391; // 0x4007
    field public static final int ID_ZONED_FAN_DIRECTION_AVAILABLE = 16390; // 0x4006
    field public static final int ID_ZONED_FAN_SPEED_RPM = 16389; // 0x4005
    field public static final int ID_ZONED_FAN_SPEED_SETPOINT = 16388; // 0x4004
    field public static final int ID_ZONED_HVAC_POWER_ON = 16387; // 0x4003
    field public static final int ID_ZONED_MAX_AC_ON = 16396; // 0x400c
    field public static final int ID_ZONED_MAX_DEFROST_ON = 16398; // 0x400e
    field public static final int ID_ZONED_SEAT_TEMP = 16392; // 0x4008
    field public static final int ID_ZONED_TEMP_ACTUAL = 16386; // 0x4002
    field public static final int ID_ZONED_TEMP_SETPOINT = 16385; // 0x4001
  }

  public static abstract interface CarHvacManager.CarHvacEventCallback {
    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
    method public abstract void onErrorEvent(int, int);
  }

}

package android.car.hardware.radio {

  public class CarRadioEvent implements android.os.Parcelable {
    ctor public CarRadioEvent(int, android.car.hardware.radio.CarRadioPreset);
    method public int describeContents();
    method public int getEventType();
    method public android.car.hardware.radio.CarRadioPreset getPreset();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioEvent> CREATOR;
    field public static final int RADIO_PRESET = 0; // 0x0
  }

  public final class CarRadioManager {
    method public android.car.hardware.radio.CarRadioPreset getPreset(int) throws android.car.CarNotConnectedException;
    method public int getPresetCount() throws android.car.CarNotConnectedException;
    method public synchronized void registerListener(android.car.hardware.radio.CarRadioManager.CarRadioEventListener) throws android.car.CarNotConnectedException;
    method public boolean setPreset(android.car.hardware.radio.CarRadioPreset) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
    method public synchronized void unregisterListener();
  }

  public static abstract interface CarRadioManager.CarRadioEventListener {
    method public abstract void onEvent(android.car.hardware.radio.CarRadioEvent);
  }

  public class CarRadioPreset implements android.os.Parcelable {
    ctor public CarRadioPreset(int, int, int, int);
    method public int describeContents();
    method public int getBand();
    method public int getChannel();
    method public int getPresetNumber();
    method public int getSubChannel();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioPreset> CREATOR;
  }

}

package android.car.input {

  public abstract class CarInputHandlingService extends android.app.Service {
    ctor protected CarInputHandlingService(android.car.input.CarInputHandlingService.InputFilter[]);
    method public android.os.IBinder onBind(android.content.Intent);
    method protected abstract void onKeyEvent(android.view.KeyEvent, int);
    field public static final int INPUT_CALLBACK_BINDER_CODE = 1; // 0x1
    field public static final java.lang.String INPUT_CALLBACK_BINDER_KEY = "callback_binder";
  }

  public static class CarInputHandlingService.InputFilter implements android.os.Parcelable {
    ctor public CarInputHandlingService.InputFilter(int, int);
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
    field public final int mKeyCode;
    field public final int mTargetDisplay;
  }

}

package android.car.media {

  public final class CarAudioManager {
    method public void abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
    method public android.media.AudioAttributes getAudioAttributesForCarUsage(int) throws android.car.CarNotConnectedException;
    method public int getStreamMaxVolume(int) throws android.car.CarNotConnectedException;
    method public int getStreamMinVolume(int) throws android.car.CarNotConnectedException;
    method public int getStreamVolume(int) throws android.car.CarNotConnectedException;
    method public boolean isMediaMuted() throws android.car.CarNotConnectedException;
    method public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
    method public boolean setMediaMute(boolean) throws android.car.CarNotConnectedException;
    method public void setStreamVolume(int, int, int) throws android.car.CarNotConnectedException;
    method public void setVolumeController(android.media.IVolumeController) throws android.car.CarNotConnectedException;
    field public static final int CAR_AUDIO_USAGE_ALARM = 6; // 0x6
    field public static final int CAR_AUDIO_USAGE_DEFAULT = 0; // 0x0
    field public static final int CAR_AUDIO_USAGE_MUSIC = 1; // 0x1
    field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
    field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
    field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
    field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
    field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
    field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
    field public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5; // 0x5
  }

}

package android.car.navigation {

  public class CarNavigationInstrumentCluster implements android.os.Parcelable {
    ctor public CarNavigationInstrumentCluster(android.car.navigation.CarNavigationInstrumentCluster);
    method public static android.car.navigation.CarNavigationInstrumentCluster createCluster(int);
    method public static android.car.navigation.CarNavigationInstrumentCluster createCustomImageCluster(int, int, int, int);
    method public int describeContents();
    method public int getImageColorDepthBits();
    method public int getImageHeight();
    method public int getImageWidth();
    method public int getMinIntervalMillis();
    method public int getType();
    method public boolean supportsCustomImages();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED = 1; // 0x1
    field public static final int CLUSTER_TYPE_IMAGE_CODES_ONLY = 2; // 0x2
    field public static final android.os.Parcelable.Creator<android.car.navigation.CarNavigationInstrumentCluster> CREATOR;
  }

}

package android.car.settings {

  public class CarSettings {
    ctor public CarSettings();
  }

  public static final class CarSettings.Global {
    ctor public CarSettings.Global();
    field public static final java.lang.String KEY_GARAGE_MODE_ENABLED = "android.car.GARAGE_MODE_ENABLED";
    field public static final java.lang.String KEY_GARAGE_MODE_MAINTENANCE_WINDOW = "android.car.GARAGE_MODE_MAINTENANCE_WINDOW";
    field public static final java.lang.String KEY_GARAGE_MODE_WAKE_UP_TIME = "android.car.GARAGE_MODE_WAKE_UP_TIME";
  }

}

package android.car.test {

  public class CarTestManagerBinderWrapper {
    ctor public CarTestManagerBinderWrapper(android.os.IBinder);
    method public void onCarDisconnected();
    field public final android.os.IBinder binder;
  }

}