16eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li/* 26eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Copyright (C) 2010 The Android Open Source Project 36eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * 46eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Licensed under the Apache License, Version 2.0 (the "License"); 56eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * you may not use this file except in compliance with the License. 66eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * You may obtain a copy of the License at 76eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * 86eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * http://www.apache.org/licenses/LICENSE-2.0 96eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * 106eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Unless required by applicable law or agreed to in writing, software 116eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * distributed under the License is distributed on an "AS IS" BASIS, 126eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * See the License for the specific language governing permissions and 146eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * limitations under the License. 156eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li */ 166eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li 176eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Lipackage com.android.camera; 186eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li 196eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Liimport android.util.Log; 206eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li 216eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Lipublic class CameraErrorCallback 226eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li implements android.hardware.Camera.ErrorCallback { 236eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li private static final String TAG = "CameraErrorCallback"; 246eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li 256eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li public void onError(int error, android.hardware.Camera camera) { 266eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li Log.e(TAG, "Got camera error callback. error=" + error); 276eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li if (error == android.hardware.Camera.CAMERA_ERROR_SERVER_DIED) { 286eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li // We are not sure about the current state of the app (in preview or 296eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li // snapshot or recording). Closing the app is better than creating a 306eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li // new Camera object. 316eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li throw new RuntimeException("Media server died."); 326eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li } 336eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li } 346eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li} 35