1e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park/* 2e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * Copyright (C) 2015 The Android Open Source Project 3e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * 4e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * Licensed under the Apache License, Version 2.0 (the "License"); 5e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * you may not use this file except in compliance with the License. 6e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * You may obtain a copy of the License at 7e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * 8e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * http://www.apache.org/licenses/LICENSE-2.0 9e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * 10e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * Unless required by applicable law or agreed to in writing, software 11e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * distributed under the License is distributed on an "AS IS" BASIS, 12e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * See the License for the specific language governing permissions and 14e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park * limitations under the License. 15e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 16e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park 17e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkpackage android.support.car; 18e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park 1907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Parkimport android.support.annotation.IntDef; 2007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Parkimport android.support.annotation.Nullable; 216745635909d050c57f5a08bfc28580feb0f2cfe0Keun-young Parkimport java.lang.annotation.Retention; 226745635909d050c57f5a08bfc28580feb0f2cfe0Keun-young Parkimport java.lang.annotation.RetentionPolicy; 236745635909d050c57f5a08bfc28580feb0f2cfe0Keun-young Park 24e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park/** 2507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Utility to retrieve various static information from car. 26e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 27e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkpublic abstract class CarInfoManager implements CarManagerBase { 28e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park 2907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** Location of the driver is unknown. */ 3007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public static final int DRIVER_SIDE_UNKNOWN = 0; 3107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** Location of the driver: left. */ 3207ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public static final int DRIVER_SIDE_LEFT = 1; 3307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** Location of the driver: right. */ 3407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public static final int DRIVER_SIDE_RIGHT = 2; 3507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** Location of the driver: center. */ 3607ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public static final int DRIVER_SIDE_CENTER = 3; 3707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 3807ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** @hide */ 3907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park @IntDef({ 4007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park DRIVER_SIDE_UNKNOWN, 4107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park DRIVER_SIDE_LEFT, 4207ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park DRIVER_SIDE_RIGHT, 4307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park DRIVER_SIDE_CENTER 4407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park }) 4507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park @Retention(RetentionPolicy.SOURCE) 4607ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public @interface DriverSide {} 4707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 48e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park /** 4907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return manufacturer of the car. 5007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 51e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 5207ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getManufacturer() throws CarNotConnectedException; 5307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 54e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park /** 5507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return model name of the car. This information may not necessarily allow distinguishing 566745635909d050c57f5a08bfc28580feb0f2cfe0Keun-young Park * different car models as the same name may be used for different cars depending on 5707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * manufacturers. 5807ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 5907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park */ 6007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getModel() throws CarNotConnectedException; 6107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 6207ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** 6307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return model year of the car in AC. 6407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 65e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 6607ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getModelYear() throws CarNotConnectedException; 6707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 68e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park /** 6907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return unique identifier for the car. This is not VIN, and id is persistent until user 7007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * resets it. 7107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 72e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 7307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getVehicleId() throws CarNotConnectedException; 7407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park 75e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park /** 7607ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return manufacturer of the head unit. 7707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 78e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 7907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getHeadunitManufacturer() throws CarNotConnectedException; 80e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park 8107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** 8207ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return model of the headunit. 8307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 8407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park */ 8507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getHeadunitModel() throws CarNotConnectedException; 866745635909d050c57f5a08bfc28580feb0f2cfe0Keun-young Park 8707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** 8807ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return S/W build of the headunit. 8907ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 9007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park */ 9107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getHeadunitSoftwareBuild() throws CarNotConnectedException; 92b13dbe470108846d1c04494c5c0d2bf3cd9b8054Jason Tholstrup 9307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park /** 9407ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return S/W version of the headunit. 9507ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return null if information is not available. 9607ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park */ 9707ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @Nullable String getHeadunitSoftwareVersion() throws CarNotConnectedException; 98e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park 99e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park /** 10007ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * Return driver side of the car. 10107ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park * @return {@link #DRIVER_SIDE_UNKNOWN} if information is not available. 102e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park */ 10307ddbbd70e518e271f941f92df1b0e5501af0ad1Keun-young Park public abstract @DriverSide int getDriverPosition() throws CarNotConnectedException; 104e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park} 105