summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-10-01 15:42:54 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-01 15:42:54 -0700
commita5761bd1f5166f3fd1c1bf07ce92a2ac443ee3e3 (patch)
tree9d7b1880a95b9a73fe73cf34de421fe50cd4d66d
parent2c862e68f0d7575f00c88b822dcb67060d8deb4f (diff)
parent654314eedf642c01ea034a16d452272d9e4aab24 (diff)
downloadframeworks_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.java22
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));
+ }
}
}