diff options
author | Ivan Podogov <ginkage@google.com> | 2016-09-15 11:32:41 +0100 |
---|---|---|
committer | Ivan Podogov <ginkage@google.com> | 2016-09-16 11:15:58 +0100 |
commit | ee844a800889eca5dfe658fbd953946ca1920fae (patch) | |
tree | 2cf0bebb0f1a709bc5556c91a78219c53c538594 /camera/CameraBase.cpp | |
parent | 47c996ba170821326a98fdde468ecf860904db3e (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.cpp | 7 |
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 { |