diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 4dc6e9310220e..3f3b9462a6bc0 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -2372,9 +2372,8 @@ public final class CameraManager { } //TODO: Do we need to treat this as error? - if (!mDeviceStatus.containsKey(id) || !isAvailable(mDeviceStatus.get(id)) - || !mUnavailablePhysicalDevices.containsKey(id)) { - Log.e(TAG, String.format("Camera %s is not available. Ignore physical camera " + if (!mDeviceStatus.containsKey(id) || !mUnavailablePhysicalDevices.containsKey(id)) { + Log.e(TAG, String.format("Camera %s is not present. Ignore physical camera " + "status change", id)); return; } @@ -2399,6 +2398,12 @@ public final class CameraManager { return; } + if (!isAvailable(mDeviceStatus.get(id))) { + Log.i(TAG, String.format("Camera %s is not available. Ignore physical camera " + + "status change callback(s)", id)); + return; + } + final int callbackCount = mCallbackMap.size(); for (int i = 0; i < callbackCount; i++) { Executor executor = mCallbackMap.valueAt(i);