Check the device policy for the camera disabled flag before trying to
open a connection to the camera.
When the camera is disabled from both the device policy and camera
settings, GCA will not receive onError with ERROR_CAMERA_DISABLED. This
is incorrect behavior which is fixed by this patch.
Bug: 230026863, 203063139
Test: Verified camera app closes when both settings are disabled.
Change-Id: I514b38c23a136994de702ea4aacc9be65ab46d70
diff --git a/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp b/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp
index a00b221..f7cede8 100644
--- a/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp
+++ b/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp
@@ -260,4 +260,16 @@
sessionStats->onClose(latencyMs);
}
+bool CameraServiceProxyWrapper::isCameraDisabled() {
+ sp<ICameraServiceProxy> proxyBinder = getCameraServiceProxy();
+ if (proxyBinder == nullptr) return true;
+ bool ret = false;
+ auto status = proxyBinder->isCameraDisabled(&ret);
+ if (!status.isOk()) {
+ ALOGE("%s: Failed during camera disabled query: %s", __FUNCTION__,
+ status.exceptionMessage().c_str());
+ }
+ return ret;
+}
+
}; // namespace android