diff options
author | Zhijun He <zhijunhe@google.com> | 2013-10-01 15:42:54 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-10-01 15:42:54 -0700 |
commit | a5761bd1f5166f3fd1c1bf07ce92a2ac443ee3e3 (patch) | |
tree | 9d7b1880a95b9a73fe73cf34de421fe50cd4d66d | |
parent | 2c862e68f0d7575f00c88b822dcb67060d8deb4f (diff) | |
parent | 654314eedf642c01ea034a16d452272d9e4aab24 (diff) | |
download | frameworks_base-a5761bd1f5166f3fd1c1bf07ce92a2ac443ee3e3.zip frameworks_base-a5761bd1f5166f3fd1c1bf07ce92a2ac443ee3e3.tar.gz frameworks_base-a5761bd1f5166f3fd1c1bf07ce92a2ac443ee3e3.tar.bz2 |
am 654314ee: Merge "Camera2: return device list with the only supported device" into klp-dev
* commit '654314eedf642c01ea034a16d452272d9e4aab24':
Camera2: return device list with the only supported device
-rw-r--r-- | core/java/android/hardware/camera2/CameraManager.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 798ad7b..f5ee367 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -369,10 +369,30 @@ public final class CameraManager { } mDeviceIdList = new ArrayList<String>(); + CameraMetadataNative info = new CameraMetadataNative(); for (int i = 0; i < numCameras; ++i) { // Non-removable cameras use integers starting at 0 for their // identifiers - mDeviceIdList.add(String.valueOf(i)); + boolean isDeviceSupported = false; + try { + mCameraService.getCameraCharacteristics(i, info); + if (!info.isEmpty()) { + isDeviceSupported = true; + } else { + throw new AssertionError("Expected to get non-empty characteristics"); + } + } catch(IllegalArgumentException e) { + // Got a BAD_VALUE from service, meaning that this + // device is not supported. + } catch(CameraRuntimeException e) { + throw e.asChecked(); + } catch(RemoteException e) { + // impossible + } + + if (isDeviceSupported) { + mDeviceIdList.add(String.valueOf(i)); + } } } |