summaryrefslogtreecommitdiff
path: root/camera/CameraBase.cpp
diff options
context:
space:
mode:
authorIvan Podogov <ginkage@google.com>2016-09-15 11:32:41 +0100
committerIvan Podogov <ginkage@google.com>2016-09-16 11:15:58 +0100
commitee844a800889eca5dfe658fbd953946ca1920fae (patch)
tree2cf0bebb0f1a709bc5556c91a78219c53c538594 /camera/CameraBase.cpp
parent47c996ba170821326a98fdde468ecf860904db3e (diff)
Don't try to connect camera service if it is disabled.
On Android Wear devices we don't have cameras, so we don't need the proxy service as well. If it is disabled by the system property, don't wait for it to start, but rather return null pointer in getCameraService(), which causes getNumberOfCameras() to report zero cameras available. The same logic applies to ACameraManager, where we return an empty list. Bug: 28560707 Change-Id: I4c0bc29f061f1b66710c8188a7916bfaf089d23f
Diffstat (limited to 'camera/CameraBase.cpp')
-rw-r--r--camera/CameraBase.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/camera/CameraBase.cpp b/camera/CameraBase.cpp
index 15d7715ac4..194e1d3a7c 100644
--- a/camera/CameraBase.cpp
+++ b/camera/CameraBase.cpp
@@ -20,6 +20,7 @@
#include <utils/Log.h>
#include <utils/threads.h>
#include <utils/Mutex.h>
+#include <cutils/properties.h>
#include <android/hardware/ICameraService.h>
@@ -90,6 +91,12 @@ const sp<::android::hardware::ICameraService>& CameraBase<TCam, TCamTraits>::get
{
Mutex::Autolock _l(gLock);
if (gCameraService.get() == 0) {
+ char value[PROPERTY_VALUE_MAX];
+ property_get("config.disable_cameraservice", value, "0");
+ if (strncmp(value, "0", 2) != 0 && strncasecmp(value, "false", 6) != 0) {
+ return gCameraService;
+ }
+
sp<IServiceManager> sm = defaultServiceManager();
sp<IBinder> binder;
do {