diff options
Diffstat (limited to 'src/com/android/camera/util/CameraUtil.java')
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 88356617d..2f7e6cb41 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -410,18 +410,22 @@ public class CameraUtil { android.hardware.camera2.CameraManager manager = (android.hardware.camera2.CameraManager)context.getSystemService(Context.CAMERA_SERVICE); try { - CameraCharacteristics characteristics = manager.getCameraCharacteristics(manager.getCameraIdList()[0]); - int deviceLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); - - switch (deviceLevel) { - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: - return true; - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL: - return true; - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_3: - return true; - default: - return false; + String[] cameraIds = manager.getCameraIdList(); + + if (cameraIds != null && cameraIds.length > 0) { + CameraCharacteristics characteristics = manager.getCameraCharacteristics(manager.getCameraIdList()[0]); + int deviceLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); + + switch (deviceLevel) { + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: + return true; + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL: + return true; + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_3: + return true; + default: + return false; + } } } catch(CameraAccessException | NumberFormatException e) { Log.e(TAG, "exception trying to get camera characteristics"); |