| /* |
| * Copyright (C) 2015 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.support.car; |
| |
| import android.support.annotation.IntDef; |
| import android.support.annotation.Nullable; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| |
| /** |
| * Utility to retrieve various static information from car. |
| */ |
| public abstract class CarInfoManager implements CarManagerBase { |
| |
| /** Location of the driver is unknown. */ |
| public static final int DRIVER_SIDE_UNKNOWN = 0; |
| /** Location of the driver: left. */ |
| public static final int DRIVER_SIDE_LEFT = 1; |
| /** Location of the driver: right. */ |
| public static final int DRIVER_SIDE_RIGHT = 2; |
| /** Location of the driver: center. */ |
| public static final int DRIVER_SIDE_CENTER = 3; |
| |
| /** @hide */ |
| @IntDef({ |
| DRIVER_SIDE_UNKNOWN, |
| DRIVER_SIDE_LEFT, |
| DRIVER_SIDE_RIGHT, |
| DRIVER_SIDE_CENTER |
| }) |
| @Retention(RetentionPolicy.SOURCE) |
| public @interface DriverSide {} |
| |
| /** |
| * Return manufacturer of the car. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getManufacturer() throws CarNotConnectedException; |
| |
| /** |
| * Return model name of the car. This information may not necessarily allow distinguishing |
| * different car models as the same name may be used for different cars depending on |
| * manufacturers. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getModel() throws CarNotConnectedException; |
| |
| /** |
| * Return model year of the car in AC. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getModelYear() throws CarNotConnectedException; |
| |
| /** |
| * Return unique identifier for the car. This is not VIN, and id is persistent until user |
| * resets it. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getVehicleId() throws CarNotConnectedException; |
| |
| /** |
| * Return manufacturer of the head unit. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getHeadunitManufacturer() throws CarNotConnectedException; |
| |
| /** |
| * Return model of the headunit. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getHeadunitModel() throws CarNotConnectedException; |
| |
| /** |
| * Return S/W build of the headunit. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getHeadunitSoftwareBuild() throws CarNotConnectedException; |
| |
| /** |
| * Return S/W version of the headunit. |
| * @return null if information is not available. |
| */ |
| public abstract @Nullable String getHeadunitSoftwareVersion() throws CarNotConnectedException; |
| |
| /** |
| * Return driver side of the car. |
| * @return {@link #DRIVER_SIDE_UNKNOWN} if information is not available. |
| */ |
| public abstract @DriverSide int getDriverPosition() throws CarNotConnectedException; |
| } |