diff options
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index e28464d..8de8930 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -1777,12 +1777,18 @@ status_t CameraService::BasicClient::startCameraOps() { res = mAppOpsManager.startOp(AppOpsManager::OP_CAMERA, mClientUid, mClientPackageName); - if (res != AppOpsManager::MODE_ALLOWED) { + if (res == AppOpsManager::MODE_ERRORED) { ALOGI("Camera %d: Access for \"%s\" has been revoked", mCameraId, String8(mClientPackageName).string()); return PERMISSION_DENIED; } + if (res == AppOpsManager::MODE_IGNORED) { + ALOGI("Camera %d: Access for \"%s\" has been restricted", + mCameraId, String8(mClientPackageName).string()); + return INVALID_OPERATION; + } + mOpsActive = true; // Transition device availability listeners from PRESENT -> NOT_AVAILABLE |