diff options
| author | 2017-07-14 05:49:45 +0000 | |
|---|---|---|
| committer | 2017-07-14 05:49:45 +0000 | |
| commit | 01d6fb2c9cf408c0451f7ee89faf2d5244dbfa6c (patch) | |
| tree | 86ca67176559c91dd164b4e20521eaf69d9c2453 | |
| parent | 7e15c580852a1f18614396bc0f85f8e04d737d19 (diff) | |
| parent | 0c0fd0375c6efae3afcdd43a1b21b4c29cd93408 (diff) | |
Merge "CameraManager: Handle camera service being disabled explicitly" into oc-dr1-dev
am: 0c0fd0375c
Change-Id: I1d67c1f2cdaa28063110454592cf7306ecb7bcd2
| -rw-r--r-- | core/java/android/hardware/camera2/CameraManager.java | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 1b150bfca63a..90bf896c2225 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -16,28 +16,29 @@ package android.hardware.camera2; -import android.annotation.RequiresPermission; -import android.annotation.SystemService; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.RequiresPermission; +import android.annotation.SystemService; import android.content.Context; -import android.hardware.ICameraService; -import android.hardware.ICameraServiceListener; import android.hardware.CameraInfo; import android.hardware.CameraStatus; +import android.hardware.ICameraService; +import android.hardware.ICameraServiceListener; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.legacy.CameraDeviceUserShim; import android.hardware.camera2.legacy.LegacyMetadataMapper; -import android.os.IBinder; import android.os.Binder; import android.os.DeadObjectException; import android.os.Handler; +import android.os.IBinder; import android.os.Looper; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceSpecificException; -import android.util.Log; +import android.os.SystemProperties; import android.util.ArrayMap; +import android.util.Log; import java.util.ArrayList; @@ -210,7 +211,9 @@ public final class CameraManager { public CameraCharacteristics getCameraCharacteristics(@NonNull String cameraId) throws CameraAccessException { CameraCharacteristics characteristics = null; - + if (CameraManagerGlobal.sCameraServiceDisabled) { + throw new IllegalArgumentException("No cameras available on device"); + } synchronized (mLock) { /* * Get the camera characteristics from the camera service directly if it supports it, @@ -462,6 +465,9 @@ public final class CameraManager { "Handler argument is null, but no looper exists in the calling thread"); } } + if (CameraManagerGlobal.sCameraServiceDisabled) { + throw new IllegalArgumentException("No cameras available on device"); + } openCameraDeviceUserAsync(cameraId, callback, handler, clientUid); } @@ -507,6 +513,9 @@ public final class CameraManager { */ public void setTorchMode(@NonNull String cameraId, boolean enabled) throws CameraAccessException { + if (CameraManagerGlobal.sCameraServiceDisabled) { + throw new IllegalArgumentException("No cameras available on device"); + } CameraManagerGlobal.get().setTorchMode(cameraId, enabled); } @@ -745,6 +754,9 @@ public final class CameraManager { private CameraManagerGlobal() { } + public static final boolean sCameraServiceDisabled = + SystemProperties.getBoolean("config.disable_cameraservice", false); + public static CameraManagerGlobal get() { return gCameraManager; } @@ -764,7 +776,7 @@ public final class CameraManager { public ICameraService getCameraService() { synchronized(mLock) { connectCameraServiceLocked(); - if (mCameraService == null) { + if (mCameraService == null && !sCameraServiceDisabled) { Log.e(TAG, "Camera service is unavailable"); } return mCameraService; @@ -779,7 +791,7 @@ public final class CameraManager { */ private void connectCameraServiceLocked() { // Only reconnect if necessary - if (mCameraService != null) return; + if (mCameraService != null || sCameraServiceDisabled) return; Log.i(TAG, "Connecting to camera service"); |