1// Signature format: 2.0 2package android.car { 3 4 public final class Car { 5 field public static final String CAR_DEVICE_POLICY_SERVICE = "car_device_policy_service"; 6 field public static final String CAR_TELEMETRY_SERVICE = "car_telemetry_service"; 7 field public static final String CAR_USER_SERVICE = "car_user_service"; 8 field @android.car.annotation.ApiRequirements(minCarVersion=android.car.annotation.ApiRequirements.CarVersion.TIRAMISU_1, minPlatformVersion=android.car.annotation.ApiRequirements.PlatformVersion.TIRAMISU_0) public static final String PROPERTY_EMULATED_PLATFORM_VERSION_MAJOR = "com.android.car.internal.debug.platform_major_version"; 9 field @android.car.annotation.ApiRequirements(minCarVersion=android.car.annotation.ApiRequirements.CarVersion.TIRAMISU_1, minPlatformVersion=android.car.annotation.ApiRequirements.PlatformVersion.TIRAMISU_0) public static final String PROPERTY_EMULATED_PLATFORM_VERSION_MINOR = "com.android.car.internal.debug.platform_minor_version"; 10 } 11 12 public final class CarAppFocusManager { 13 method public int[] getActiveAppTypes(); 14 } 15 16 public class VehiclePropertyType { 17 field public static final int BOOLEAN = 2097152; // 0x200000 18 field public static final int BYTES = 7340032; // 0x700000 19 field public static final int FLOAT = 6291456; // 0x600000 20 field public static final int FLOAT_VEC = 6356992; // 0x610000 21 field public static final int INT32 = 4194304; // 0x400000 22 field public static final int INT32_VEC = 4259840; // 0x410000 23 field public static final int INT64 = 5242880; // 0x500000 24 field public static final int INT64_VEC = 5308416; // 0x510000 25 field public static final int MASK = 16711680; // 0xff0000 26 field public static final int MIXED = 14680064; // 0xe00000 27 field public static final int STRING = 1048576; // 0x100000 28 } 29 30} 31 32package android.car.admin { 33 34 public final class CarDevicePolicyManager { 35 method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.car.admin.CreateUserResult createUser(@Nullable String, int); 36 method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.car.admin.RemoveUserResult removeUser(@NonNull android.os.UserHandle); 37 method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.car.admin.StartUserInBackgroundResult startUserInBackground(@NonNull android.os.UserHandle); 38 method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.car.admin.StopUserResult stopUser(@NonNull android.os.UserHandle); 39 field public static final int USER_TYPE_ADMIN = 1; // 0x1 40 field public static final int USER_TYPE_GUEST = 2; // 0x2 41 field public static final int USER_TYPE_REGULAR = 0; // 0x0 42 } 43 44 public final class CreateUserResult { 45 method public int getStatus(); 46 method @Nullable public android.os.UserHandle getUserHandle(); 47 method public boolean isSuccess(); 48 field public static final int STATUS_FAILURE_GENERIC = 100; // 0x64 49 field public static final int STATUS_FAILURE_INVALID_ARGUMENTS = 2; // 0x2 50 field public static final int STATUS_SUCCESS = 1; // 0x1 51 } 52 53 public final class RemoveUserResult { 54 method public int getStatus(); 55 method public boolean isSuccess(); 56 field public static final int STATUS_FAILURE_GENERIC = 100; // 0x64 57 field public static final int STATUS_FAILURE_INVALID_ARGUMENTS = 5; // 0x5 58 field public static final int STATUS_FAILURE_USER_DOES_NOT_EXIST = 4; // 0x4 59 field public static final int STATUS_SUCCESS = 1; // 0x1 60 field public static final int STATUS_SUCCESS_LAST_ADMIN_REMOVED = 2; // 0x2 61 field public static final int STATUS_SUCCESS_LAST_ADMIN_SET_EPHEMERAL = 6; // 0x6 62 field public static final int STATUS_SUCCESS_SET_EPHEMERAL = 3; // 0x3 63 } 64 65 public final class StartUserInBackgroundResult { 66 method public int getStatus(); 67 method public boolean isSuccess(); 68 field public static final int STATUS_FAILURE_GENERIC = 100; // 0x64 69 field public static final int STATUS_FAILURE_USER_DOES_NOT_EXIST = 3; // 0x3 70 field public static final int STATUS_SUCCESS = 1; // 0x1 71 field public static final int STATUS_SUCCESS_CURRENT_USER = 2; // 0x2 72 } 73 74 public final class StopUserResult { 75 method public int getStatus(); 76 method public boolean isSuccess(); 77 field public static final int STATUS_FAILURE_CURRENT_USER = 2; // 0x2 78 field public static final int STATUS_FAILURE_GENERIC = 100; // 0x64 79 field public static final int STATUS_FAILURE_SYSTEM_USER = 3; // 0x3 80 field public static final int STATUS_FAILURE_USER_DOES_NOT_EXIST = 4; // 0x4 81 field public static final int STATUS_SUCCESS = 1; // 0x1 82 } 83 84} 85 86package android.car.annotation { 87 88 @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD}) public @interface ApiRequirements { 89 method public abstract android.car.annotation.ApiRequirements.CarVersion minCarVersion(); 90 method public abstract android.car.annotation.ApiRequirements.PlatformVersion minPlatformVersion(); 91 } 92 93 public enum ApiRequirements.CarVersion { 94 method public android.car.CarVersion get(); 95 enum_constant public static final android.car.annotation.ApiRequirements.CarVersion TIRAMISU_0; 96 enum_constant public static final android.car.annotation.ApiRequirements.CarVersion TIRAMISU_1; 97 enum_constant public static final android.car.annotation.ApiRequirements.CarVersion TIRAMISU_2; 98 enum_constant public static final android.car.annotation.ApiRequirements.CarVersion TIRAMISU_3; 99 } 100 101 public enum ApiRequirements.PlatformVersion { 102 method public android.car.PlatformVersion get(); 103 enum_constant public static final android.car.annotation.ApiRequirements.PlatformVersion TIRAMISU_0; 104 enum_constant public static final android.car.annotation.ApiRequirements.PlatformVersion TIRAMISU_1; 105 enum_constant public static final android.car.annotation.ApiRequirements.PlatformVersion TIRAMISU_2; 106 enum_constant public static final android.car.annotation.ApiRequirements.PlatformVersion TIRAMISU_3; 107 } 108 109} 110 111package android.car.app { 112 113 public final class CarActivityManager { 114 method @RequiresPermission(android.car.Car.PERMISSION_CONTROL_CAR_APP_LAUNCH) public int setPersistentActivity(@NonNull android.content.ComponentName, int, int); 115 field public static final int RESULT_FAILURE = -1; // 0xffffffff 116 field public static final int RESULT_INVALID_USER = -2; // 0xfffffffe 117 field public static final int RESULT_SUCCESS = 0; // 0x0 118 } 119 120} 121 122package android.car.content.pm { 123 124 public final class CarPackageManager { 125 method public void setEnableActivityBlocking(boolean); 126 } 127 128} 129 130package android.car.drivingstate { 131 132 public final class CarDrivingStateManager { 133 method public void injectDrivingState(int); 134 } 135 136} 137 138package android.car.hardware.power { 139 140 public class CarPowerManager { 141 method public static boolean isCompletionAllowed(int); 142 } 143 144} 145 146package android.car.media { 147 148 public final class CarAudioManager { 149 method @Deprecated public boolean isDynamicRoutingEnabled(); 150 } 151 152} 153 154package android.car.telemetry { 155 156 public final class CarTelemetryManager { 157 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void addMetricsConfig(@NonNull String, @NonNull byte[], @NonNull java.util.concurrent.Executor, @NonNull android.car.telemetry.CarTelemetryManager.AddMetricsConfigCallback); 158 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void clearReportReadyListener(); 159 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void getAllFinishedReports(@NonNull java.util.concurrent.Executor, @NonNull android.car.telemetry.CarTelemetryManager.MetricsReportCallback); 160 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void getFinishedReport(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.car.telemetry.CarTelemetryManager.MetricsReportCallback); 161 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void removeAllMetricsConfigs(); 162 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void removeMetricsConfig(@NonNull String); 163 method @RequiresPermission(android.car.Car.PERMISSION_USE_CAR_TELEMETRY_SERVICE) public void setReportReadyListener(@NonNull java.util.concurrent.Executor, @NonNull android.car.telemetry.CarTelemetryManager.ReportReadyListener); 164 field public static final int STATUS_ADD_METRICS_CONFIG_ALREADY_EXISTS = 1; // 0x1 165 field public static final int STATUS_ADD_METRICS_CONFIG_PARSE_FAILED = 3; // 0x3 166 field public static final int STATUS_ADD_METRICS_CONFIG_SIGNATURE_VERIFICATION_FAILED = 4; // 0x4 167 field public static final int STATUS_ADD_METRICS_CONFIG_SUCCEEDED = 0; // 0x0 168 field public static final int STATUS_ADD_METRICS_CONFIG_UNKNOWN = 5; // 0x5 169 field public static final int STATUS_ADD_METRICS_CONFIG_VERSION_TOO_OLD = 2; // 0x2 170 field public static final int STATUS_GET_METRICS_CONFIG_DOES_NOT_EXIST = 4; // 0x4 171 field public static final int STATUS_GET_METRICS_CONFIG_FINISHED = 0; // 0x0 172 field public static final int STATUS_GET_METRICS_CONFIG_INTERIM_RESULTS = 2; // 0x2 173 field public static final int STATUS_GET_METRICS_CONFIG_PENDING = 1; // 0x1 174 field public static final int STATUS_GET_METRICS_CONFIG_RUNTIME_ERROR = 3; // 0x3 175 } 176 177 public static interface CarTelemetryManager.AddMetricsConfigCallback { 178 method public void onAddMetricsConfigStatus(@NonNull String, int); 179 } 180 181 public static interface CarTelemetryManager.MetricsReportCallback { 182 method public void onResult(@NonNull String, @Nullable android.os.PersistableBundle, @Nullable byte[], int); 183 } 184 185 public static interface CarTelemetryManager.ReportReadyListener { 186 method public void onReady(@NonNull String); 187 } 188 189} 190 191package android.car.test { 192 193 public final class CarTestManager { 194 ctor public CarTestManager(@NonNull android.car.Car, @NonNull android.os.IBinder); 195 method @android.car.annotation.ApiRequirements(minCarVersion=android.car.annotation.ApiRequirements.CarVersion.TIRAMISU_2, minPlatformVersion=android.car.annotation.ApiRequirements.PlatformVersion.TIRAMISU_0) @RequiresPermission(android.car.Car.PERMISSION_CAR_TEST_SERVICE) public String getOemServiceName() throws android.os.RemoteException; 196 method @RequiresPermission(android.car.Car.PERMISSION_CAR_TEST_SERVICE) public void startCarService(@NonNull android.os.IBinder); 197 method @RequiresPermission(android.car.Car.PERMISSION_CAR_TEST_SERVICE) public void stopCarService(@NonNull android.os.IBinder); 198 } 199 200} 201 202package android.car.user { 203 204 public final class CarUserManager { 205 method @RequiresPermission(anyOf={android.Manifest.permission.INTERACT_ACROSS_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void addListener(@NonNull java.util.concurrent.Executor, @NonNull android.car.user.CarUserManager.UserLifecycleListener); 206 method @RequiresPermission(anyOf={android.Manifest.permission.INTERACT_ACROSS_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void addListener(@NonNull java.util.concurrent.Executor, @NonNull android.car.user.UserLifecycleEventFilter, @NonNull android.car.user.CarUserManager.UserLifecycleListener); 207 method public static String lifecycleEventTypeToString(int); 208 method @RequiresPermission(anyOf={android.Manifest.permission.INTERACT_ACROSS_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void removeListener(@NonNull android.car.user.CarUserManager.UserLifecycleListener); 209 method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.car.util.concurrent.AsyncFuture<android.car.user.UserSwitchResult> switchUser(int); 210 field public static final int USER_LIFECYCLE_EVENT_TYPE_STARTING = 1; // 0x1 211 field public static final int USER_LIFECYCLE_EVENT_TYPE_STOPPED = 6; // 0x6 212 field public static final int USER_LIFECYCLE_EVENT_TYPE_STOPPING = 5; // 0x5 213 field public static final int USER_LIFECYCLE_EVENT_TYPE_SWITCHING = 2; // 0x2 214 field public static final int USER_LIFECYCLE_EVENT_TYPE_UNLOCKED = 4; // 0x4 215 field public static final int USER_LIFECYCLE_EVENT_TYPE_UNLOCKING = 3; // 0x3 216 } 217 218 public static final class CarUserManager.UserLifecycleEvent { 219 method public int getEventType(); 220 method @Nullable public android.os.UserHandle getPreviousUserHandle(); 221 method @NonNull public android.os.UserHandle getUserHandle(); 222 } 223 224 public static interface CarUserManager.UserLifecycleListener { 225 method public void onEvent(@NonNull android.car.user.CarUserManager.UserLifecycleEvent); 226 } 227 228 public final class UserLifecycleEventFilter implements android.os.Parcelable { 229 method public boolean apply(@NonNull android.car.user.CarUserManager.UserLifecycleEvent); 230 method public int describeContents(); 231 method public void writeToParcel(@NonNull android.os.Parcel, int); 232 field @NonNull public static final android.os.Parcelable.Creator<android.car.user.UserLifecycleEventFilter> CREATOR; 233 } 234 235 public final class UserSwitchResult implements android.os.Parcelable { 236 method public int describeContents(); 237 method @Nullable public String getErrorMessage(); 238 method public int getStatus(); 239 method public boolean isSuccess(); 240 method public void writeToParcel(@NonNull android.os.Parcel, int); 241 field @NonNull public static final android.os.Parcelable.Creator<android.car.user.UserSwitchResult> CREATOR; 242 field public static final int STATUS_ANDROID_FAILURE = 2; // 0x2 243 field public static final int STATUS_HAL_FAILURE = 3; // 0x3 244 field public static final int STATUS_HAL_INTERNAL_FAILURE = 4; // 0x4 245 field public static final int STATUS_INVALID_REQUEST = 5; // 0x5 246 field public static final int STATUS_NOT_LOGGED_IN = 105; // 0x69 247 field public static final int STATUS_NOT_SWITCHABLE = 104; // 0x68 248 field public static final int STATUS_OK_USER_ALREADY_IN_FOREGROUND = 101; // 0x65 249 field public static final int STATUS_SUCCESSFUL = 1; // 0x1 250 field public static final int STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST = 103; // 0x67 251 field public static final int STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO = 102; // 0x66 252 field public static final int STATUS_UX_RESTRICTION_FAILURE = 6; // 0x6 253 } 254 255} 256 257package android.car.util.concurrent { 258 259 public interface AsyncFuture<T> { 260 method @Nullable public T get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; 261 method @Nullable public T get(long, @NonNull java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; 262 method @NonNull public android.car.util.concurrent.AsyncFuture<T> whenCompleteAsync(@NonNull java.util.function.BiConsumer<? super T,? super java.lang.Throwable>, @NonNull java.util.concurrent.Executor); 263 } 264 265} 266 267