handle Camera.open() fail gracefully
This commit is contained in:
parent
6ce7b5e2e4
commit
d3d2f5e23d
|
@ -49,7 +49,15 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O
|
||||||
|
|
||||||
public void setCamera(int cameraId) {
|
public void setCamera(int cameraId) {
|
||||||
currCameraId = cameraId;
|
currCameraId = cameraId;
|
||||||
final Camera newCamera = Camera.open(cameraId);
|
Camera newCamera;
|
||||||
|
try {
|
||||||
|
newCamera = Camera.open(cameraId);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Utils.showToast(getContext(), R.string.camera_open_error);
|
||||||
|
Log.e(TAG, "setCamera open " + e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (camera == newCamera) {
|
if (camera == newCamera) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -73,7 +81,7 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O
|
||||||
try {
|
try {
|
||||||
camera.setPreviewDisplay(surfaceHolder);
|
camera.setPreviewDisplay(surfaceHolder);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e(TAG, "setCamera " + e.getMessage());
|
Log.e(TAG, "setCamera setPreviewDisplay " + e.getMessage());
|
||||||
}
|
}
|
||||||
setupPreview();
|
setupPreview();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.simplemobiletools.camera;
|
package com.simplemobiletools.camera;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
public static Camera.CameraInfo getCameraInfo(int cameraId) {
|
public static Camera.CameraInfo getCameraInfo(int cameraId) {
|
||||||
|
@ -8,4 +10,8 @@ public class Utils {
|
||||||
Camera.getCameraInfo(cameraId, info);
|
Camera.getCameraInfo(cameraId, info);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void showToast(Context context, int resId) {
|
||||||
|
Toast.makeText(context, context.getResources().getString(resId), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Simple Camera</string>
|
<string name="app_name">Simple Camera</string>
|
||||||
|
<string name="camera_open_error">An error occurred at obtaining the camera</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in New Issue