CameraAccessException.java revision 66ef64514464a1bb9c7931993cc8db3d7539f39a
1b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/* 2b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Copyright (C) 2013 The Android Open Source Project 3b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 4b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 5b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * you may not use this file except in compliance with the License. 6b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * You may obtain a copy of the License at 7b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 8b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 9b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 10b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 11b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 12b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * See the License for the specific language governing permissions and 14b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * limitations under the License. 15b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 16b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 172f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalapackage android.hardware.camera2; 18b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 19e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinimport android.util.AndroidException; 20e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin 21b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/** 22b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * <p><code>CameraAccessException</code> is thrown if a camera device could not 23b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * be queried or opened by the {@link CameraManager}, or if the connection to an 24b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * opened {@link CameraDevice} is no longer valid.</p> 25b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 26b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see CameraManager 27b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see CameraDevice 28b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 29e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinpublic class CameraAccessException extends AndroidException { 30b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 31b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The camera device is in use already 32b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 33b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public static final int CAMERA_IN_USE = 1; 34b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 35b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 36b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The system-wide limit for number of open cameras has been reached, 37b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * and more camera devices cannot be opened until previous instances are 38b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * closed. 39b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 40b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public static final int MAX_CAMERAS_IN_USE = 2; 41b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 42b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 43b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The camera is disabled due to a device policy, and cannot be opened. 44b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 45b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see android.app.admin.DevicePolicyManager#setCameraDisabled(android.content.ComponentName, boolean) 46b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 47b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public static final int CAMERA_DISABLED = 3; 48b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 49b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 50b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The camera device is removable and has been disconnected from the Android 5166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * device, or the camera id used with {@link android.hardware.camera2.CameraManager#openCamera} 5266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * is no longer valid, or the camera service has shut down the connection due to a 53b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * higher-priority access request for the camera device. 54b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 55b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public static final int CAMERA_DISCONNECTED = 4; 56b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 5766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk /** 5866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * A deprecated HAL version is in use. 5966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * @hide 6066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk */ 6166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public static final int CAMERA_DEPRECATED_HAL = 1000; 6266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 63e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin // Make the eclipse warning about serializable exceptions go away 64e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private static final long serialVersionUID = 5630338637471475675L; // randomly generated 65e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin 66e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private final int mReason; 67b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 68b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 69b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The reason for the failure to access the camera. 70b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 71b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_IN_USE 72b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #MAX_CAMERAS_IN_USE 73b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_DISABLED 74b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_DISCONNECTED 75b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 76b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public final int getReason() { 77b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala return mReason; 78b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 79b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 80b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem) { 81e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin super(getDefaultMessage(problem)); 82b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 83b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 84b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 85b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, String message) { 86b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala super(message); 87b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 88b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 89b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 90b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, String message, Throwable cause) { 91b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala super(message, cause); 92b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 93b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 94b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 95b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, Throwable cause) { 96e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin super(getDefaultMessage(problem), cause); 97b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 98b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 99e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin 100e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private static String getDefaultMessage(int problem) { 101e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin switch (problem) { 102e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_IN_USE: 103e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera device is in use already"; 104e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case MAX_CAMERAS_IN_USE: 105e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The system-wide limit for number of open cameras has been reached, " + 106e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "and more camera devices cannot be opened until previous instances " + 107e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "are closed."; 108e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_DISABLED: 109e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera is disabled due to a device policy, and cannot be opened."; 110e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_DISCONNECTED: 111e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera device is removable and has been disconnected from the Android" + 112e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin " device, or the camera service has shut down the connection due to a " + 113e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "higher-priority access request for the camera device."; 114e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin } 115e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return null; 116e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin } 117b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala} 118