CameraAccessException.java revision 2f1a2e423e0fbb64467d6fcfa4e82c6384f31210
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 51b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * device, or the camera service has shut down the connection due to a 52b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * higher-priority access request for the camera device. 53b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 54b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public static final int CAMERA_DISCONNECTED = 4; 55b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 56e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin // Make the eclipse warning about serializable exceptions go away 57e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private static final long serialVersionUID = 5630338637471475675L; // randomly generated 58e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin 59e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private final int mReason; 60b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 61b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala /** 62b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * The reason for the failure to access the camera. 63b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * 64b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_IN_USE 65b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #MAX_CAMERAS_IN_USE 66b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_DISABLED 67b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see #CAMERA_DISCONNECTED 68b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */ 69b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public final int getReason() { 70b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala return mReason; 71b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 72b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 73b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem) { 74e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin super(getDefaultMessage(problem)); 75b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 76b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 77b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 78b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, String message) { 79b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala super(message); 80b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 81b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 82b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 83b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, String message, Throwable cause) { 84b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala super(message, cause); 85b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 86b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 87b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala 88b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala public CameraAccessException(int problem, Throwable cause) { 89e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin super(getDefaultMessage(problem), cause); 90b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala mReason = problem; 91b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala } 92e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin 93e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin private static String getDefaultMessage(int problem) { 94e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin switch (problem) { 95e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_IN_USE: 96e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera device is in use already"; 97e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case MAX_CAMERAS_IN_USE: 98e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The system-wide limit for number of open cameras has been reached, " + 99e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "and more camera devices cannot be opened until previous instances " + 100e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "are closed."; 101e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_DISABLED: 102e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera is disabled due to a device policy, and cannot be opened."; 103e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin case CAMERA_DISCONNECTED: 104e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return "The camera device is removable and has been disconnected from the Android" + 105e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin " device, or the camera service has shut down the connection due to a " + 106e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin "higher-priority access request for the camera device."; 107e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin } 108e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin return null; 109e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin } 110b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala} 111