From a1c41e13b521cdd611a8fc46e43b5ae0a2c00238 Mon Sep 17 00:00:00 2001 From: Wu-cheng Li Date: Thu, 23 Feb 2012 19:01:00 -0800 Subject: Add a new camera open API that allows taking the ownership. The purpose is to let face unlock always get the camera successfully. What happened was the camera applications may have opened the camera in onResume under the lock screen. This API lets face unlock take the camera from the camera application. A new permission will be added, so other applicatoins won't be able to take the camera from the face unlock. bug:5584464 Change-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6 --- libs/camera/ICameraService.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libs/camera/ICameraService.cpp') diff --git a/libs/camera/ICameraService.cpp b/libs/camera/ICameraService.cpp index 85f1a29feb1a..c74298a84bb9 100644 --- a/libs/camera/ICameraService.cpp +++ b/libs/camera/ICameraService.cpp @@ -56,12 +56,15 @@ public: } // connect to camera service - virtual sp connect(const sp& cameraClient, int cameraId) + virtual sp connect(const sp& cameraClient, int cameraId, + bool force, bool keep) { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); data.writeStrongBinder(cameraClient->asBinder()); data.writeInt32(cameraId); + data.writeInt32(force); + data.writeInt32(keep); remote()->transact(BnCameraService::CONNECT, data, &reply); return interface_cast(reply.readStrongBinder()); } @@ -93,7 +96,10 @@ status_t BnCameraService::onTransact( case CONNECT: { CHECK_INTERFACE(ICameraService, data, reply); sp cameraClient = interface_cast(data.readStrongBinder()); - sp camera = connect(cameraClient, data.readInt32()); + const int cameraId = data.readInt32(); + const int force = data.readInt32(); + const int keep = data.readInt32(); + sp camera = connect(cameraClient, cameraId, force, keep); reply->writeStrongBinder(camera->asBinder()); return NO_ERROR; } break; @@ -105,4 +111,3 @@ status_t BnCameraService::onTransact( // ---------------------------------------------------------------------------- }; // namespace android - -- cgit v1.2.3-59-g8ed1b